Class: Jars::Installer
- Inherits:
-
Object
- Object
- Jars::Installer
- Defined in:
- lib/jars/installer.rb
Defined Under Namespace
Classes: Dependency
Constant Summary collapse
- COMMENT =
'# this is a generated file, to avoid over-writing it just delete this comment'
Class Method Summary collapse
- .install_deps(deps, dir, require_filename, vendor) ⇒ Object
- .install_jars(write_require_file = false) ⇒ Object
- .load_from_maven(file) ⇒ Object
- .needs_to_write?(require_filename) ⇒ Boolean
- .print_require_jar(file, dep) ⇒ Object
- .vendor_file(dir, dep) ⇒ Object
- .vendor_jars(deps, dir) ⇒ Object
- .write_dep(file, dir, dep, vendor) ⇒ Object
- .write_require_file(require_filename) ⇒ Object
- .write_require_jars(deps, require_filename) ⇒ Object
Instance Method Summary collapse
- #has_jars? ⇒ Boolean (also: #jars?)
-
#initialize(spec = nil) ⇒ Installer
constructor
A new instance of Installer.
- #install_jars(write_require_file = true) ⇒ Object
- #ruby_maven_install_options=(options) ⇒ Object
- #spec ⇒ Object
- #vendor_jars(write_require_file = true) ⇒ Object
Constructor Details
Class Method Details
.install_deps(deps, dir, require_filename, vendor) ⇒ Object
122 123 124 125 126 |
# File 'lib/jars/installer.rb', line 122 def self.install_deps( deps, dir, require_filename, vendor ) warn "deprecated" write_require_jars( deps, require_filename ) vendor_jars( deps, dir ) if dir && vendor end |
.install_jars(write_require_file = false) ⇒ Object
65 66 67 |
# File 'lib/jars/installer.rb', line 65 def self.install_jars( write_require_file = false ) new.install_jars( write_require_file ) end |
.load_from_maven(file) ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'lib/jars/installer.rb', line 73 def self.load_from_maven( file ) result = [] File.read( file ).each_line do |line| dep = Dependency.new( line ) result << dep if dep && dep.scope == :runtime end result end |
.needs_to_write?(require_filename) ⇒ Boolean
117 118 119 120 |
# File 'lib/jars/installer.rb', line 117 def self.needs_to_write?(require_filename) ( require_filename and not File.exists?( require_filename ) ) or File.read( require_filename ).match( COMMENT) end |
.print_require_jar(file, dep) ⇒ Object
107 108 109 110 111 112 113 114 |
# File 'lib/jars/installer.rb', line 107 def self.print_require_jar( file, dep ) return if dep.type != :jar || dep.scope != :runtime if dep.system? file.puts( "require( '#{dep.file}' )" ) if file elsif dep.scope == :runtime file.puts( "require_jar( '#{dep.gav.gsub( ':', "', '" )}' )" ) if file end end |
.vendor_file(dir, dep) ⇒ Object
94 95 96 97 98 99 100 |
# File 'lib/jars/installer.rb', line 94 def self.vendor_file( dir, dep ) if !dep.system? && dep.type == :jar && dep.scope == :runtime vendored = File.join( dir, dep.path ) FileUtils.mkdir_p( File.dirname( vendored ) ) FileUtils.cp( dep.file, vendored ) end end |
.vendor_jars(deps, dir) ⇒ Object
69 70 71 |
# File 'lib/jars/installer.rb', line 69 def self.vendor_jars( write_require_file = false ) new.vendor_jars( write_require_file ) end |
.write_dep(file, dir, dep, vendor) ⇒ Object
102 103 104 105 |
# File 'lib/jars/installer.rb', line 102 def self.write_dep( file, dir, dep, vendor ) warn "deprecated" print_require_jar( file, dep ) end |
.write_require_file(require_filename) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/jars/installer.rb', line 82 def self.write_require_file( require_filename ) warn "deprecated" if needs_to_write?(require_filename) FileUtils.mkdir_p( File.dirname( require_filename ) ) f = File.open( require_filename, 'w' ) f.puts COMMENT f.puts "require 'jar_dependencies'" f.puts f end end |
.write_require_jars(deps, require_filename) ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/jars/installer.rb', line 128 def self.write_require_jars( deps, require_filename ) if needs_to_write?(require_filename) FileUtils.mkdir_p( File.dirname( require_filename ) ) File.open( require_filename, 'w' ) do |f| f.puts COMMENT f.puts "require 'jar_dependencies'" f.puts deps.each do |dep| print_require_jar( f, dep ) end yield f if block_given? end end end |
Instance Method Details
#has_jars? ⇒ Boolean Also known as: jars?
179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/jars/installer.rb', line 179 def has_jars? # first look if there are any requirements in the spec # and then if gem depends on jar-dependencies for runtime. # only then install the jars declared in the requirements result = ( spec = self.spec ) && ! spec.requirements.empty? && spec.dependencies.detect { |d| d.name == 'jar-dependencies' && d.type == :runtime } != nil if result && spec.platform.to_s != 'java' Jars.warn "\njar dependencies found on non-java platform gem - do not install jars\n" false else result end end |
#install_jars(write_require_file = true) ⇒ Object
170 171 172 173 |
# File 'lib/jars/installer.rb', line 170 def install_jars( write_require_file = true ) return unless has_jars? do_install( false, write_require_file ) end |
#ruby_maven_install_options=(options) ⇒ Object
175 176 177 |
# File 'lib/jars/installer.rb', line 175 def ( ) @mvn.=( ) end |
#spec ⇒ Object
153 |
# File 'lib/jars/installer.rb', line 153 def spec; @mvn.spec end |
#vendor_jars(write_require_file = true) ⇒ Object
155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/jars/installer.rb', line 155 def vendor_jars( write_require_file = true ) return unless has_jars? case Jars.to_prop( Jars::VENDOR ) when 'true' do_vendor = true when 'false' do_vendor = false else # if the spec_file does not exists this means it is a local gem # coming via bundle :path or :git do_vendor = File.exists?( spec.spec_file ) end do_install( do_vendor, write_require_file ) end |