warbler 1.0.2 → 1.0.3
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/History.txt +7 -0
- data/Rakefile +1 -1
- data/ext/WarblerWar.java +3 -1
- data/lib/warbler/config.rb +20 -7
- data/lib/warbler/runtime.rb +4 -3
- data/lib/warbler/version.rb +1 -1
- data/lib/warbler/war.rb +8 -1
- data/lib/warbler_war.jar +0 -0
- data/spec/warbler/task_spec.rb +34 -1
- data/spec/warbler/war_spec.rb +10 -0
- metadata +142 -142
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 1.0.3
|
2
|
+
|
3
|
+
* Tracking recent Bundler changes - handle locked Gemfiles differently
|
4
|
+
than unlocked ones
|
5
|
+
* Handle file-based symlinks, and warn about inoperational directory
|
6
|
+
symlinks under non-JRuby versions of Ruby.
|
7
|
+
|
1
8
|
== 1.0.2
|
2
9
|
|
3
10
|
* Add 'warble pluginize' task back. This task now just creates a
|
data/Rakefile
CHANGED
@@ -18,7 +18,7 @@ require 'spec/rake/verify_rcov'
|
|
18
18
|
MANIFEST = FileList["History.txt", "Manifest.txt", "README.txt", "Gemfile",
|
19
19
|
"LICENSE.txt", "Rakefile", "*.erb", "*.rb", "bin/*",
|
20
20
|
"ext/**/*", "lib/**/*", "spec/**/*.rb", "spec/sample/**/*.*"
|
21
|
-
].to_a.reject{|f| f=~%r{spec/sample/(MANIFEST|web.xml)}}.sort.uniq
|
21
|
+
].to_a.reject{|f| f=~%r{spec/sample/(MANIFEST|link|web.xml)}}.sort.uniq
|
22
22
|
|
23
23
|
begin
|
24
24
|
File.open("Manifest.txt", "w") {|f| MANIFEST.each {|n| f << "#{n}\n"} }
|
data/ext/WarblerWar.java
CHANGED
data/lib/warbler/config.rb
CHANGED
@@ -201,13 +201,26 @@ module Warbler
|
|
201
201
|
if @bundler && File.exist?("Gemfile")
|
202
202
|
@gems.clear
|
203
203
|
@gem_dependencies = false # Bundler takes care of these
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
204
|
+
begin
|
205
|
+
require 'bundler'
|
206
|
+
env = Bundler::Runtime.new(Bundler.root, Bundler.definition)
|
207
|
+
if bundler_env_file = Bundler.respond_to?(:env_file)
|
208
|
+
class << Bundler
|
209
|
+
alias orig_env_file env_file
|
210
|
+
def env_file; root.join(::Warbler::Runtime::WAR_ENV); end
|
211
|
+
end
|
212
|
+
end
|
213
|
+
env.extend Warbler::Runtime
|
214
|
+
env.gem_path = @gem_path
|
215
|
+
env.write_war_environment
|
216
|
+
env.war_specs.each {|spec| @gems << spec }
|
217
|
+
ensure
|
218
|
+
if bundler_env_file
|
219
|
+
class << Bundler
|
220
|
+
alias env_file orig_env_file
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
211
224
|
else
|
212
225
|
@bundler = false
|
213
226
|
end
|
data/lib/warbler/runtime.rb
CHANGED
@@ -24,9 +24,10 @@ module Warbler
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
# deprecated; compatibility with Bundler <= 0.9.14
|
28
|
+
def rb_lock_file #:nocov:
|
29
|
+
root.join(WAR_ENV) #:nocov:
|
30
|
+
end #:nocov:
|
30
31
|
|
31
32
|
def specs_for_lock_file
|
32
33
|
super.map {|s| Spec.new(s, gem_path)}
|
data/lib/warbler/version.rb
CHANGED
data/lib/warbler/war.rb
CHANGED
@@ -137,7 +137,10 @@ module Warbler
|
|
137
137
|
def add_bundler_files(config)
|
138
138
|
if config.bundler
|
139
139
|
@files[apply_pathmaps(config, 'Gemfile', :application)] = 'Gemfile'
|
140
|
-
|
140
|
+
if File.exist?('Gemfile.lock')
|
141
|
+
@files[apply_pathmaps(config, 'Gemfile.lock', :application)] = 'Gemfile.lock'
|
142
|
+
@files[apply_pathmaps(config, '.bundle/environment.rb', :application)] = '.bundle/war-environment.rb'
|
143
|
+
end
|
141
144
|
end
|
142
145
|
end
|
143
146
|
|
@@ -175,7 +178,11 @@ module Warbler
|
|
175
178
|
if src.respond_to?(:read)
|
176
179
|
zipfile.get_output_stream(entry) {|f| f << src.read }
|
177
180
|
elsif src.nil? || File.directory?(src)
|
181
|
+
warn "directory symlinks are not followed unless using JRuby; #{entry} contents not in archive" \
|
182
|
+
if File.symlink?(entry) && !defined?(JRUBY_VERSION)
|
178
183
|
zipfile.mkdir(entry)
|
184
|
+
elsif File.symlink?(src)
|
185
|
+
zipfile.get_output_stream(entry) {|f| f << File.read(src) }
|
179
186
|
else
|
180
187
|
zipfile.add(entry, src)
|
181
188
|
end
|
data/lib/warbler_war.jar
CHANGED
Binary file
|
data/spec/warbler/task_spec.rb
CHANGED
@@ -28,7 +28,8 @@ describe Warbler::Task do
|
|
28
28
|
Rake::Task["warble:clean"].invoke
|
29
29
|
rm_rf "log"
|
30
30
|
rm_f FileList["config.ru", "*web.xml", "config/web.xml*", "config/warble.rb",
|
31
|
-
"
|
31
|
+
"config/special.txt", "config/link.txt", "tmp/gems.jar",
|
32
|
+
"file.txt", 'Gemfile', 'lib/rakelib']
|
32
33
|
Dir.chdir(@pwd)
|
33
34
|
end
|
34
35
|
|
@@ -64,6 +65,38 @@ describe Warbler::Task do
|
|
64
65
|
it "should be able to define all tasks successfully" do
|
65
66
|
Warbler::Task.new "warble", @config
|
66
67
|
end
|
68
|
+
|
69
|
+
it "should process symlinks by storing a file in the archive that has the same contents as the source" do
|
70
|
+
File.open("config/special.txt", "wb") {|f| f << "special"}
|
71
|
+
Dir.chdir("config") { ln_s "special.txt", "link.txt" }
|
72
|
+
silence { Rake::Task["warble"].invoke }
|
73
|
+
Zip::ZipFile.open("#{@config.war_name}.war") do |zf|
|
74
|
+
special = zf.get_input_stream('WEB-INF/config/special.txt') {|io| io.read }
|
75
|
+
link = zf.get_input_stream('WEB-INF/config/link.txt') {|io| io.read }
|
76
|
+
link.should == special
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should process directory symlinks by copying the whole subdirectory" do
|
81
|
+
Dir.chdir("lib") { ln_s "tasks", "rakelib" }
|
82
|
+
silence { Rake::Task["warble"].invoke }
|
83
|
+
Zip::ZipFile.open("#{@config.war_name}.war") do |zf|
|
84
|
+
zf.find_entry("WEB-INF/lib/tasks/utils.rake").should_not be_nil
|
85
|
+
zf.find_entry("WEB-INF/lib/rakelib/").should_not be_nil
|
86
|
+
zf.find_entry("WEB-INF/lib/rakelib/utils.rake").should_not be_nil if defined?(JRUBY_VERSION)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should use a Bundler Gemfile to include gems" do
|
91
|
+
File.open("Gemfile", "w") {|f| f << "gem 'rspec'"}
|
92
|
+
@config.bundler = true
|
93
|
+
@config.send(:detect_bundler_gems)
|
94
|
+
silence { Rake::Task["warble"].invoke }
|
95
|
+
Zip::ZipFile.open("#{@config.war_name}.war") do |zf|
|
96
|
+
rspec_version = @config.gems.keys.detect {|k| k.name == 'rspec'}.version
|
97
|
+
zf.find_entry("WEB-INF/gems/specifications/rspec-#{rspec_version}.gemspec").should_not be_nil
|
98
|
+
end
|
99
|
+
end
|
67
100
|
end
|
68
101
|
|
69
102
|
describe "Debug targets" do
|
data/spec/warbler/war_spec.rb
CHANGED
@@ -382,6 +382,16 @@ describe Warbler::War do
|
|
382
382
|
it "should write a Bundler environment file into the war" do
|
383
383
|
File.open("Gemfile", "w") {|f| f << "gem 'rspec'"}
|
384
384
|
@war.apply(Warbler::Config.new)
|
385
|
+
file_list(%r{WEB-INF/Gemfile}).should_not be_empty
|
386
|
+
file_list(%r{WEB-INF/Gemfile.lock}).should be_empty
|
387
|
+
file_list(%r{WEB-INF/\.bundle/environment\.rb}).should be_empty
|
388
|
+
end
|
389
|
+
|
390
|
+
it "should only include Bundler lockfiles if Gemfile.lock exists" do
|
391
|
+
File.open("Gemfile", "w") {|f| f << "gem 'rspec'"}
|
392
|
+
`ruby -S bundle lock`
|
393
|
+
@war.apply(Warbler::Config.new)
|
394
|
+
file_list(%r{WEB-INF/Gemfile.lock}).should_not be_empty
|
385
395
|
file_list(%r{WEB-INF/\.bundle/environment\.rb}).should_not be_empty
|
386
396
|
end
|
387
397
|
|
metadata
CHANGED
@@ -3,90 +3,90 @@ name: warbler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
version: 1.0.
|
6
|
+
- 1
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
version: 1.0.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
|
-
- Nick Sieger
|
12
|
+
- Nick Sieger
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-11 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rake
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
segments:
|
27
|
+
- 0
|
28
|
+
- 8
|
29
|
+
- 7
|
30
|
+
version: 0.8.7
|
31
|
+
prerelease: false
|
32
|
+
type: :runtime
|
33
|
+
requirement: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: jruby-jars
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 1
|
42
|
+
- 4
|
43
|
+
- 0
|
44
|
+
version: 1.4.0
|
45
|
+
prerelease: false
|
46
|
+
type: :runtime
|
47
|
+
requirement: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: jruby-rack
|
50
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
- 9
|
57
|
+
- 7
|
58
|
+
version: 0.9.7
|
59
|
+
prerelease: false
|
60
|
+
type: :runtime
|
61
|
+
requirement: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rubyzip
|
64
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
- 9
|
71
|
+
- 4
|
72
|
+
version: 0.9.4
|
73
|
+
prerelease: false
|
74
|
+
type: :runtime
|
75
|
+
requirement: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: rubyforge
|
78
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
segments:
|
83
|
+
- 2
|
84
|
+
- 0
|
85
|
+
- 4
|
86
|
+
version: 2.0.4
|
87
|
+
prerelease: false
|
88
|
+
type: :development
|
89
|
+
requirement: *id005
|
90
90
|
description: |-
|
91
91
|
Warbler is a gem to make a .war file out of a Rails, Merb, or Rack-based
|
92
92
|
application. The intent is to provide a minimal, flexible, ruby-like way to
|
@@ -94,87 +94,87 @@ description: |-
|
|
94
94
|
server.
|
95
95
|
email: nick@nicksieger.com
|
96
96
|
executables:
|
97
|
-
- warble
|
97
|
+
- warble
|
98
98
|
extensions: []
|
99
99
|
|
100
100
|
extra_rdoc_files:
|
101
|
-
- History.txt
|
102
|
-
- LICENSE.txt
|
103
|
-
- Manifest.txt
|
104
|
-
- README.txt
|
101
|
+
- History.txt
|
102
|
+
- LICENSE.txt
|
103
|
+
- Manifest.txt
|
104
|
+
- README.txt
|
105
105
|
files:
|
106
|
-
- Gemfile
|
107
|
-
- History.txt
|
108
|
-
- LICENSE.txt
|
109
|
-
- Manifest.txt
|
110
|
-
- README.txt
|
111
|
-
- Rakefile
|
112
|
-
- bin/warble
|
113
|
-
- ext/WarblerWar.java
|
114
|
-
- ext/WarblerWarService.java
|
115
|
-
- lib/warbler.rb
|
116
|
-
- lib/warbler/application.rb
|
117
|
-
- lib/warbler/config.rb
|
118
|
-
- lib/warbler/gems.rb
|
119
|
-
- lib/warbler/runtime.rb
|
120
|
-
- lib/warbler/task.rb
|
121
|
-
- lib/warbler/version.rb
|
122
|
-
- lib/warbler/war.rb
|
123
|
-
- lib/warbler_war.jar
|
124
|
-
- spec/sample/app/controllers/application.rb
|
125
|
-
- spec/sample/app/helpers/application_helper.rb
|
126
|
-
- spec/sample/config/boot.rb
|
127
|
-
- spec/sample/config/database.yml
|
128
|
-
- spec/sample/config/environment.rb
|
129
|
-
- spec/sample/config/environments/development.rb
|
130
|
-
- spec/sample/config/environments/production.rb
|
131
|
-
- spec/sample/config/environments/test.rb
|
132
|
-
- spec/sample/config/initializers/inflections.rb
|
133
|
-
- spec/sample/config/initializers/mime_types.rb
|
134
|
-
- spec/sample/config/initializers/new_rails_defaults.rb
|
135
|
-
- spec/sample/config/routes.rb
|
136
|
-
- spec/sample/lib/tasks/utils.rake
|
137
|
-
- spec/sample/public/404.html
|
138
|
-
- spec/sample/public/422.html
|
139
|
-
- spec/sample/public/500.html
|
140
|
-
- spec/sample/public/favicon.ico
|
141
|
-
- spec/sample/public/index.html
|
142
|
-
- spec/sample/public/robots.txt
|
143
|
-
- spec/spec_helper.rb
|
144
|
-
- spec/warbler/application_spec.rb
|
145
|
-
- spec/warbler/config_spec.rb
|
146
|
-
- spec/warbler/gems_spec.rb
|
147
|
-
- spec/warbler/task_spec.rb
|
148
|
-
- spec/warbler/war_spec.rb
|
149
|
-
- warble.rb
|
150
|
-
- web.xml.erb
|
106
|
+
- Gemfile
|
107
|
+
- History.txt
|
108
|
+
- LICENSE.txt
|
109
|
+
- Manifest.txt
|
110
|
+
- README.txt
|
111
|
+
- Rakefile
|
112
|
+
- bin/warble
|
113
|
+
- ext/WarblerWar.java
|
114
|
+
- ext/WarblerWarService.java
|
115
|
+
- lib/warbler.rb
|
116
|
+
- lib/warbler/application.rb
|
117
|
+
- lib/warbler/config.rb
|
118
|
+
- lib/warbler/gems.rb
|
119
|
+
- lib/warbler/runtime.rb
|
120
|
+
- lib/warbler/task.rb
|
121
|
+
- lib/warbler/version.rb
|
122
|
+
- lib/warbler/war.rb
|
123
|
+
- lib/warbler_war.jar
|
124
|
+
- spec/sample/app/controllers/application.rb
|
125
|
+
- spec/sample/app/helpers/application_helper.rb
|
126
|
+
- spec/sample/config/boot.rb
|
127
|
+
- spec/sample/config/database.yml
|
128
|
+
- spec/sample/config/environment.rb
|
129
|
+
- spec/sample/config/environments/development.rb
|
130
|
+
- spec/sample/config/environments/production.rb
|
131
|
+
- spec/sample/config/environments/test.rb
|
132
|
+
- spec/sample/config/initializers/inflections.rb
|
133
|
+
- spec/sample/config/initializers/mime_types.rb
|
134
|
+
- spec/sample/config/initializers/new_rails_defaults.rb
|
135
|
+
- spec/sample/config/routes.rb
|
136
|
+
- spec/sample/lib/tasks/utils.rake
|
137
|
+
- spec/sample/public/404.html
|
138
|
+
- spec/sample/public/422.html
|
139
|
+
- spec/sample/public/500.html
|
140
|
+
- spec/sample/public/favicon.ico
|
141
|
+
- spec/sample/public/index.html
|
142
|
+
- spec/sample/public/robots.txt
|
143
|
+
- spec/spec_helper.rb
|
144
|
+
- spec/warbler/application_spec.rb
|
145
|
+
- spec/warbler/config_spec.rb
|
146
|
+
- spec/warbler/gems_spec.rb
|
147
|
+
- spec/warbler/task_spec.rb
|
148
|
+
- spec/warbler/war_spec.rb
|
149
|
+
- warble.rb
|
150
|
+
- web.xml.erb
|
151
151
|
has_rdoc: true
|
152
152
|
homepage: http://caldersphere.rubyforge.org/warbler
|
153
153
|
licenses: []
|
154
154
|
|
155
155
|
post_install_message:
|
156
156
|
rdoc_options:
|
157
|
-
- --main
|
158
|
-
- README.txt
|
159
|
-
- -SHN
|
160
|
-
- -f
|
161
|
-
- darkfish
|
157
|
+
- --main
|
158
|
+
- README.txt
|
159
|
+
- -SHN
|
160
|
+
- -f
|
161
|
+
- darkfish
|
162
162
|
require_paths:
|
163
|
-
- lib
|
163
|
+
- lib
|
164
164
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
165
|
requirements:
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
segments:
|
169
|
+
- 0
|
170
|
+
version: "0"
|
171
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
172
|
requirements:
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
version: "0"
|
178
178
|
requirements: []
|
179
179
|
|
180
180
|
rubyforge_project: caldersphere
|