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
- .vendor_jars! ⇒ 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
- #vendor_jars!(write_require_file = true) ⇒ Object
Constructor Details
Class Method Details
.install_deps(deps, dir, require_filename, vendor) ⇒ Object
117 118 119 120 121 |
# File 'lib/jars/installer.rb', line 117 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
69 70 71 72 73 74 75 76 |
# File 'lib/jars/installer.rb', line 69 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
113 114 115 |
# File 'lib/jars/installer.rb', line 113 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
103 104 105 106 107 108 109 110 |
# File 'lib/jars/installer.rb', line 103 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
90 91 92 93 94 95 96 |
# File 'lib/jars/installer.rb', line 90 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
138 139 140 141 142 |
# File 'lib/jars/installer.rb', line 138 def self.vendor_jars( deps, dir ) deps.each do |dep| vendor_file( dir, dep ) end end |
.vendor_jars! ⇒ Object
155 156 157 |
# File 'lib/jars/installer.rb', line 155 def self.vendor_jars! new.vendor_jars! end |
.write_dep(file, dir, dep, vendor) ⇒ Object
98 99 100 101 |
# File 'lib/jars/installer.rb', line 98 def self.write_dep( file, dir, dep, vendor ) warn "deprecated" print_require_jar( file, dep ) end |
.write_require_file(require_filename) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/jars/installer.rb', line 78 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
123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/jars/installer.rb', line 123 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?
180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/jars/installer.rb', line 180 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
171 172 173 174 |
# File 'lib/jars/installer.rb', line 171 def install_jars( write_require_file = true ) return unless has_jars? do_install( false, write_require_file ) end |
#ruby_maven_install_options=(options) ⇒ Object
176 177 178 |
# File 'lib/jars/installer.rb', line 176 def ( ) @mvn.=( ) end |
#spec ⇒ Object
148 |
# File 'lib/jars/installer.rb', line 148 def spec; @mvn.spec end |
#vendor_jars(write_require_file = true) ⇒ Object
150 151 152 153 |
# File 'lib/jars/installer.rb', line 150 def vendor_jars( write_require_file = true ) return unless has_jars? vendor_jars!( write_require_file ) end |
#vendor_jars!(write_require_file = true) ⇒ Object
159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib/jars/installer.rb', line 159 def vendor_jars!( write_require_file = true ) case Jars.to_prop( Jars::VENDOR ) when 'true' do_vendor = true when 'false' do_vendor = false else do_vendor = true end do_install( do_vendor, write_require_file ) end |