lock_jar 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/lock_jar/dsl.rb +10 -0
- data/lib/lock_jar/runtime.rb +36 -0
- data/lock_jar.gemspec +2 -2
- data/spec/lock_jar_spec.rb +17 -0
- metadata +75 -89
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
data/lib/lock_jar/dsl.rb
CHANGED
@@ -21,6 +21,7 @@ module LockJar
|
|
21
21
|
attr_reader :local_repository
|
22
22
|
attr_reader :scopes
|
23
23
|
attr_reader :maps
|
24
|
+
attr_reader :excludes
|
24
25
|
|
25
26
|
class << self
|
26
27
|
|
@@ -63,6 +64,11 @@ module LockJar
|
|
63
64
|
|
64
65
|
@local_repository = nil
|
65
66
|
@maps = {}
|
67
|
+
@excludes = []
|
68
|
+
end
|
69
|
+
|
70
|
+
def exclude(*notations)
|
71
|
+
@excludes += notations
|
66
72
|
end
|
67
73
|
|
68
74
|
def jar(notation, *args)
|
@@ -94,6 +100,10 @@ module LockJar
|
|
94
100
|
end
|
95
101
|
end
|
96
102
|
|
103
|
+
dsl.excludes.each do |exclude|
|
104
|
+
@excludes << exclude
|
105
|
+
end
|
106
|
+
|
97
107
|
self
|
98
108
|
end
|
99
109
|
|
data/lib/lock_jar/runtime.rb
CHANGED
@@ -58,20 +58,44 @@ module LockJar
|
|
58
58
|
|
59
59
|
unless lock_jar_file.local_repository.nil?
|
60
60
|
lock_data['local_repository'] = lock_jar_file.local_repository
|
61
|
+
|
62
|
+
if needs_force_encoding
|
63
|
+
lock_data['local_repository'] = lock_data['local_repository'].force_encoding("UTF-8")
|
64
|
+
end
|
61
65
|
end
|
62
66
|
|
63
67
|
if lock_jar_file.repositories.size > 0
|
64
68
|
lock_data['repositories'] = lock_jar_file.repositories
|
69
|
+
|
70
|
+
if needs_force_encoding
|
71
|
+
lock_data['repositories'].map { |repo| repo.force_encoding("UTF-8") }
|
72
|
+
end
|
65
73
|
end
|
66
74
|
|
67
75
|
if lock_jar_file.maps.size > 0
|
68
76
|
lock_data['maps'] = lock_jar_file.maps
|
77
|
+
|
78
|
+
#if needs_force_encoding
|
79
|
+
# lock_data['maps'].map { |maps| maps.map { |map| map.force_encoding("UTF-8") } }
|
80
|
+
#end
|
81
|
+
end
|
82
|
+
|
83
|
+
if lock_jar_file.excludes.size > 0
|
84
|
+
lock_data['excludes'] = lock_jar_file.excludes
|
85
|
+
|
86
|
+
if needs_force_encoding
|
87
|
+
lock_data['excludes'].map { |exclude| exclude.force_encoding("UTF-8") }
|
88
|
+
end
|
69
89
|
end
|
70
90
|
|
71
91
|
lock_data['scopes'] = {}
|
72
92
|
|
73
93
|
lock_jar_file.notations.each do |scope, notations|
|
74
94
|
|
95
|
+
if needs_force_encoding
|
96
|
+
notations.map { |notation| notation.force_encoding("UTF-8") }
|
97
|
+
end
|
98
|
+
|
75
99
|
dependencies = []
|
76
100
|
notations.each do |notation|
|
77
101
|
dependencies << {notation => scope}
|
@@ -80,6 +104,12 @@ module LockJar
|
|
80
104
|
if dependencies.size > 0
|
81
105
|
resolved_notations = resolver(opts).resolve( dependencies )
|
82
106
|
|
107
|
+
if lock_data['excludes']
|
108
|
+
lock_data['excludes'].each do |exclude|
|
109
|
+
resolved_notations.delete_if { |dep| dep =~ /#{exclude}/ }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
83
113
|
lock_data['scopes'][scope] = {
|
84
114
|
'dependencies' => notations,
|
85
115
|
'resolved_dependencies' => resolved_notations }
|
@@ -190,5 +220,11 @@ module LockJar
|
|
190
220
|
|
191
221
|
dependencies
|
192
222
|
end
|
223
|
+
|
224
|
+
private
|
225
|
+
def needs_force_encoding
|
226
|
+
@needs_force_encoding || @needs_force_encoding = RUBY_VERSION =~ /^1.9/
|
227
|
+
end
|
193
228
|
end
|
229
|
+
|
194
230
|
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.2.
|
8
|
+
s.version = "0.2.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-
|
12
|
+
s.date = "2012-05-10"
|
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 = [
|
data/spec/lock_jar_spec.rb
CHANGED
@@ -28,6 +28,23 @@ describe LockJar do
|
|
28
28
|
"compile"=>{
|
29
29
|
"dependencies"=>["junit:junit:4.10"], "resolved_dependencies"=>["junit:junit:jar:4.10", "org.hamcrest:hamcrest-core:jar:1.1"]}}} )
|
30
30
|
end
|
31
|
+
|
32
|
+
it "should exclude excludes from dependencies" do
|
33
|
+
dsl = LockJar::Dsl.evaluate do
|
34
|
+
exclude 'commons-logging', 'logkit'
|
35
|
+
jar 'opensymphony:oscache:jar:2.4.1'
|
36
|
+
end
|
37
|
+
|
38
|
+
LockJar.lock( dsl, :local_repo => 'tmp/test-repo', :lockfile => 'tmp/Jarfile.lock' )
|
39
|
+
lockfile = LockJar.read('tmp/Jarfile.lock')
|
40
|
+
lockfile.should eql( {
|
41
|
+
"excludes"=>["commons-logging", "logkit"],
|
42
|
+
"scopes"=>{
|
43
|
+
"compile"=>{
|
44
|
+
"dependencies"=>["opensymphony:oscache:jar:2.4.1"],
|
45
|
+
"resolved_dependencies"=>["opensymphony:oscache:jar:2.4.1", "log4j:log4j:jar:1.2.12", "avalon-framework:avalon-framework:jar:4.1.3", "javax.jms:jms:jar:1.1", "javax.servlet:servlet-api:jar:2.3"]}}} )
|
46
|
+
|
47
|
+
end
|
31
48
|
end
|
32
49
|
|
33
50
|
context "list" do
|
metadata
CHANGED
@@ -1,99 +1,91 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: lock_jar
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 1
|
10
|
-
version: 0.2.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Michael Guymon
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
requirement:
|
12
|
+
date: 2012-05-10 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: naether
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
22
17
|
none: false
|
23
|
-
requirements:
|
18
|
+
requirements:
|
24
19
|
- - ~>
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 3
|
27
|
-
segments:
|
28
|
-
- 0
|
29
|
-
- 7
|
30
|
-
- 0
|
20
|
+
- !ruby/object:Gem::Version
|
31
21
|
version: 0.7.0
|
32
|
-
version_requirements: *id001
|
33
|
-
name: naether
|
34
|
-
prerelease: false
|
35
22
|
type: :runtime
|
36
|
-
|
37
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
25
|
none: false
|
39
|
-
requirements:
|
26
|
+
requirements:
|
40
27
|
- - ~>
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
|
44
|
-
- 2
|
45
|
-
- 9
|
46
|
-
- 0
|
47
|
-
version: 2.9.0
|
48
|
-
version_requirements: *id002
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.7.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
49
31
|
name: rspec
|
50
|
-
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.9.0
|
51
38
|
type: :development
|
52
|
-
|
53
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
41
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
|
60
|
-
- 1
|
61
|
-
- 0
|
62
|
-
- 0
|
63
|
-
version: 1.0.0
|
64
|
-
version_requirements: *id003
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.9.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
65
47
|
name: bundler
|
66
|
-
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>'
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.0.0
|
67
54
|
type: :development
|
68
|
-
|
69
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>'
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: jeweler
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
70
65
|
none: false
|
71
|
-
requirements:
|
66
|
+
requirements:
|
72
67
|
- - ~>
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
hash: 7
|
75
|
-
segments:
|
76
|
-
- 1
|
77
|
-
- 6
|
78
|
-
- 4
|
68
|
+
- !ruby/object:Gem::Version
|
79
69
|
version: 1.6.4
|
80
|
-
version_requirements: *id004
|
81
|
-
name: jeweler
|
82
|
-
prerelease: false
|
83
70
|
type: :development
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.6.4
|
78
|
+
description: ! "Manage Jar files for Ruby. In the spirit of Bundler, a Jarfile\n is
|
79
|
+
used to generate a Jarfile.lock that contains all the resolved jar dependencies
|
80
|
+
for scopes runtime, compile, and test.\n The Jarfile.lock can be used to populate
|
81
|
+
the classpath"
|
88
82
|
email: michael.guymon@gmail.com
|
89
83
|
executables: []
|
90
|
-
|
91
84
|
extensions: []
|
92
|
-
|
93
|
-
extra_rdoc_files:
|
85
|
+
extra_rdoc_files:
|
94
86
|
- LICENSE
|
95
87
|
- README.rdoc
|
96
|
-
files:
|
88
|
+
files:
|
97
89
|
- Gemfile
|
98
90
|
- LICENSE
|
99
91
|
- README.rdoc
|
@@ -119,37 +111,31 @@ files:
|
|
119
111
|
- spec/pom.xml
|
120
112
|
- spec/spec_helper.rb
|
121
113
|
homepage: http://github.com/mguymon/lock_jar
|
122
|
-
licenses:
|
114
|
+
licenses:
|
123
115
|
- Apache
|
124
116
|
post_install_message:
|
125
117
|
rdoc_options: []
|
126
|
-
|
127
|
-
require_paths:
|
118
|
+
require_paths:
|
128
119
|
- lib
|
129
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
130
121
|
none: false
|
131
|
-
requirements:
|
132
|
-
- -
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
|
135
|
-
segments:
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
segments:
|
136
127
|
- 0
|
137
|
-
|
138
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
hash: 1069555085123622793
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
130
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
144
|
-
segments:
|
145
|
-
- 0
|
146
|
-
version: "0"
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
147
135
|
requirements: []
|
148
|
-
|
149
136
|
rubyforge_project:
|
150
137
|
rubygems_version: 1.8.24
|
151
138
|
signing_key:
|
152
139
|
specification_version: 3
|
153
140
|
summary: Manage Jar files for Ruby
|
154
141
|
test_files: []
|
155
|
-
|