lock_jar 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +16 -0
  3. data/.rubocop.yml +28 -0
  4. data/.travis.yml +12 -1
  5. data/Gemfile +6 -3
  6. data/Guardfile +2 -3
  7. data/README.md +17 -16
  8. data/Rakefile +11 -7
  9. data/lib/lock_jar/buildr.rb +95 -89
  10. data/lib/lock_jar/bundler.rb +85 -84
  11. data/lib/lock_jar/class_loader.rb +19 -21
  12. data/lib/lock_jar/cli.rb +32 -25
  13. data/lib/lock_jar/domain/artifact.rb +39 -45
  14. data/lib/lock_jar/domain/dsl.rb +50 -79
  15. data/lib/lock_jar/domain/dsl_merger.rb +76 -0
  16. data/lib/lock_jar/domain/gem_dsl.rb +10 -12
  17. data/lib/lock_jar/domain/jarfile_dsl.rb +6 -18
  18. data/lib/lock_jar/domain/lockfile.rb +17 -24
  19. data/lib/lock_jar/logging.rb +4 -3
  20. data/lib/lock_jar/maven.rb +29 -29
  21. data/lib/lock_jar/registry.rb +52 -60
  22. data/lib/lock_jar/resolver.rb +17 -20
  23. data/lib/lock_jar/runtime/install.rb +28 -0
  24. data/lib/lock_jar/runtime/list.rb +55 -0
  25. data/lib/lock_jar/runtime/load.rb +54 -0
  26. data/lib/lock_jar/runtime/lock.rb +152 -0
  27. data/lib/lock_jar/runtime.rb +30 -302
  28. data/lib/lock_jar/version.rb +2 -1
  29. data/lib/lock_jar.rb +137 -105
  30. data/lock_jar.gemspec +7 -4
  31. data/spec/fixtures/jarfile_gem/Gemfile +4 -0
  32. data/spec/fixtures/jarfile_gem/Jarfile +1 -0
  33. data/spec/fixtures/jarfile_gem/jarfile_gem.gemspec +23 -0
  34. data/spec/fixtures/jarfile_gem/lib/jarfile_gem/version.rb +3 -0
  35. data/spec/fixtures/jarfile_gem/lib/jarfile_gem.rb +5 -0
  36. data/spec/lock_jar/bundler_spec.rb +27 -0
  37. data/spec/lock_jar/class_loader_spec.rb +34 -36
  38. data/spec/lock_jar/cli_spec.rb +39 -46
  39. data/spec/lock_jar/domain/dsl_merger_spec.rb +49 -0
  40. data/spec/lock_jar/domain/dsl_spec.rb +35 -37
  41. data/spec/lock_jar/domain/gem_dsl_spec.rb +18 -0
  42. data/spec/lock_jar/maven_spec.rb +9 -11
  43. data/spec/lock_jar/resolver_spec.rb +16 -17
  44. data/spec/lock_jar/runtime_spec.rb +17 -13
  45. data/spec/lock_jar_spec.rb +255 -195
  46. data/spec/spec_helper.rb +13 -8
  47. data/spec/support/helper.rb +13 -5
  48. data/spec/support/shared_examples/lockfile.rb +4 -6
  49. metadata +43 -19
  50. data/bundler/Gemfile +0 -21
  51. data/bundler/LICENSE.txt +0 -22
  52. data/bundler/README.md +0 -29
  53. data/bundler/Rakefile +0 -2
  54. data/bundler/lib/lock_jar_bundler/bundler.rb +0 -35
  55. data/bundler/lib/lock_jar_bundler/piggy_back.rb +0 -98
  56. data/bundler/lib/lock_jar_bundler/version.rb +0 -5
  57. data/bundler/lib/lock_jar_bundler.rb +0 -5
  58. data/bundler/lock_jar_bundler.gemspec +0 -24
  59. data/bundler/spec/Jarfile +0 -3
  60. data/bundler/spec/dummy_gem/Jarfile +0 -1
  61. data/bundler/spec/dummy_gem/dummy_gem.gemspec +0 -19
  62. data/bundler/spec/lock_jar_bundler_spec.rb +0 -49
  63. data/bundler/spec/spec_helper.rb +0 -88
  64. data/lib/lock_jar/domain/dsl_helper.rb +0 -84
  65. data/spec/lock_jar/domain/dsl_helper_spec.rb +0 -52
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,7 @@
1
- $:.unshift File.expand_path('.')
2
- $:.unshift File.expand_path(File.join('..', File.dirname(__FILE__)))
3
- $:.unshift File.expand_path(File.join('..', File.dirname(__FILE__), 'lib'))
1
+ $LOAD_PATH.unshift File.expand_path('.')
2
+ $LOAD_PATH.unshift File.expand_path(File.join('..', File.dirname(__FILE__)))
3
+ $LOAD_PATH.unshift File.expand_path(File.join('..', File.dirname(__FILE__), 'lib'))
4
4
 
5
- require 'rubygems'
6
5
  require 'rspec'
7
6
  require 'lock_jar'
8
7
  require 'lock_jar/cli'
@@ -10,6 +9,10 @@ require 'stringio'
10
9
  require 'fileutils'
11
10
  require 'lock_jar/logging'
12
11
  require 'pry'
12
+ require 'codeclimate-test-reporter'
13
+
14
+ # coverage
15
+ CodeClimate::TestReporter.start
13
16
 
14
17
  # Requires supporting ruby files with custom matchers and macros, etc,
15
18
  # in spec/support/ and its subdirectories.
@@ -17,16 +20,18 @@ Dir[File.expand_path('.') + '/spec/support/**/*.rb'].each { |f| require f }
17
20
 
18
21
  LockJar::Logging.verbose!
19
22
 
23
+ # rubocop:disable Style/GlobalVars
20
24
  def mock_terminal
21
25
  @input = StringIO.new
22
26
  @output = StringIO.new
23
27
  $terminal = HighLine.new @input, @output
24
28
  end
29
+ # rubocop:enable Style/GlobalVars
25
30
 
26
- TEMP_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", ".spec-tmp"))
27
- TEST_REPO = File.expand_path(File.join(TEMP_DIR, "test-repo"))
28
- PARAM_CONFIG = File.expand_path(File.join(TEMP_DIR, "param_config"))
29
- DSL_CONFIG = File.expand_path(File.join(TEMP_DIR, "dsl_config"))
31
+ TEMP_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', 'tmp'))
32
+ TEST_REPO = File.expand_path(File.join(TEMP_DIR, 'test-repo-install'))
33
+ PARAM_CONFIG = File.expand_path(File.join(TEMP_DIR, 'param_config'))
34
+ DSL_CONFIG = File.expand_path(File.join(TEMP_DIR, 'dsl_config'))
30
35
 
31
36
  RSpec.configure do |config|
32
37
  config.order = 'default'
@@ -3,7 +3,11 @@ require 'pathname'
3
3
 
4
4
  module Spec
5
5
  module Helpers
6
- def lockjar(cmd, options = {})
6
+ def remove_file(path)
7
+ FileUtils.rm(path) if File.exist? path
8
+ end
9
+
10
+ def lockjar(cmd, _options = {})
7
11
  lockjar_bin = File.expand_path('../../../bin/lockjar', __FILE__)
8
12
  cmd = "ruby -I#{lib} #{lockjar_bin} #{cmd}"
9
13
 
@@ -14,9 +18,12 @@ module Spec
14
18
  File.expand_path('../../../lib', __FILE__)
15
19
  end
16
20
 
21
+ # rubocop:disable Style/GlobalVars
17
22
  def sys_exec(cmd, expect_err = false)
18
23
  Open3.popen3(cmd.to_s) do |stdin, stdout, stderr|
19
- @in_p, @out_p, @err_p = stdin, stdout, stderr
24
+ @in_p = stdin
25
+ @out_p = stdout
26
+ @err_p = stderr
20
27
 
21
28
  yield @in_p if block_given?
22
29
  @in_p.close
@@ -28,17 +35,18 @@ module Spec
28
35
  puts @err unless expect_err || @err.empty? || !$show_err
29
36
  @out
30
37
  end
38
+ # rubocop:enable Style/GlobalVars
31
39
 
32
40
  def install_jarfile(*args)
33
- root_path ||= Pathname.new(File.expand_path("../../..", __FILE__))
34
- jarfile_path = root_path.join("Jarfile")
41
+ root_path ||= Pathname.new(File.expand_path('../../..', __FILE__))
42
+ jarfile_path = root_path.join('Jarfile')
35
43
  File.open(jarfile_path.to_s, 'w') do |f|
36
44
  f.puts args.last
37
45
  end
38
46
  end
39
47
 
40
48
  def is_jruby?
41
- defined?(RUBY_ENGINE) && (RUBY_ENGINE == "jruby")
49
+ defined?(RUBY_ENGINE) && (RUBY_ENGINE == 'jruby')
42
50
  end
43
51
  end
44
52
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- shared_examples "a lockfile" do
3
+ shared_examples 'a lockfile' do
4
4
  let(:lockfile_hash) { lockfile.to_h }
5
5
 
6
6
  it 'should have a version' do
@@ -15,18 +15,16 @@ shared_examples "a lockfile" do
15
15
 
16
16
  it 'should have a local repository' do
17
17
  if respond_to? :expected_local_repository
18
- lockfile_hash['local_repository'].should eql expected_local_repository
18
+ expect(lockfile_hash['local_repository']).to(eql(expected_local_repository))
19
19
  end
20
20
  end
21
21
 
22
22
  it 'should have a maps' do
23
- if respond_to? :expected_map
24
- lockfile_hash['maps'].should eql expected_map
25
- end
23
+ expect(lockfile_hash['maps']).to(eql(expected_map)) if respond_to? :expected_map
26
24
  end
27
25
 
28
26
  it 'should have remote repositories' do
29
- lockfile_hash["remote_repositories"].should eql expected_remote_repositories
27
+ lockfile_hash['remote_repositories'].should eql expected_remote_repositories
30
28
  end
31
29
 
32
30
  context 'for groups' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lock_jar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Guymon
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.18.1
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 2.14.1
47
+ name: rspec
48
+ prerelease: false
49
+ type: :development
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.14.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  requirement: !ruby/object:Gem::Requirement
43
57
  requirements:
@@ -52,7 +66,11 @@ dependencies:
52
66
  - - '>='
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
- description: Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile is used to generate a Jarfile.lock that contains all the resolved jar dependencies for scopes runtime, compile, and test. The Jarfile.lock can be used to populate the classpath
69
+ description: |-
70
+ Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile
71
+ is used to generate a Jarfile.lock that contains all the resolved jar dependencies
72
+ for scopes runtime, compile, and test. The Jarfile.lock can be used to populate the
73
+ classpath
56
74
  email: michael@tobedevoured.com
57
75
  executables:
58
76
  - lockjar
@@ -61,7 +79,9 @@ extra_rdoc_files:
61
79
  - LICENSE
62
80
  - README.md
63
81
  files:
82
+ - .codeclimate.yml
64
83
  - .gitignore
84
+ - .rubocop.yml
65
85
  - .travis.yml
66
86
  - CHANGELOG.md
67
87
  - Gemfile
@@ -70,20 +90,6 @@ files:
70
90
  - README.md
71
91
  - Rakefile
72
92
  - bin/lockjar
73
- - bundler/Gemfile
74
- - bundler/LICENSE.txt
75
- - bundler/README.md
76
- - bundler/Rakefile
77
- - bundler/lib/lock_jar_bundler.rb
78
- - bundler/lib/lock_jar_bundler/bundler.rb
79
- - bundler/lib/lock_jar_bundler/piggy_back.rb
80
- - bundler/lib/lock_jar_bundler/version.rb
81
- - bundler/lock_jar_bundler.gemspec
82
- - bundler/spec/Jarfile
83
- - bundler/spec/dummy_gem/Jarfile
84
- - bundler/spec/dummy_gem/dummy_gem.gemspec
85
- - bundler/spec/lock_jar_bundler_spec.rb
86
- - bundler/spec/spec_helper.rb
87
93
  - lib/lock_jar.rb
88
94
  - lib/lock_jar/buildr.rb
89
95
  - lib/lock_jar/bundler.rb
@@ -91,7 +97,7 @@ files:
91
97
  - lib/lock_jar/cli.rb
92
98
  - lib/lock_jar/domain/artifact.rb
93
99
  - lib/lock_jar/domain/dsl.rb
94
- - lib/lock_jar/domain/dsl_helper.rb
100
+ - lib/lock_jar/domain/dsl_merger.rb
95
101
  - lib/lock_jar/domain/gem_dsl.rb
96
102
  - lib/lock_jar/domain/jarfile_dsl.rb
97
103
  - lib/lock_jar/domain/lockfile.rb
@@ -100,15 +106,26 @@ files:
100
106
  - lib/lock_jar/registry.rb
101
107
  - lib/lock_jar/resolver.rb
102
108
  - lib/lock_jar/runtime.rb
109
+ - lib/lock_jar/runtime/install.rb
110
+ - lib/lock_jar/runtime/list.rb
111
+ - lib/lock_jar/runtime/load.rb
112
+ - lib/lock_jar/runtime/lock.rb
103
113
  - lib/lock_jar/version.rb
104
114
  - lock_jar.gemspec
105
115
  - spec/fixtures/Jarfile
106
116
  - spec/fixtures/Jarfile2
117
+ - spec/fixtures/jarfile_gem/Gemfile
118
+ - spec/fixtures/jarfile_gem/Jarfile
119
+ - spec/fixtures/jarfile_gem/jarfile_gem.gemspec
120
+ - spec/fixtures/jarfile_gem/lib/jarfile_gem.rb
121
+ - spec/fixtures/jarfile_gem/lib/jarfile_gem/version.rb
107
122
  - spec/fixtures/naether-0.13.0.jar
123
+ - spec/lock_jar/bundler_spec.rb
108
124
  - spec/lock_jar/class_loader_spec.rb
109
125
  - spec/lock_jar/cli_spec.rb
110
- - spec/lock_jar/domain/dsl_helper_spec.rb
126
+ - spec/lock_jar/domain/dsl_merger_spec.rb
111
127
  - spec/lock_jar/domain/dsl_spec.rb
128
+ - spec/lock_jar/domain/gem_dsl_spec.rb
112
129
  - spec/lock_jar/maven_spec.rb
113
130
  - spec/lock_jar/resolver_spec.rb
114
131
  - spec/lock_jar/runtime_spec.rb
@@ -145,11 +162,18 @@ summary: Manage Jar files for Ruby
145
162
  test_files:
146
163
  - spec/fixtures/Jarfile
147
164
  - spec/fixtures/Jarfile2
165
+ - spec/fixtures/jarfile_gem/Gemfile
166
+ - spec/fixtures/jarfile_gem/Jarfile
167
+ - spec/fixtures/jarfile_gem/jarfile_gem.gemspec
168
+ - spec/fixtures/jarfile_gem/lib/jarfile_gem.rb
169
+ - spec/fixtures/jarfile_gem/lib/jarfile_gem/version.rb
148
170
  - spec/fixtures/naether-0.13.0.jar
171
+ - spec/lock_jar/bundler_spec.rb
149
172
  - spec/lock_jar/class_loader_spec.rb
150
173
  - spec/lock_jar/cli_spec.rb
151
- - spec/lock_jar/domain/dsl_helper_spec.rb
174
+ - spec/lock_jar/domain/dsl_merger_spec.rb
152
175
  - spec/lock_jar/domain/dsl_spec.rb
176
+ - spec/lock_jar/domain/gem_dsl_spec.rb
153
177
  - spec/lock_jar/maven_spec.rb
154
178
  - spec/lock_jar/resolver_spec.rb
155
179
  - spec/lock_jar/runtime_spec.rb
data/bundler/Gemfile DELETED
@@ -1,21 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in lock_jar_bundler.gemspec
4
- gemspec
5
-
6
- group :development do
7
- gem 'guard-rspec', :require => false
8
- gem 'pry'
9
- gem 'yard'
10
- gem 'jruby-openssl', :platforms => :jruby
11
- gem 'rspec', '~>3.0.0'
12
- gem 'lock_jar', path: '../core'
13
- end
14
-
15
- # Test gems used in the specs when scanning for bundled jarfiles
16
- group :test do
17
- gem 'dummy_gem', path: 'spec/dummy_gem'
18
- end
19
-
20
-
21
-
data/bundler/LICENSE.txt DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2014 Michael Guymon
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/bundler/README.md DELETED
@@ -1,29 +0,0 @@
1
- # LockJarBundler
2
-
3
- TODO: Write a gem description
4
-
5
- ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- gem 'lock_jar_bundler'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
- $ gem install lock_jar_bundler
18
-
19
- ## Usage
20
-
21
- TODO: Write usage instructions here
22
-
23
- ## Contributing
24
-
25
- 1. Fork it ( https://github.com/[my-github-username]/lock_jar_bundler/fork )
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Add some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create a new Pull Request
data/bundler/Rakefile DELETED
@@ -1,2 +0,0 @@
1
- require "bundler/gem_tasks"
2
-
@@ -1,35 +0,0 @@
1
- require 'lock_jar/registry'
2
- require 'lock_jar_bundler/version'
3
-
4
- module LockJar
5
-
6
- class Bundler
7
-
8
- def self.bundled_jarfiles(groups=[:default])
9
- jarfiles = []
10
-
11
- ::Bundler.with_clean_env do
12
- ::Bundler.setup(groups)
13
- definition = ::Bundler.definition
14
-
15
- definition.specs_for(groups).each do |spec|
16
- gem_dir = spec.gem_dir
17
-
18
- jarfile = File.join( gem_dir, "Jarfile" )
19
-
20
- # XXX: assert that is a LockJar file
21
-
22
- if File.exists?( jarfile )
23
- puts "#{spec.name} has Jarfile for locking"
24
- jarfiles << jarfile
25
- end
26
- end
27
- end
28
-
29
- jarfiles
30
- end
31
-
32
- end
33
-
34
- end
35
-
@@ -1,98 +0,0 @@
1
- module Bundler
2
- class << self
3
- alias :_lockjar_extended_require :require
4
- def require(*groups)
5
- LockJar::Bundler.load(*groups)
6
-
7
- LockJar::Bundler.skip_lock = true
8
-
9
- _lockjar_extended_require
10
- end
11
-
12
- alias :_lockjar_extended_setup :setup
13
- def setup(*groups)
14
- LockJar::Bundler.load(*groups)
15
-
16
- LockJar::Bundler.skip_lock = true
17
-
18
- _lockjar_extended_setup
19
- end
20
- end
21
-
22
- class Runtime
23
-
24
- alias :_lockjar_extended_require :require
25
- def require(*groups)
26
- LockJar::Bundler.load(*groups)
27
-
28
- LockJar::Bundler.skip_lock = true
29
-
30
- _lockjar_extended_require
31
- end
32
-
33
- alias :_lockjar_extended_setup :setup
34
- def setup(*groups)
35
- LockJar::Bundler.load(*groups)
36
-
37
- LockJar::Bundler.skip_lock = true
38
-
39
- _lockjar_extended_setup
40
- end
41
- end
42
-
43
- class Definition
44
- alias :_lockjar_extended_to_lock :to_lock
45
- def to_lock
46
- to_lock = _lockjar_extended_to_lock
47
-
48
- if LockJar::Bundler.skip_lock != true
49
- definition = Bundler.definition
50
- #if !definition.send( :nothing_changed? )
51
- gems_with_jars = []
52
-
53
- # load local Jarfile
54
- if File.exists?( 'Jarfile' )
55
- dsl = LockJar::Domain::JarfileDsl.create( File.expand_path( 'Jarfile' ) )
56
- gems_with_jars << 'jarfile:Jarfile'
57
- # Create new Dsl
58
- else
59
- dsl = LockJar::Domain::Dsl.new
60
- end
61
-
62
- definition.groups.each do |group|
63
- if ENV["DEBUG"]
64
- puts "[LockJar] Group #{group}:"
65
- end
66
-
67
- definition.specs_for( [group] ).each do |spec|
68
- gem_dir = spec.gem_dir
69
-
70
- jarfile = File.join( gem_dir, "Jarfile" )
71
-
72
- if File.exists?( jarfile )
73
- gems_with_jars << "gem:#{spec.name}"
74
-
75
- if ENV["DEBUG"]
76
- puts "[LockJar] #{spec.name} has Jarfile"
77
- end
78
-
79
- spec_dsl = LockJar::Domain::GemDsl.create( spec, "Jarfile" )
80
-
81
- dsl = LockJar::Domain::DslHelper.merge( dsl, spec_dsl, group.to_s )
82
- end
83
- end
84
-
85
- end
86
-
87
- puts "[LockJar] Locking Jars for: #{gems_with_jars.inspect}"
88
- LockJar.lock( dsl )
89
- #elsif ENV["DEBUG"]
90
- # puts "[LockJar] Locking skiped, Gemfile has not changed"
91
- #end
92
- end
93
-
94
- to_lock
95
- end
96
-
97
- end
98
- end
@@ -1,5 +0,0 @@
1
- module LockJar
2
- class Bundler
3
- VERSION = "0.0.1"
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- require 'lock_jar_bundler/bundler'
2
-
3
- module LockJar
4
-
5
- end
@@ -1,24 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'lock_jar_bundler/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'lock_jar_bundler'
8
- spec.version = LockJar::Bundler::VERSION
9
- spec.authors = ['Michael Guymon']
10
- spec.email = %w(michael@tobedevoured)
11
- spec.summary = 'Manage Jar files for Ruby'
12
- spec.description = 'Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile is used to generate a Jarfile.lock that contains all the resolved jar dependencies for scopes runtime, compile, and test. The Jarfile.lock can be used to populate the classpath'
13
- spec.homepage = 'http://github.com/mguymon/lock_jar'
14
- spec.license = 'Apache'
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_dependency 'lock_jar', '>= 0.8.0'
22
- spec.add_dependency 'bundler', '~> 1.6'
23
- spec.add_development_dependency 'rake'
24
- end
data/bundler/spec/Jarfile DELETED
@@ -1,3 +0,0 @@
1
- bundler :default, :test
2
-
3
- jar "com.tobedevoured.command:core:0.3.2"
@@ -1 +0,0 @@
1
- jar "com.google.guava:guava:14.0.1"
@@ -1,19 +0,0 @@
1
- # coding: utf-8
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = 'dummy_gem'
5
- spec.version = 0.1
6
- spec.authors = ['Michael Guymon']
7
- spec.email = %w(michael@tobedevoured)
8
- spec.summary = 'For testing LockJar Bundler support'
9
- spec.description = 'For testing LockJar Bundler support'
10
- spec.homepage = 'http://github.com/mguymon/lock_jar'
11
- spec.license = 'Apache'
12
-
13
- spec.files = []
14
- spec.executables = []
15
- spec.test_files = []
16
- spec.require_paths = ["lib"]
17
-
18
- spec.add_dependency 'json'
19
- end
@@ -1,49 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__),'spec_helper'))
2
-
3
- require 'lock_jar'
4
- require 'lock_jar_bundler'
5
-
6
- describe LockJar::Bundler, "#bundled_jarfiles" do
7
- it "should give a list of jarfile paths" do
8
- jar_files = LockJar::Bundler.bundled_jarfiles([:test])
9
- expect(jar_files).to eql [File.expand_path('spec/dummy_gem/Jarfile')]
10
- end
11
-
12
- it "should create a Jarfile.lock including bundler Jarfiles" do
13
- LockJar.lock( "spec/Jarfile", :local_repo => TEST_REPO, :lockfile => "#{TEMP_DIR}/BundledJarfile.lock" )
14
- lockfile = LockJar.read("#{TEMP_DIR}/BundledJarfile.lock")
15
- expect(lockfile.to_hash).to eql({
16
- "version"=>"0.10.0",
17
- "merged" => [File.expand_path('spec/dummy_gem/Jarfile')],
18
- "groups"=>{
19
- "default"=>{
20
- "dependencies"=> %w(
21
- com.google.guava:guava:jar:14.0.1
22
- com.metapossum:metapossum-scanner:jar:1.0.1
23
- com.tobedevoured.command:core:jar:0.3.2
24
- com.typesafe:config:jar:0.5.0
25
- commons-beanutils:commons-beanutils:jar:1.8.3
26
- commons-io:commons-io:jar:2.3
27
- commons-lang:commons-lang:jar:2.6
28
- commons-logging:commons-logging:jar:1.1.1
29
- org.modeshape:modeshape-common:jar:2.8.2.Final
30
- org.slf4j:slf4j-api:jar:1.6.6),
31
- "artifacts"=>[
32
- {"jar:com.tobedevoured.command:core:jar:0.3.2"=>{
33
- "transitive"=>{
34
- "commons-beanutils:commons-beanutils:jar:1.8.3"=>{
35
- "commons-logging:commons-logging:jar:1.1.1"=>{}},
36
- "com.typesafe:config:jar:0.5.0"=>{},
37
- "com.metapossum:metapossum-scanner:jar:1.0.1"=>{
38
- "commons-io:commons-io:jar:2.3"=>{}, "commons-lang:commons-lang:jar:2.6"=>{}},
39
- "org.slf4j:slf4j-api:jar:1.6.6"=>{},
40
- "org.modeshape:modeshape-common:jar:2.8.2.Final"=>{}
41
- }
42
- }},
43
- {"jar:com.google.guava:guava:jar:14.0.1"=>{"transitive"=>{}}}
44
- ]
45
- }
46
- }
47
- })
48
- end
49
- end
@@ -1,88 +0,0 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
- # file to always be loaded, without a need to explicitly require it in any files.
5
- #
6
- # Given that it is always loaded, you are encouraged to keep this file as
7
- # light-weight as possible. Requiring heavyweight dependencies from this file
8
- # will add to the boot time of your test suite on EVERY test run, even for an
9
- # individual file that may not need all of that loaded. Instead, make a
10
- # separate helper file that requires this one and then use it only in the specs
11
- # that actually need it.
12
- #
13
- # The `.rspec` file also contains a few flags that are not defaults but that
14
- # users commonly want.
15
- #
16
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
-
18
- require 'pry'
19
-
20
- TEMP_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", ".spec-tmp"))
21
- TEST_REPO = File.expand_path(File.join(TEMP_DIR, "test-repo"))
22
-
23
- RSpec.configure do |config|
24
- # The settings below are suggested to provide a good initial experience
25
- # with RSpec, but feel free to customize to your heart's content.
26
- =begin
27
- # These two settings work together to allow you to limit a spec run
28
- # to individual examples or groups you care about by tagging them with
29
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
30
- # get run.
31
- config.filter_run :focus
32
- config.run_all_when_everything_filtered = true
33
-
34
- # Many RSpec users commonly either run the entire suite or an individual
35
- # file, and it's useful to allow more verbose output when running an
36
- # individual spec file.
37
- if config.files_to_run.one?
38
- # Use the documentation formatter for detailed output,
39
- # unless a formatter has already been configured
40
- # (e.g. via a command-line flag).
41
- config.default_formatter = 'doc'
42
- end
43
-
44
- # Print the 10 slowest examples and example groups at the
45
- # end of the spec run, to help surface which specs are running
46
- # particularly slow.
47
- config.profile_examples = 10
48
-
49
- # Run specs in random order to surface order dependencies. If you find an
50
- # order dependency and want to debug it, you can fix the order by providing
51
- # the seed, which is printed after each run.
52
- # --seed 1234
53
- config.order = :random
54
-
55
- # Seed global randomization in this process using the `--seed` CLI option.
56
- # Setting this allows you to use `--seed` to deterministically reproduce
57
- # test failures related to randomization by passing the same `--seed` value
58
- # as the one that triggered the failure.
59
- Kernel.srand config.seed
60
-
61
- # rspec-expectations config goes here. You can use an alternate
62
- # assertion/expectation library such as wrong or the stdlib/minitest
63
- # assertions if you prefer.
64
- config.expect_with :rspec do |expectations|
65
- # Enable only the newer, non-monkey-patching expect syntax.
66
- # For more details, see:
67
- # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
68
- expectations.syntax = :expect
69
- end
70
-
71
- # rspec-mocks config goes here. You can use an alternate test double
72
- # library (such as bogus or mocha) by changing the `mock_with` option here.
73
- config.mock_with :rspec do |mocks|
74
- # Enable only the newer, non-monkey-patching expect syntax.
75
- # For more details, see:
76
- # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
77
- mocks.syntax = :expect
78
-
79
- # Prevents you from mocking or stubbing a method that does not exist on
80
- # a real object. This is generally recommended.
81
- mocks.verify_partial_doubles = true
82
- end
83
- =end
84
-
85
- config.before(:suite) do
86
- FileUtils.mkdir_p(TEST_REPO)
87
- end
88
- end