lock_jar 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -8,4 +8,5 @@ group :development do
8
8
  gem "rspec", "~> 2.9.0"
9
9
  gem "bundler", "~> 1.1.0"
10
10
  gem "jeweler", "~> 1.6.4"
11
+ gem "yard", "~> 0.8.0"
11
12
  end
data/README.rdoc CHANGED
@@ -7,6 +7,8 @@ The Jarfile.lock can be used to populate the classpath.
7
7
 
8
8
  https://github.com/mguymon/lock_jar
9
9
 
10
+ {RDoc}[http://rubydoc.info/github/mguymon/lock_jar/master/frames]
11
+
10
12
  == Install
11
13
 
12
14
  gem install lock_jar
@@ -46,11 +48,11 @@ Example Jarfile
46
48
 
47
49
  ==== Resolving dependencies
48
50
 
49
- * LockJar.lock( *args ): Using a Jarfile, creates a lock file. Default jarfile is *Jarfile* and default lockfile is *Jarfile.lock*.
50
- * An arg of a String will set the Jarfile, e.g. 'Jarfile.different'
51
+ * LockJar.lock( *args ): Using a Jarfile, creates a lock file. Depending on the type of arg, a different configuration is set.
52
+ * An arg of a String will set the Jarfile, e.g. 'Jarfile.different'. Default jarfile is *Jarfile*
51
53
  * An arg of a Hash will set the options, e.g. { :local_repo => 'path' }
52
54
  * :local_repo sets the local repo path
53
- * :lockfile sets the Jarfile.lock path
55
+ * :lockfile sets the Jarfile.lock path. Default lockfile is *Jarfile.lock*.
54
56
 
55
57
  When the Jarfile is locked, the transitive dependencies are resolved and saved to the Jarfile.lock file.
56
58
 
@@ -100,9 +102,9 @@ The Jarfile.lock
100
102
 
101
103
  ==== Accessing Jars
102
104
 
103
- * LockJar.list(*args): Lists all dependencies as notations for scopes from the Jarfile.lock. Defaults scopes are *compile* and *runtime*. Default lock file is *Jarfile.lock*.
104
- * An arg of a String will set the Jarfile.lock, e.g. 'Better.lock'
105
- * An arg of an Array will set the scopes, e.g. ['compile','test']
105
+ * LockJar.list(*args): Lists all dependencies as notations for scopes from the Jarfile.lock. Depending on the type of arg, a different configuration is set.
106
+ * An arg of a String will set the Jarfile.lock, e.g. 'Better.lock'. Default lock file is *Jarfile.lock*.
107
+ * An arg of an Array will set the scopes, e.g. ['compile','test']. Defaults scopes are *compile* and *runtime*.
106
108
  * An arg of a Hash will set the options, e.g. { :local_repo => 'path' }
107
109
  * :local_repo sets the local repo path
108
110
  * :local_paths converts the notations to paths to jars in the local repo path
@@ -129,19 +131,19 @@ Do not forget, if you change your Jarfile, you have to re-generate the Jarfile.l
129
131
 
130
132
  You can skip the Jarfile and Jarfile.lock to directly play with dependencies by passing a block to LockJar.lock, LockJar.list, LockJar.load
131
133
 
132
- ===== Lock with a Jarfile
134
+ ===== Lock without a Jarfile
133
135
 
134
136
  LockJar.lock do
135
137
  jar 'org.eclipse.jetty:example-jetty-embedded:jar:8.1.2.v20120308'
136
138
  end
137
139
 
138
- ===== List with a Jarfile
140
+ ===== List without a Jarfile.lock
139
141
 
140
142
  LockJar.list do
141
143
  jar 'org.eclipse.jetty:example-jetty-embedded:jar:8.1.2.v20120308'
142
144
  end
143
145
 
144
- ===== Load with a Jarfile
146
+ ===== Load without a Jarfile.lock
145
147
 
146
148
  LockJar.load do
147
149
  jar 'org.eclipse.jetty:example-jetty-embedded:jar:8.1.2.v20120308'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.3.2
@@ -16,22 +16,58 @@
16
16
  require 'lock_jar/runtime'
17
17
 
18
18
  module LockJar
19
+
20
+ # Helper for providing Maven specific operations
21
+ #
22
+ # @author Michael Guymon
23
+ #
19
24
  class Maven
20
25
 
21
26
  class << self
22
27
 
28
+ #
29
+ # Get the version of a POM
30
+ #
31
+ # @param [String] pom_path path to the pom
32
+ # @param [Hash] options
33
+ #
34
+ # @return [String] version of POM
35
+ #
23
36
  def pom_version( pom_path, opts = {} )
24
37
  Runtime.instance.resolver(opts).naether.pom_version( pom_path )
25
38
  end
26
39
 
27
- def write_pom( notation, file_path, opts = {} )
28
- Runtime.instance.resolver(opts).naether.write_pom( notation, file_path )
40
+ #
41
+ # Write a POM from list of notations
42
+ #
43
+ # @param [Array] notations
44
+ # @param [String] file_path path of new pom
45
+ # @param [Hash] options
46
+ def write_pom( notations, file_path, opts = {} )
47
+ Runtime.instance.resolver(opts).naether.write_pom( notations, file_path )
29
48
  end
30
49
 
50
+ #
51
+ # Deploy an artifact to a Maven repository
52
+ #
53
+ # @param [String] notation of artifact
54
+ # @param [String] file_path path to the Jar
55
+ # @param [String] url Maven repository deploying to
56
+ # @param [Hash] deploy_opts options for deploying
57
+ # @param [Hash] lockjar_opts options for initializing LockJar
58
+ #
31
59
  def deploy_artifact( notation, file_path, url, deploy_opts = {}, lockjar_opts = {} )
32
60
  Runtime.instance.resolver(lockjar_opts).naether.deploy_artifact( notation, file_path, url, deploy_opts )
33
61
  end
34
62
 
63
+ #
64
+ # Install an artifact to a local repository
65
+ #
66
+ # @param [String] notation of artifact
67
+ # @param [String] pom_path path to the pom
68
+ # @param [String] jar_path path to the jar
69
+ # @param [Hash] opts options
70
+ #
35
71
  def install( notation, pom_path, jar_path, opts = {} )
36
72
  Runtime.instance.resolver(opts).naether.install( notation, pom_path, jar_path )
37
73
  end
@@ -35,7 +35,7 @@ module LockJar
35
35
  deps = Naether::Bootstrap.download_dependencies( temp_jar_dir, deps.merge( :local_repo => local_repo ) )
36
36
  if deps[:downloaded].size > 0
37
37
 
38
- unless Dir.exists?( temp_jar_dir )
38
+ unless File.directory?( temp_jar_dir )
39
39
  FileUtils.mkdir_p jar_dir
40
40
  end
41
41
 
@@ -84,23 +84,19 @@ module LockJar
84
84
  lock_data['repositories'] = lock_jar_file.repositories
85
85
 
86
86
  if needs_force_encoding
87
- lock_data['repositories'].map { |repo| repo.force_encoding("UTF-8") }
87
+ lock_data['repositories'].map! { |repo| repo.force_encoding("UTF-8") }
88
88
  end
89
89
  end
90
90
 
91
91
  if lock_jar_file.maps.size > 0
92
92
  lock_data['maps'] = lock_jar_file.maps
93
-
94
- #if needs_force_encoding
95
- # lock_data['maps'].map { |maps| maps.map { |map| map.force_encoding("UTF-8") } }
96
- #end
97
93
  end
98
94
 
99
95
  if lock_jar_file.excludes.size > 0
100
96
  lock_data['excludes'] = lock_jar_file.excludes
101
97
 
102
98
  if needs_force_encoding
103
- lock_data['excludes'].map { |exclude| exclude.force_encoding("UTF-8") }
99
+ lock_data['excludes'].map! { |exclude| exclude.force_encoding("UTF-8") }
104
100
  end
105
101
  end
106
102
 
@@ -109,7 +105,7 @@ module LockJar
109
105
  lock_jar_file.notations.each do |scope, notations|
110
106
 
111
107
  if needs_force_encoding
112
- notations.map { |notation| notation.force_encoding("UTF-8") }
108
+ notations.map! { |notation| notation.force_encoding("UTF-8") }
113
109
  end
114
110
 
115
111
  dependencies = []
data/lib/lock_jar.rb CHANGED
@@ -19,15 +19,32 @@ require 'lock_jar/resolver'
19
19
  require 'lock_jar/dsl'
20
20
  require 'lock_jar/runtime'
21
21
 
22
+ #
23
+ # LockJar manages Java Jars for Ruby.
24
+ #
25
+ # @author Michael Guymon
26
+ #
22
27
  module LockJar
23
28
 
29
+ #
30
+ # Override LockJar configuration
31
+ #
24
32
  def self.config( opts )
25
33
  Runtime.instance.resolver( opts )
26
34
  end
27
35
 
28
- # Lock a Jarfile and generate a Jarfile.lock
36
+ # Lock a Jarfile and generate a Jarfile.lock.
37
+ #
38
+ # LockJar.lock accepts an Array for parameters. Depending on the type of arg, a different configuration is set.
29
39
  #
30
- # Accepts path to the jarfile and hash of options to configure LockJar
40
+ # * An arg of a String will set the Jarfile, e.g. 'Jarfile.different'. Default Jarfile is *Jarfile*.
41
+ # * An arg of a Hash will set the options, e.g. { :local_repo => 'path' }
42
+ # * :local_repo sets the local repo path
43
+ # * :lockfile sets the Jarfile.lock path. Default lockfile is *Jarfile.lock*.
44
+ #
45
+ # A block can be passed in, overriding values from a Jarfile.
46
+ #
47
+ # @return [Hash] Lock data
31
48
  def self.lock( *args, &blk )
32
49
  jarfile = nil
33
50
  opts = {}
@@ -48,9 +65,18 @@ module LockJar
48
65
  Runtime.instance.lock( jarfile, opts, &blk )
49
66
  end
50
67
 
51
- # List jars for an array of scope in a lockfile
68
+ # Lists all dependencies as notations for scopes from the Jarfile.lock. Depending on the type of arg, a different configuration is set.
69
+ #
70
+ # * An arg of a String will set the Jarfile.lock, e.g. 'Better.lock'. Default lock file is *Jarfile.lock*.
71
+ # * An arg of an Array will set the scopes, e.g. ['compile','test']. Defaults scopes are *compile* and *runtime*
72
+ # * An arg of a Hash will set the options, e.g. { :local_repo => 'path' }
73
+ # * :local_repo sets the local repo path
74
+ # * :local_paths converts the notations to paths to jars in the local repo path
75
+ # * :resolve to true will make transitive dependences resolve before loading to classpath
76
+ #
77
+ # A block can be passed in, overriding values from a Jarfile.lock.
52
78
  #
53
- # Accepts path to the lockfile, array of scopes, and hash of options to configure LockJar
79
+ # @return [Array] of jar and mapped path
54
80
  def self.list( *args, &blk )
55
81
  lockfile = nil
56
82
  opts = {}
@@ -74,10 +100,16 @@ module LockJar
74
100
  Runtime.instance.list( lockfile, scopes, opts, &blk )
75
101
  end
76
102
 
77
- # Load jars for an array of scopes in a lockfile. Defaults lockfile to Jarfile.lock
103
+ # LockJar.load(*args): Loads all dependencies to the classpath for scopes from the Jarfile.lock. Depending on the type of arg, a different configuration is set.
104
+ # * An arg of a String will set the Jarfile.lock, e.g. 'Better.lock'. Default lock file is *Jarfile.lock*.
105
+ # * An arg of an Array will set the scopes, e.g. ['compile','test'].Defaults scopes are *compile* and *runtime*.
106
+ # * An arg of a Hash will set the options, e.g. { :local_repo => 'path' }
107
+ # * :local_repo sets the local repo path
108
+ # * :resolve to true will make transitive dependences resolve before loading to classpath
109
+ #
110
+ # A block can be passed in, overriding values from a Jarfile.lock.
78
111
  #
79
- # Accepts a path to the lockfile, array scopes, and hash of options to configure LockJar. A
80
- # block of LockJar::Dsl can be set.
112
+ # @return [Array] of absolute paths of jars and mapped paths loaded into claspath
81
113
  def self.load( *args, &blk )
82
114
  lockfile = nil
83
115
  opts = {}
@@ -101,6 +133,11 @@ module LockJar
101
133
  Runtime.instance.load( lockfile, scopes, opts, &blk )
102
134
  end
103
135
 
136
+ #
137
+ # Read a Jafile.lock and convert it to a Hash
138
+ #
139
+ # @param [String] lockfile path to lockfile
140
+ # @return [Hash] Lock Data
104
141
  def self.read( lockfile )
105
142
  Runtime.instance.read_lockfile( lockfile )
106
143
  end
data/lock_jar.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lock_jar"
8
- s.version = "0.3.1"
8
+ s.version = "0.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Guymon"]
12
- s.date = "2012-05-14"
12
+ s.date = "2012-05-17"
13
13
  s.description = "Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile\n is used to generate a Jarfile.lock that contains all the resolved jar dependencies for scopes runtime, compile, and test.\n The Jarfile.lock can be used to populate the classpath"
14
14
  s.email = "michael.guymon@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
45
45
  s.homepage = "http://github.com/mguymon/lock_jar"
46
46
  s.licenses = ["Apache"]
47
47
  s.require_paths = ["lib"]
48
- s.rubygems_version = "1.8.15"
48
+ s.rubygems_version = "1.8.24"
49
49
  s.summary = "Manage Jar files for Ruby"
50
50
 
51
51
  if s.respond_to? :specification_version then
@@ -56,17 +56,20 @@ Gem::Specification.new do |s|
56
56
  s.add_development_dependency(%q<rspec>, ["~> 2.9.0"])
57
57
  s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
58
58
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
59
+ s.add_development_dependency(%q<yard>, ["~> 0.8.0"])
59
60
  else
60
61
  s.add_dependency(%q<naether>, ["~> 0.8.0"])
61
62
  s.add_dependency(%q<rspec>, ["~> 2.9.0"])
62
63
  s.add_dependency(%q<bundler>, ["~> 1.1.0"])
63
64
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
65
+ s.add_dependency(%q<yard>, ["~> 0.8.0"])
64
66
  end
65
67
  else
66
68
  s.add_dependency(%q<naether>, ["~> 0.8.0"])
67
69
  s.add_dependency(%q<rspec>, ["~> 2.9.0"])
68
70
  s.add_dependency(%q<bundler>, ["~> 1.1.0"])
69
71
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
72
+ s.add_dependency(%q<yard>, ["~> 0.8.0"])
70
73
  end
71
74
  end
72
75
 
@@ -11,7 +11,6 @@ describe Bundler do
11
11
 
12
12
  before(:all) do
13
13
  FileUtils.rm_rf( bundled_app ) if File.exists? bundled_app
14
- FileUtils.mkdir_p tmp('bundler')
15
14
  end
16
15
 
17
16
  before(:each) do
@@ -27,6 +26,9 @@ describe Bundler do
27
26
  pom "#{File.join(root, 'spec', 'pom.xml')}", :scope => :development
28
27
  end
29
28
  G
29
+
30
+ ENV['BUNDLE_GEMFILE'] = bundled_app("Gemfile").to_s
31
+
30
32
  in_app_root
31
33
  end
32
34
 
@@ -36,10 +38,13 @@ describe Bundler do
36
38
  end
37
39
 
38
40
  it "provides a list of the env dependencies" do
39
- Bundler.load.dependencies.should have_dep("naether", ">= 0")
41
+ dep = Bundler.load.dependencies.first
42
+ dep.name.should eql("naether")
43
+ (dep.requirement >= ">= 0").should be_true
40
44
  end
41
45
 
42
46
  it "provides a list of the jar and pom dependencies" do
47
+ # XXX: In JRuby - works in autotest, fails directly from rspec. *sigh*
43
48
  Bundler.load.lock_jar.notations.should eql( {"compile"=>[File.expand_path(File.join(File.dirname(__FILE__), "../../spec/pom.xml"))], "runtime"=>[], "test"=>["junit:junit:jar:4.10"]} )
44
49
  end
45
50
 
@@ -4,11 +4,11 @@ require 'lib/lock_jar/runtime'
4
4
  describe LockJar::Runtime do
5
5
  context "Singleton" do
6
6
  it "should set local repo" do
7
- LockJar::Runtime.instance.load( nil ) do
7
+ LockJar::Runtime.instance.load( nil, [], :resolve => true, :local_repo => 'tmp/test-repo' ) do
8
8
  jar 'junit:junit:4.10'
9
9
  end
10
10
 
11
- LockJar::Runtime.instance.current_resolver.naether.local_repo_path.should eql File.expand_path('~/.m2/repository')
11
+ LockJar::Runtime.instance.current_resolver.naether.local_repo_path.should eql File.expand_path('tmp/test-repo')
12
12
 
13
13
  LockJar::Runtime.instance.load( nil, [], :local_repo => 'tmp/param_config' ) do
14
14
  local 'dsl_config'
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  $:.unshift File.expand_path('.')
2
2
  $:.unshift File.expand_path(File.join('..', File.dirname(__FILE__)))
3
- $:.unshift File.expand_path(File.join('../lib', File.dirname(__FILE__)))
3
+ $:.unshift File.expand_path(File.join('..', File.dirname(__FILE__), 'lib'))
4
4
 
5
5
  require 'rubygems'
6
6
  require 'rspec'
metadata CHANGED
@@ -1,71 +1,115 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: lock_jar
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 2
10
+ version: 0.3.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Michael Guymon
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-05-14 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: naether
16
- requirement: &15583440 !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-05-17 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
24
+ requirements:
19
25
  - - ~>
20
- - !ruby/object:Gem::Version
26
+ - !ruby/object:Gem::Version
27
+ hash: 63
28
+ segments:
29
+ - 0
30
+ - 8
31
+ - 0
21
32
  version: 0.8.0
22
33
  type: :runtime
34
+ name: naether
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
23
37
  prerelease: false
24
- version_requirements: *15583440
25
- - !ruby/object:Gem::Dependency
26
- name: rspec
27
- requirement: &15580160 !ruby/object:Gem::Requirement
38
+ requirement: &id002 !ruby/object:Gem::Requirement
28
39
  none: false
29
- requirements:
40
+ requirements:
30
41
  - - ~>
31
- - !ruby/object:Gem::Version
42
+ - !ruby/object:Gem::Version
43
+ hash: 43
44
+ segments:
45
+ - 2
46
+ - 9
47
+ - 0
32
48
  version: 2.9.0
33
49
  type: :development
50
+ name: rspec
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
34
53
  prerelease: false
35
- version_requirements: *15580160
36
- - !ruby/object:Gem::Dependency
37
- name: bundler
38
- requirement: &15700940 !ruby/object:Gem::Requirement
54
+ requirement: &id003 !ruby/object:Gem::Requirement
39
55
  none: false
40
- requirements:
56
+ requirements:
41
57
  - - ~>
42
- - !ruby/object:Gem::Version
58
+ - !ruby/object:Gem::Version
59
+ hash: 19
60
+ segments:
61
+ - 1
62
+ - 1
63
+ - 0
43
64
  version: 1.1.0
44
65
  type: :development
66
+ name: bundler
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
45
69
  prerelease: false
46
- version_requirements: *15700940
47
- - !ruby/object:Gem::Dependency
48
- name: jeweler
49
- requirement: &15697920 !ruby/object:Gem::Requirement
70
+ requirement: &id004 !ruby/object:Gem::Requirement
50
71
  none: false
51
- requirements:
72
+ requirements:
52
73
  - - ~>
53
- - !ruby/object:Gem::Version
74
+ - !ruby/object:Gem::Version
75
+ hash: 7
76
+ segments:
77
+ - 1
78
+ - 6
79
+ - 4
54
80
  version: 1.6.4
55
81
  type: :development
82
+ name: jeweler
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
56
85
  prerelease: false
57
- version_requirements: *15697920
58
- description: ! "Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile\n is
59
- used to generate a Jarfile.lock that contains all the resolved jar dependencies
60
- for scopes runtime, compile, and test.\n The Jarfile.lock can be used to populate
61
- the classpath"
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ~>
90
+ - !ruby/object:Gem::Version
91
+ hash: 63
92
+ segments:
93
+ - 0
94
+ - 8
95
+ - 0
96
+ version: 0.8.0
97
+ type: :development
98
+ name: yard
99
+ version_requirements: *id005
100
+ description: |-
101
+ Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile
102
+ is used to generate a Jarfile.lock that contains all the resolved jar dependencies for scopes runtime, compile, and test.
103
+ The Jarfile.lock can be used to populate the classpath
62
104
  email: michael.guymon@gmail.com
63
105
  executables: []
106
+
64
107
  extensions: []
65
- extra_rdoc_files:
108
+
109
+ extra_rdoc_files:
66
110
  - LICENSE
67
111
  - README.rdoc
68
- files:
112
+ files:
69
113
  - Gemfile
70
114
  - LICENSE
71
115
  - README.rdoc
@@ -91,31 +135,37 @@ files:
91
135
  - spec/pom.xml
92
136
  - spec/spec_helper.rb
93
137
  homepage: http://github.com/mguymon/lock_jar
94
- licenses:
138
+ licenses:
95
139
  - Apache
96
140
  post_install_message:
97
141
  rdoc_options: []
98
- require_paths:
142
+
143
+ require_paths:
99
144
  - lib
100
- required_ruby_version: !ruby/object:Gem::Requirement
145
+ required_ruby_version: !ruby/object:Gem::Requirement
101
146
  none: false
102
- requirements:
103
- - - ! '>='
104
- - !ruby/object:Gem::Version
105
- version: '0'
106
- segments:
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ hash: 3
151
+ segments:
107
152
  - 0
108
- hash: -3207536742551290776
109
- required_rubygems_version: !ruby/object:Gem::Requirement
153
+ version: "0"
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
155
  none: false
111
- requirements:
112
- - - ! '>='
113
- - !ruby/object:Gem::Version
114
- version: '0'
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ hash: 3
160
+ segments:
161
+ - 0
162
+ version: "0"
115
163
  requirements: []
164
+
116
165
  rubyforge_project:
117
- rubygems_version: 1.8.15
166
+ rubygems_version: 1.8.24
118
167
  signing_key:
119
168
  specification_version: 3
120
169
  summary: Manage Jar files for Ruby
121
170
  test_files: []
171
+