lucidimagination-warbler 1.3.2.dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/Gemfile +16 -0
  2. data/History.txt +217 -0
  3. data/LICENSE.txt +26 -0
  4. data/Manifest.txt +92 -0
  5. data/README.txt +255 -0
  6. data/Rakefile +103 -0
  7. data/bin/warble +11 -0
  8. data/ext/JarMain.java +148 -0
  9. data/ext/WarMain.java +112 -0
  10. data/ext/WarblerJar.java +182 -0
  11. data/ext/WarblerJarService.java +18 -0
  12. data/lib/warbler.rb +33 -0
  13. data/lib/warbler/application.rb +86 -0
  14. data/lib/warbler/config.rb +223 -0
  15. data/lib/warbler/gems.rb +37 -0
  16. data/lib/warbler/jar.rb +253 -0
  17. data/lib/warbler/task.rb +183 -0
  18. data/lib/warbler/templates/bundler.erb +3 -0
  19. data/lib/warbler/templates/config.erb +1 -0
  20. data/lib/warbler/templates/jar.erb +5 -0
  21. data/lib/warbler/templates/rack.erb +1 -0
  22. data/lib/warbler/templates/rails.erb +1 -0
  23. data/lib/warbler/templates/war.erb +1 -0
  24. data/lib/warbler/traits.rb +107 -0
  25. data/lib/warbler/traits/bundler.rb +104 -0
  26. data/lib/warbler/traits/gemspec.rb +59 -0
  27. data/lib/warbler/traits/jar.rb +56 -0
  28. data/lib/warbler/traits/merb.rb +35 -0
  29. data/lib/warbler/traits/nogemspec.rb +42 -0
  30. data/lib/warbler/traits/rack.rb +33 -0
  31. data/lib/warbler/traits/rails.rb +62 -0
  32. data/lib/warbler/traits/war.rb +197 -0
  33. data/lib/warbler/version.rb +10 -0
  34. data/lib/warbler/war.rb +8 -0
  35. data/lib/warbler_jar.jar +0 -0
  36. data/spec/drb_helper.rb +41 -0
  37. data/spec/sample_bundler/Gemfile.lock +10 -0
  38. data/spec/sample_bundler/config.ru +0 -0
  39. data/spec/sample_jar/History.txt +6 -0
  40. data/spec/sample_jar/Manifest.txt +8 -0
  41. data/spec/sample_jar/README.txt +30 -0
  42. data/spec/sample_jar/lib/sample_jar.rb +6 -0
  43. data/spec/sample_jar/sample_jar.gemspec +40 -0
  44. data/spec/sample_jar/test/test_sample_jar.rb +8 -0
  45. data/spec/sample_war/app/controllers/application.rb +15 -0
  46. data/spec/sample_war/app/helpers/application_helper.rb +3 -0
  47. data/spec/sample_war/config/boot.rb +109 -0
  48. data/spec/sample_war/config/database.yml +19 -0
  49. data/spec/sample_war/config/environment.rb +67 -0
  50. data/spec/sample_war/config/environments/development.rb +17 -0
  51. data/spec/sample_war/config/environments/production.rb +25 -0
  52. data/spec/sample_war/config/environments/test.rb +22 -0
  53. data/spec/sample_war/config/initializers/inflections.rb +10 -0
  54. data/spec/sample_war/config/initializers/mime_types.rb +5 -0
  55. data/spec/sample_war/config/initializers/new_rails_defaults.rb +15 -0
  56. data/spec/sample_war/config/routes.rb +41 -0
  57. data/spec/sample_war/lib/tasks/utils.rake +0 -0
  58. data/spec/sample_war/public/404.html +30 -0
  59. data/spec/sample_war/public/422.html +30 -0
  60. data/spec/sample_war/public/500.html +30 -0
  61. data/spec/sample_war/public/favicon.ico +0 -0
  62. data/spec/sample_war/public/index.html +274 -0
  63. data/spec/sample_war/public/robots.txt +5 -0
  64. data/spec/spec_helper.rb +112 -0
  65. data/spec/warbler/application_spec.rb +95 -0
  66. data/spec/warbler/bundler_spec.rb +136 -0
  67. data/spec/warbler/config_spec.rb +130 -0
  68. data/spec/warbler/gems_spec.rb +40 -0
  69. data/spec/warbler/jar_spec.rb +718 -0
  70. data/spec/warbler/task_spec.rb +170 -0
  71. data/spec/warbler/traits_spec.rb +17 -0
  72. data/spec/warbler/war_spec.rb +14 -0
  73. data/warble.rb +142 -0
  74. data/web.xml.erb +32 -0
  75. metadata +198 -0
@@ -0,0 +1,170 @@
1
+ #--
2
+ # Copyright (c) 2010-2011 Engine Yard, Inc.
3
+ # Copyright (c) 2007-2009 Sun Microsystems, Inc.
4
+ # This source code is available under the MIT license.
5
+ # See the file LICENSE.txt for details.
6
+ #++
7
+
8
+ require File.expand_path('../../spec_helper', __FILE__)
9
+
10
+ describe Warbler::Task do
11
+ run_in_directory "spec/sample_war"
12
+ use_fresh_environment
13
+
14
+ let :config do
15
+ Warbler::Config.new do |config|
16
+ config.jar_name = "warbler"
17
+ config.gems = ["rake"]
18
+ config.webxml.jruby.max.runtimes = 5
19
+ end
20
+ end
21
+
22
+ let(:warble_task) { Warbler::Task.new "warble", config }
23
+
24
+ def run_task(t)
25
+ warble_task
26
+ Rake::Task[t].invoke
27
+ end
28
+
29
+ before :each do
30
+ @rake = Rake::Application.new
31
+ Rake.application = @rake
32
+ verbose(false)
33
+ mkdir_p "log"
34
+ touch "log/test.log"
35
+ end
36
+
37
+ after :each do
38
+ run_task "warble:clean"
39
+ rm_rf "log"
40
+ rm_f FileList["config.ru", "*web.xml", "config/web.xml*", "config/warble.rb",
41
+ "config/special.txt", "config/link.txt", "tmp/gems.jar",
42
+ "file.txt", 'Gemfile', 'lib/rakelib', '**/*.class']
43
+ end
44
+
45
+ it "should define a clean task for removing the war file" do
46
+ war_file = "#{config.jar_name}.war"
47
+ touch war_file
48
+
49
+ run_task "warble:clean"
50
+ File.exist?(war_file).should == false
51
+ end
52
+
53
+ it "should define a make_gemjar task for storing gems in a jar file" do
54
+ silence { run_task "warble:gemjar"; run_task "warble:files" }
55
+ File.exist?("tmp/gems.jar").should == true
56
+ warble_task.jar.files.keys.should_not include(%r{WEB-INF\/gems})
57
+ warble_task.jar.files.keys.should include("WEB-INF/lib/gems.jar")
58
+ end
59
+
60
+ it "should define a war task for bundling up everything" do
61
+ files_ran = false; task "warble:files" do; files_ran = true; end
62
+ jar_ran = false; task "warble:jar" do; jar_ran = true; end
63
+ silence { run_task "warble" }
64
+ files_ran.should == true
65
+ jar_ran.should == true
66
+ end
67
+
68
+ it "should define a jar task for creating the .war" do
69
+ touch "file.txt"
70
+ warble_task.jar.files["file.txt"] = "file.txt"
71
+ silence { run_task "warble:jar" }
72
+ File.exist?("#{config.jar_name}.war").should == true
73
+ end
74
+
75
+ it "should invoke feature tasks configured in config.features" do
76
+ config.features << "gemjar"
77
+ silence { run_task "warble" }
78
+ warble_task.jar.files.keys.should include("WEB-INF/lib/gems.jar")
79
+ end
80
+
81
+ it "should warn and skip unknown features configured in config.features" do
82
+ config.features << "bogus"
83
+ capture { run_task "warble" }.should =~ /unknown feature `bogus'/
84
+ end
85
+
86
+ it "should define an executable task for embedding a server in the war file" do
87
+ silence { run_task "warble:executable"; run_task "warble:files" }
88
+ warble_task.jar.files.keys.should include('WEB-INF/winstone.jar')
89
+ end
90
+
91
+ it "should be able to define all tasks successfully" do
92
+ Warbler::Task.new "warble", config
93
+ end
94
+
95
+ it "should compile any ruby files specified" do
96
+ config.features << "compiled"
97
+ silence { run_task "warble" }
98
+
99
+ java_class_magic_number = [0xCA,0xFE,0xBA,0xBE].map { |magic_char| magic_char.chr }.join
100
+
101
+ Zip::ZipFile.open("#{config.jar_name}.war") do |zf|
102
+ java_class_header = zf.get_input_stream('WEB-INF/app/helpers/application_helper.class') {|io| io.read }[0..3]
103
+ ruby_class_definition = zf.get_input_stream('WEB-INF/app/helpers/application_helper.rb') {|io| io.read }
104
+
105
+ java_class_header.should == java_class_magic_number
106
+ ruby_class_definition.should == %{require __FILE__.sub(/.rb$/, '.class')}
107
+ end
108
+ end
109
+
110
+ it "should delete .class files after finishing the jar" do
111
+ config.features << "compiled"
112
+ silence { run_task "warble" }
113
+ File.exist?('app/helpers/application_helper.class').should be_false
114
+ end
115
+
116
+ context "where symlinks are available" do
117
+ begin
118
+ ln_s "README.txt", "r.txt.symlink", :verbose => false
119
+ it "should process symlinks by storing a file in the archive that has the same contents as the source" do
120
+ File.open("config/special.txt", "wb") {|f| f << "special"}
121
+ Dir.chdir("config") { ln_s "special.txt", "link.txt" }
122
+ silence { run_task "warble" }
123
+ Zip::ZipFile.open("#{config.jar_name}.war") do |zf|
124
+ special = zf.get_input_stream('WEB-INF/config/special.txt') {|io| io.read }
125
+ link = zf.get_input_stream('WEB-INF/config/link.txt') {|io| io.read }
126
+ link.should == special
127
+ end
128
+ end
129
+
130
+ it "should process directory symlinks by copying the whole subdirectory" do
131
+ Dir.chdir("lib") { ln_s "tasks", "rakelib" }
132
+ silence { run_task "warble" }
133
+ Zip::ZipFile.open("#{config.jar_name}.war") do |zf|
134
+ zf.find_entry("WEB-INF/lib/tasks/utils.rake").should_not be_nil
135
+ zf.find_entry("WEB-INF/lib/rakelib/").should_not be_nil
136
+ zf.find_entry("WEB-INF/lib/rakelib/utils.rake").should_not be_nil if defined?(JRUBY_VERSION)
137
+ end
138
+ end
139
+
140
+ rm_f "r.txt.symlink", :verbose => false
141
+ rescue NotImplementedError
142
+ end
143
+ end
144
+
145
+ it "should use a Bundler Gemfile to include gems" do
146
+ File.open("Gemfile", "w") {|f| f << "gem 'rspec'"}
147
+ silence { run_task "warble" }
148
+ Zip::ZipFile.open("#{config.jar_name}.war") do |zf|
149
+ rspec_version = config.gems.keys.detect {|k| k.name == 'rspec'}.version
150
+ zf.find_entry("WEB-INF/gems/specifications/rspec-#{rspec_version}.gemspec").should_not be_nil
151
+ end
152
+ end
153
+ end
154
+
155
+ describe "Debug targets" do
156
+ run_in_directory "spec/sample_war"
157
+
158
+ before(:each) do
159
+ @rake = Rake::Application.new
160
+ Rake.application = @rake
161
+ verbose(false)
162
+ silence { Warbler::Task.new :war, Object.new }
163
+ end
164
+
165
+ it "should print out lists of files" do
166
+ capture { Rake::Task["war:debug:includes"].invoke }.should =~ /include/
167
+ capture { Rake::Task["war:debug:excludes"].invoke }.should =~ /exclude/
168
+ capture { Rake::Task["war:debug"].invoke }.should =~ /Config/
169
+ end
170
+ end
@@ -0,0 +1,17 @@
1
+ #--
2
+ # Copyright (c) 2010-2011 Engine Yard, Inc.
3
+ # Copyright (c) 2007-2009 Sun Microsystems, Inc.
4
+ # This source code is available under the MIT license.
5
+ # See the file LICENSE.txt for details.
6
+ #++
7
+
8
+ require File.expand_path('../../spec_helper', __FILE__)
9
+
10
+ describe Warbler::Traits do
11
+ it "are ordered by fewer dependencies first" do
12
+ traits = [Warbler::Traits::War, Warbler::Traits::Bundler, Warbler::Traits::Rails]
13
+ result = traits.shuffle.sort
14
+ result.index(Warbler::Traits::War).should < result.index(Warbler::Traits::Bundler)
15
+ result.index(Warbler::Traits::War).should < result.index(Warbler::Traits::Rails)
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ #--
2
+ # Copyright (c) 2010-2011 Engine Yard, Inc.
3
+ # Copyright (c) 2007-2009 Sun Microsystems, Inc.
4
+ # This source code is available under the MIT license.
5
+ # See the file LICENSE.txt for details.
6
+ #++
7
+
8
+ require File.expand_path('../../spec_helper', __FILE__)
9
+
10
+ describe Warbler::War do
11
+ it "is deprecated, replace occurrences with Warbler::Jar" do
12
+ capture { Warbler::War.new }.should =~ /deprecated/
13
+ end
14
+ end
@@ -0,0 +1,142 @@
1
+ # Disable Rake-environment-task framework detection by uncommenting/setting to false
2
+ # Warbler.framework_detection = false
3
+
4
+ # Warbler web application assembly configuration file
5
+ Warbler::Config.new do |config|
6
+ # Features: additional options controlling how the jar is built.
7
+ # Currently the following features are supported:
8
+ # - gemjar: package the gem repository in a jar file in WEB-INF/lib
9
+ # - executable: embed a web server and make the war executable
10
+ # - compiled: compile .rb files to .class files
11
+ # config.features = %w(gemjar)
12
+
13
+ # Application directories to be included in the webapp.
14
+ config.dirs = %w(app config lib log vendor tmp)
15
+
16
+ # Additional files/directories to include, above those in config.dirs
17
+ # config.includes = FileList["db"]
18
+
19
+ # Additional files/directories to exclude
20
+ # config.excludes = FileList["lib/tasks/*"]
21
+
22
+ # Additional Java .jar files to include. Note that if .jar files are placed
23
+ # in lib (and not otherwise excluded) then they need not be mentioned here.
24
+ # JRuby and JRuby-Rack are pre-loaded in this list. Be sure to include your
25
+ # own versions if you directly set the value
26
+ # config.java_libs += FileList["lib/java/*.jar"]
27
+
28
+ # Loose Java classes and miscellaneous files to be included.
29
+ # config.java_classes = FileList["target/classes/**.*"]
30
+
31
+ # One or more pathmaps defining how the java classes should be copied into
32
+ # the archive. The example pathmap below accompanies the java_classes
33
+ # configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
34
+ # for details of how to specify a pathmap.
35
+ # config.pathmaps.java_classes << "%{target/classes/,}p"
36
+
37
+ # Bundler support is built-in. If Warbler finds a Gemfile in the
38
+ # project directory, it will be used to collect the gems to bundle
39
+ # in your application. If you wish to explicitly disable this
40
+ # functionality, uncomment here.
41
+ # config.bundler = false
42
+
43
+ # An array of Bundler groups to avoid including in the war file.
44
+ # Defaults to ["development", "test"].
45
+ # config.bundle_without = []
46
+
47
+ # Other gems to be included. If you don't use Bundler or a gemspec
48
+ # file, you need to tell Warbler which gems your application needs
49
+ # so that they can be packaged in the archive.
50
+ # For Rails applications, the Rails gems are included by default
51
+ # unless the vendor/rails directory is present.
52
+ # config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl"]
53
+ # config.gems << "tzinfo"
54
+
55
+ # Uncomment this if you don't want to package rails gem.
56
+ # config.gems -= ["rails"]
57
+
58
+ # The most recent versions of gems are used.
59
+ # You can specify versions of gems by using a hash assignment:
60
+ # config.gems["rails"] = "2.3.10"
61
+
62
+ # You can also use regexps or Gem::Dependency objects for flexibility or
63
+ # finer-grained control.
64
+ # config.gems << /^merb-/
65
+ # config.gems << Gem::Dependency.new("merb-core", "= 0.9.3")
66
+
67
+ # Include gem dependencies not mentioned specifically. Default is
68
+ # true, uncomment to turn off.
69
+ # config.gem_dependencies = false
70
+
71
+ # Array of regular expressions matching relative paths in gems to be
72
+ # excluded from the war. Defaults to empty, but you can set it like
73
+ # below, which excludes test files.
74
+ # config.gem_excludes = [/^(test|spec)\//]
75
+
76
+ # Pathmaps for controlling how application files are copied into the archive
77
+ # config.pathmaps.application = ["WEB-INF/%p"]
78
+
79
+ # Name of the archive (without the extension). Defaults to the basename
80
+ # of the project directory.
81
+ # config.jar_name = "mywar"
82
+
83
+ # Name of the MANIFEST.MF template for the war file. Defaults to a simple
84
+ # MANIFEST.MF that contains the version of Warbler used to create the war file.
85
+ # config.manifest_file = "config/MANIFEST.MF"
86
+
87
+ # When using the 'compiled' feature and specified, only these Ruby
88
+ # files will be compiled. Default is to compile all \.rb files in
89
+ # the application.
90
+ # config.compiled_ruby_files = FileList['app/**/*.rb']
91
+
92
+ # === War files only below here ===
93
+
94
+ # Path to the pre-bundled gem directory inside the war file. Default
95
+ # is 'WEB-INF/gems'. Specify path if gems are already bundled
96
+ # before running Warbler. This also sets 'gem.path' inside web.xml.
97
+ # config.gem_path = "WEB-INF/vendor/bundler_gems"
98
+
99
+ # Files for WEB-INF directory (next to web.xml). This contains
100
+ # web.xml by default. If there is an .erb-File it will be processed
101
+ # with webxml-config. You may want to exclude this file via
102
+ # config.excludes.
103
+ # config.webinf_files += FileList["jboss-web.xml"]
104
+
105
+ # Files to be included in the root of the webapp. Note that files in public
106
+ # will have the leading 'public/' part of the path stripped during staging.
107
+ # config.public_html = FileList["public/**/*", "doc/**/*"]
108
+
109
+ # Pathmaps for controlling how public HTML files are copied into the .war
110
+ # config.pathmaps.public_html = ["%{public/,}p"]
111
+
112
+ # Value of RAILS_ENV for the webapp -- default as shown below
113
+ # config.webxml.rails.env = ENV['RAILS_ENV'] || 'production'
114
+
115
+ # Application booter to use, one of :rack, :rails, or :merb (autodetected by default)
116
+ # config.webxml.booter = :rails
117
+
118
+ # Set JRuby to run in 1.9 mode.
119
+ # config.webxml.jruby.compat.version = "1.9"
120
+
121
+ # When using the :rack booter, "Rackup" script to use.
122
+ # - For 'rackup.path', the value points to the location of the rackup
123
+ # script in the web archive file. You need to make sure this file
124
+ # gets included in the war, possibly by adding it to config.includes
125
+ # or config.webinf_files above.
126
+ # - For 'rackup', the rackup script you provide as an inline string
127
+ # is simply embedded in web.xml.
128
+ # The script is evaluated in a Rack::Builder to load the application.
129
+ # Examples:
130
+ # config.webxml.rackup.path = 'WEB-INF/hello.ru'
131
+ # config.webxml.rackup = %{require './lib/demo'; run Rack::Adapter::Camping.new(Demo)}
132
+ # config.webxml.rackup = require 'cgi' && CGI::escapeHTML(File.read("config.ru"))
133
+
134
+ # Control the pool of Rails runtimes. Leaving unspecified means
135
+ # the pool will grow as needed to service requests. It is recommended
136
+ # that you fix these values when running a production server!
137
+ # config.webxml.jruby.min.runtimes = 2
138
+ # config.webxml.jruby.max.runtimes = 4
139
+
140
+ # JNDI data source name
141
+ # config.webxml.jndi = 'jdbc/rails'
142
+ end
@@ -0,0 +1,32 @@
1
+ <!DOCTYPE web-app PUBLIC
2
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
3
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
4
+ <web-app>
5
+ <% webxml.context_params.each do |k,v| %>
6
+ <context-param>
7
+ <param-name><%= k %></param-name>
8
+ <param-value><%= v %></param-value>
9
+ </context-param>
10
+ <% end %>
11
+
12
+ <filter>
13
+ <filter-name>RackFilter</filter-name>
14
+ <filter-class>org.jruby.rack.RackFilter</filter-class>
15
+ </filter>
16
+ <filter-mapping>
17
+ <filter-name>RackFilter</filter-name>
18
+ <url-pattern>/*</url-pattern>
19
+ </filter-mapping>
20
+
21
+ <listener>
22
+ <listener-class><%= webxml.servlet_context_listener %></listener-class>
23
+ </listener>
24
+
25
+ <% if webxml.jndi then [webxml.jndi].flatten.each do |jndi| %>
26
+ <resource-ref>
27
+ <res-ref-name><%= jndi %></res-ref-name>
28
+ <res-type>javax.sql.DataSource</res-type>
29
+ <res-auth>Container</res-auth>
30
+ </resource-ref>
31
+ <% end; end %>
32
+ </web-app>
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lucidimagination-warbler
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.2.dev
5
+ platform: ruby
6
+ authors:
7
+ - Nick Sieger
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2011-05-24 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: jruby-jars
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.4.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: jruby-rack
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: rubyzip
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.4
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubyforge
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 2.0.4
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: hoe
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 2.9.1
74
+ version:
75
+ description: |-
76
+ Warbler is a gem to make a Java jar or war file out of any Ruby,
77
+ Rails, Merb, or Rack application. Warbler provides a minimal,
78
+ flexible, Ruby-like way to bundle up all of your application files for
79
+ deployment to a Java environment.
80
+ email: nick@nicksieger.com
81
+ executables:
82
+ - warble
83
+ extensions: []
84
+
85
+ extra_rdoc_files:
86
+ - History.txt
87
+ - LICENSE.txt
88
+ - Manifest.txt
89
+ - README.txt
90
+ files:
91
+ - Gemfile
92
+ - History.txt
93
+ - LICENSE.txt
94
+ - Manifest.txt
95
+ - README.txt
96
+ - Rakefile
97
+ - bin/warble
98
+ - ext/JarMain.java
99
+ - ext/WarMain.java
100
+ - ext/WarblerJar.java
101
+ - ext/WarblerJarService.java
102
+ - lib/warbler.rb
103
+ - lib/warbler/application.rb
104
+ - lib/warbler/config.rb
105
+ - lib/warbler/gems.rb
106
+ - lib/warbler/jar.rb
107
+ - lib/warbler/task.rb
108
+ - lib/warbler/templates/bundler.erb
109
+ - lib/warbler/templates/config.erb
110
+ - lib/warbler/templates/jar.erb
111
+ - lib/warbler/templates/rack.erb
112
+ - lib/warbler/templates/rails.erb
113
+ - lib/warbler/templates/war.erb
114
+ - lib/warbler/traits.rb
115
+ - lib/warbler/traits/bundler.rb
116
+ - lib/warbler/traits/gemspec.rb
117
+ - lib/warbler/traits/jar.rb
118
+ - lib/warbler/traits/merb.rb
119
+ - lib/warbler/traits/nogemspec.rb
120
+ - lib/warbler/traits/rack.rb
121
+ - lib/warbler/traits/rails.rb
122
+ - lib/warbler/traits/war.rb
123
+ - lib/warbler/version.rb
124
+ - lib/warbler/war.rb
125
+ - lib/warbler_jar.jar
126
+ - spec/drb_helper.rb
127
+ - spec/sample_bundler/Gemfile.lock
128
+ - spec/sample_bundler/config.ru
129
+ - spec/sample_jar/History.txt
130
+ - spec/sample_jar/Manifest.txt
131
+ - spec/sample_jar/README.txt
132
+ - spec/sample_jar/lib/sample_jar.rb
133
+ - spec/sample_jar/sample_jar.gemspec
134
+ - spec/sample_jar/test/test_sample_jar.rb
135
+ - spec/sample_war/app/controllers/application.rb
136
+ - spec/sample_war/app/helpers/application_helper.rb
137
+ - spec/sample_war/config/boot.rb
138
+ - spec/sample_war/config/database.yml
139
+ - spec/sample_war/config/environment.rb
140
+ - spec/sample_war/config/environments/development.rb
141
+ - spec/sample_war/config/environments/production.rb
142
+ - spec/sample_war/config/environments/test.rb
143
+ - spec/sample_war/config/initializers/inflections.rb
144
+ - spec/sample_war/config/initializers/mime_types.rb
145
+ - spec/sample_war/config/initializers/new_rails_defaults.rb
146
+ - spec/sample_war/config/routes.rb
147
+ - spec/sample_war/lib/tasks/utils.rake
148
+ - spec/sample_war/public/404.html
149
+ - spec/sample_war/public/422.html
150
+ - spec/sample_war/public/500.html
151
+ - spec/sample_war/public/favicon.ico
152
+ - spec/sample_war/public/index.html
153
+ - spec/sample_war/public/robots.txt
154
+ - spec/spec_helper.rb
155
+ - spec/warbler/application_spec.rb
156
+ - spec/warbler/bundler_spec.rb
157
+ - spec/warbler/config_spec.rb
158
+ - spec/warbler/gems_spec.rb
159
+ - spec/warbler/jar_spec.rb
160
+ - spec/warbler/task_spec.rb
161
+ - spec/warbler/traits_spec.rb
162
+ - spec/warbler/war_spec.rb
163
+ - warble.rb
164
+ - web.xml.erb
165
+ has_rdoc: true
166
+ homepage: http://caldersphere.rubyforge.org/warbler
167
+ licenses: []
168
+
169
+ post_install_message:
170
+ rdoc_options:
171
+ - --main
172
+ - README.txt
173
+ - -SHN
174
+ - -f
175
+ - darkfish
176
+ require_paths:
177
+ - lib
178
+ required_ruby_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: "0"
183
+ version:
184
+ required_rubygems_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: "0"
189
+ version:
190
+ requirements: []
191
+
192
+ rubyforge_project: caldersphere
193
+ rubygems_version: 1.3.5
194
+ signing_key:
195
+ specification_version: 3
196
+ summary: Warbler chirpily constructs .war files of your Rails applications.
197
+ test_files: []
198
+