aslakhellesoy-warbler 0.9.12
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +95 -0
- data/LICENSES.txt +37 -0
- data/README.txt +167 -0
- data/Rakefile +58 -0
- data/bin/warble +68 -0
- data/generators/warble/templates/warble.rb +89 -0
- data/generators/warble/warble_generator.rb +19 -0
- data/lib/jruby-rack-0.9.3.jar +0 -0
- data/lib/warbler/config.rb +250 -0
- data/lib/warbler/gems.rb +36 -0
- data/lib/warbler/task.rb +343 -0
- data/lib/warbler/version.rb +9 -0
- data/lib/warbler.rb +16 -0
- data/spec/sample/app/controllers/application.rb +15 -0
- data/spec/sample/app/helpers/application_helper.rb +3 -0
- data/spec/sample/config/boot.rb +109 -0
- data/spec/sample/config/environment.rb +67 -0
- data/spec/sample/config/environments/development.rb +17 -0
- data/spec/sample/config/environments/production.rb +22 -0
- data/spec/sample/config/environments/test.rb +22 -0
- data/spec/sample/config/initializers/inflections.rb +10 -0
- data/spec/sample/config/initializers/mime_types.rb +5 -0
- data/spec/sample/config/initializers/new_rails_defaults.rb +15 -0
- data/spec/sample/config/routes.rb +41 -0
- data/spec/spec_helper.rb +43 -0
- data/spec/warbler/config_spec.rb +110 -0
- data/spec/warbler/gems_spec.rb +39 -0
- data/spec/warbler/task_spec.rb +476 -0
- data/tasks/warbler.rake +20 -0
- data/web.xml.erb +32 -0
- metadata +100 -0
data/History.txt
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
== 0.9.12
|
2
|
+
|
3
|
+
* Allow framework auto-detection to be disabled. Set
|
4
|
+
`Warbler.framework_detection = false` at the top of config/warble.rb
|
5
|
+
or uncomment the line from a newly generated config.
|
6
|
+
* Add configuration option to set manifest file (thanks Tommy McGuire)
|
7
|
+
* Mitigate RubyGems 1.3 compatibility issue (thanks Jens Norrgrann)
|
8
|
+
* Add experimental `war:exploded` task. This allows you to deploy your
|
9
|
+
application in an exploded mode, thus allowing continual development
|
10
|
+
without re-warring and re-deploying. Feedback is appreciated if you
|
11
|
+
try this feature; it may not work in all application servers and for
|
12
|
+
applications other than Rails.
|
13
|
+
* Handle Rails gem dependencies better (thanks Laszlo Bacsi)
|
14
|
+
* Auto-detect Merb dependencies (Merb >= 1.0 only). Please give
|
15
|
+
feedback if you try Warbler with a Merb 1.0 app.
|
16
|
+
* Ignore gem development dependencies
|
17
|
+
* Upgrade to JRuby 1.1.6 and JRuby-Rack 0.9.3
|
18
|
+
|
19
|
+
== 0.9.11
|
20
|
+
|
21
|
+
* Auto-detect Rails and Merb and configure appropriately
|
22
|
+
- For Rails, set rails booter, determine max runtimes based on Rails.configuration.threadsafe!,
|
23
|
+
add Rails gem, detect Rails version, set gems to be packaged based on
|
24
|
+
Rails.configuration.gems if available
|
25
|
+
- Rails gems only added if Rails application detected
|
26
|
+
- For Merb, set merb booter automatically
|
27
|
+
* Auto-detect config.ru rackup script and pass it into config.webxml.rackup
|
28
|
+
* rails.env now commented by default in config/warble.rb and internally default
|
29
|
+
the value to 'production'
|
30
|
+
* Default directories in config.dirs to only those that are found to be present
|
31
|
+
* Allow config.gems array to contain regexps and Gem::Dependency objects as well
|
32
|
+
(assist from Jani Soila)
|
33
|
+
* Fix bug ensuring you can += and -= for config.gems
|
34
|
+
* Upgrade to JRuby 1.1.4 and JRuby-Rack 0.9.2
|
35
|
+
* add [] as a way to specify non-identifier keys, example: config.webxml['!@#$%^'] = 'haha'
|
36
|
+
|
37
|
+
== 0.9.10
|
38
|
+
|
39
|
+
* Upgraded to JRuby-Rack 0.9.1. Fixes JRUBY-2620, JRUBY-2594, JRUBY-2507.
|
40
|
+
* Now verified to work with Camping and Sinatra. See
|
41
|
+
http://github.com/nicksieger/jruby-rack/tree/master/examples for examples
|
42
|
+
of how to configure Warbler to package your Camping and Sinatra apps.
|
43
|
+
* Upgraded to JRuby 1.1.3.
|
44
|
+
* Log files are no longer packaged in the .war file.
|
45
|
+
* Fix #<Warbler::WebxmlOpenStruct ...> appearing in web.xml and document workarounds.
|
46
|
+
* Add config.autodeploy_dir that, when specified, will create the war there.
|
47
|
+
|
48
|
+
== 0.9.9
|
49
|
+
|
50
|
+
* Now shipping with JRuby-Rack 0.9!
|
51
|
+
* Upgrade to JRuby 1.1.1
|
52
|
+
* warble.rb and web.xml.erb have changed as a result of the change to JRuby-Rack -- we
|
53
|
+
recommend comparing the new base copies with any existing configuration you have to
|
54
|
+
make sure you pick up the differences.
|
55
|
+
* Config changes:
|
56
|
+
** config.webxml.booter chooses what kind of application to use (:rails, :merb or plain :rack).
|
57
|
+
** config.webxml.pool.* have been replaced by config.webxml.jruby.(min|max).runtimes
|
58
|
+
** config.webxml.standalone and config.webxml.jruby_home no longer have any effect.
|
59
|
+
|
60
|
+
== 0.9.5
|
61
|
+
|
62
|
+
* Fix bug in plugin warbler.rake task file that would favor loading warbler from gems before the version
|
63
|
+
installed as a plugin
|
64
|
+
* Upgrade to JRuby 1.1 final and Goldspike 1.6.1
|
65
|
+
|
66
|
+
== 0.9.4
|
67
|
+
|
68
|
+
* Update bundled JRuby to 1.1RC3 and Goldspike to 1.6.
|
69
|
+
* Fix inclusion of gems with platform-specific bits (e.g., Hpricot)
|
70
|
+
|
71
|
+
== 0.9.3
|
72
|
+
|
73
|
+
* Update bundled JRuby to 1.1RC2, and Goldspike to 1.5.
|
74
|
+
* The bundled JRuby and Goldspike now require JDK 5 or greater. If you wish to use JDK 1.4, use Warbler 0.9.2.
|
75
|
+
|
76
|
+
== 0.9.2
|
77
|
+
|
78
|
+
* Update bundled JRuby to version 1.0.3 and Goldspike 1.4.
|
79
|
+
* Add config.java_classes to allow you to copy loose Java classes into WEB-INF/classes.
|
80
|
+
* Make jar command a single command string so that jar creation doesn't fail (works around bug in JRuby 1.0.2)
|
81
|
+
* Use File.join to form staging directory, should produce the proper jar-command path in Windows
|
82
|
+
|
83
|
+
== 0.9.1
|
84
|
+
|
85
|
+
* Add rake >= 0.7.3 as a dependency in the gem specification.
|
86
|
+
* Add debug tasks: war:debug, war:debug:gems, war:debug:public, war:debug:app, war:debug:includes,
|
87
|
+
war:debug:excludes, war:debug:java_libs gives you a breakdown of what Warbler expects to package.
|
88
|
+
|
89
|
+
== 0.9
|
90
|
+
|
91
|
+
* Birthday! Warbler is a gem to make a .war file out of a Rails project. The intent is to provide a
|
92
|
+
minimal, flexible, ruby-like way to bundle up all of your application files for deployment to a
|
93
|
+
Java application server.
|
94
|
+
* Bundled versions: goldspike-1.4-SNAPSHOT and jruby-complete-1.0.1
|
95
|
+
* Works as both a gem (rake application) or a plugin
|
data/LICENSES.txt
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
= Warbler
|
2
|
+
|
3
|
+
Warbler is provided under the terms of the MIT license.
|
4
|
+
|
5
|
+
(c) Copyright 2007-2008 Sun Microsystems, Inc.
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person
|
8
|
+
obtaining a copy of this software and associated documentation files
|
9
|
+
(the "Software"), to deal in the Software without restriction,
|
10
|
+
including without limitation the rights to use, copy, modify, merge,
|
11
|
+
publish, distribute, sublicense, and/or sell copies of the Software,
|
12
|
+
and to permit persons to whom the Software is furnished to do so,
|
13
|
+
subject to the following conditions:
|
14
|
+
|
15
|
+
The above copyright notice and this permission notice shall be
|
16
|
+
included in all copies or substantial portions of the Software.
|
17
|
+
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
19
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
20
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
22
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
23
|
+
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
24
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
25
|
+
SOFTWARE.
|
26
|
+
|
27
|
+
= Additional Bundled Software
|
28
|
+
|
29
|
+
JRuby-Rack (jruby-rack-*.jar) is distributed under the terms of the MIT license.
|
30
|
+
See http://svn.codehaus.org/jruby-contrib/trunk/rack/LICENSE.txt
|
31
|
+
for details.
|
32
|
+
|
33
|
+
JRuby (jruby-complete-*.jar) is distrubuted under the terms of the Common
|
34
|
+
Public License. See http://www.eclipse.org/legal/cpl-v10.html for details. At
|
35
|
+
your option, JRuby is also available under the GPL or LGPL licenses. See the
|
36
|
+
file COPYING in the JRuby distribution for details
|
37
|
+
(http://svn.codehaus.org/jruby/trunk/jruby/COPYING).
|
data/README.txt
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
= Warbler
|
2
|
+
|
3
|
+
Warbler is a gem to make a .war file out of a Rails, Merb, or Rack-based
|
4
|
+
application. The intent is to provide a minimal, flexible, ruby-like way to
|
5
|
+
bundle up all of your application files for deployment to a Java application
|
6
|
+
server.
|
7
|
+
|
8
|
+
Warbler provides a sane set of out-of-the box defaults that should allow most
|
9
|
+
Rails applications without external gem dependencies (aside from Rails itself)
|
10
|
+
to assemble and Just Work.
|
11
|
+
|
12
|
+
Warbler bundles JRuby and the JRuby-Rack servlet adapter for dispatching
|
13
|
+
requests to your application inside the java application server, and assembles
|
14
|
+
all jar files in WARBLER_HOME/lib/*.jar into your application. No external
|
15
|
+
dependencies are downloaded.
|
16
|
+
|
17
|
+
== Getting Started
|
18
|
+
|
19
|
+
1. Install the gem: <tt>gem install warbler</tt>.
|
20
|
+
2. Run warbler in the top directory of your Rails application: <tt>warble</tt>.
|
21
|
+
3. Deploy your railsapp.war file to your favorite Java application server.
|
22
|
+
|
23
|
+
== Usage
|
24
|
+
|
25
|
+
Warbler's +warble+ command is just a small wrapper around Rake with internally
|
26
|
+
defined tasks. (Notice "rake" still prints out in the message, but you should
|
27
|
+
substitute "warble" for "rake" on the command line when running this way.)
|
28
|
+
|
29
|
+
$ warble -T
|
30
|
+
rake config # Generate a configuration file to customize your war assembly
|
31
|
+
rake pluginize # Unpack warbler as a plugin in your Rails application
|
32
|
+
rake war # Create trunk.war
|
33
|
+
rake war:app # Copy all application files into the .war
|
34
|
+
rake war:clean # Clean up the .war file and the staging area
|
35
|
+
rake war:gems # Unpack all gems into WEB-INF/gems
|
36
|
+
rake war:jar # Run the jar command to create the .war
|
37
|
+
rake war:java_libs # Copy all java libraries into the .war
|
38
|
+
rake war:public # Copy all public HTML files to the root of the .war
|
39
|
+
rake war:webxml # Generate a web.xml file for the webapp
|
40
|
+
|
41
|
+
Warble makes heavy use of Rake's file and directory tasks, so only recently
|
42
|
+
updated files will be copied, making repeated assemblies much faster.
|
43
|
+
|
44
|
+
== Configuration
|
45
|
+
|
46
|
+
=== Rails applications
|
47
|
+
|
48
|
+
Rails applications are detected automatically and configured appropriately.
|
49
|
+
The following items are set up for you:
|
50
|
+
|
51
|
+
* The Rails gem is packaged if you haven't vendored Rails.
|
52
|
+
* Other gems configured in Rails.configuration.gems are packaged (Rails 2.1 or
|
53
|
+
later)
|
54
|
+
* Multi-thread-safe execution (as introduced in Rails 2.2) is detected and
|
55
|
+
runtime pooling is disabled.
|
56
|
+
|
57
|
+
=== Merb applications
|
58
|
+
|
59
|
+
Merb applications are detected automatically, and the merb-core gem and its
|
60
|
+
dependencies are packaged.
|
61
|
+
|
62
|
+
=== Other Rack-based applications
|
63
|
+
|
64
|
+
If you have a 'config.ru' file in the top directory of your application, its
|
65
|
+
contents will be used as the rackup script for your Rack-based application.
|
66
|
+
You will probably need to specify framework and application gems in
|
67
|
+
config/warble.rb.
|
68
|
+
|
69
|
+
See http://github.com/nicksieger/jruby-rack/tree/master/examples for examples
|
70
|
+
of how to configure Warbler to package Camping and Sinatra apps.
|
71
|
+
|
72
|
+
=== Configuration auto-detect notes
|
73
|
+
|
74
|
+
* If you don't have database access in the environment where you package your
|
75
|
+
application, you may wish to set `Warbler.framework_detection` to false at
|
76
|
+
the top of config.rb. In this case you may need to specify additional
|
77
|
+
details such as booter, gems and other settings.
|
78
|
+
* A more accurate way of detecting a Merb application's gems is needed. Until
|
79
|
+
then, you will have to specify them in config/warble.rb. See below.
|
80
|
+
* Is it possible to more generally detect what gems an application uses?
|
81
|
+
Gem.loaded_specs is available, but the application needs to be loaded first
|
82
|
+
before its contents are reliable.
|
83
|
+
|
84
|
+
=== Custom configuration
|
85
|
+
|
86
|
+
The default configuration puts application files (+app+, +config+, +lib+,
|
87
|
+
+log+, +vendor+, +tmp+) under the .war file's WEB-INF directory, and files in
|
88
|
+
+public+ in the root of the .war file. Any Java .jar files stored in lib will
|
89
|
+
automatically be placed in WEB-INF/lib for placement on the web app's
|
90
|
+
classpath.
|
91
|
+
|
92
|
+
If the default settings are not appropriate for your application, you can
|
93
|
+
customize Warbler's behavior. To customize files, libraries, and gems included
|
94
|
+
in the .war file, you'll need a config/warble.rb file. There a two ways of
|
95
|
+
doing this. With the gem, simply run
|
96
|
+
|
97
|
+
warble config
|
98
|
+
|
99
|
+
If you have Warbler installed as a plugin, use the generator:
|
100
|
+
|
101
|
+
script/generate warble
|
102
|
+
|
103
|
+
Finally, edit the config/warble.rb to your taste. If you install the gem but
|
104
|
+
later decide you'd like to have it as a plugin, use the +pluginize+ command:
|
105
|
+
|
106
|
+
warble pluginize
|
107
|
+
|
108
|
+
If you wish to upgrade or switch one or more java libraries from what's
|
109
|
+
bundled in the Warbler gem, simply change the jars in WARBLER_HOME/lib, or
|
110
|
+
modify the +java_libs+ attribute of Warbler::Config to include the files you
|
111
|
+
need.
|
112
|
+
|
113
|
+
Once Warbler is installed as a plugin, you can use +rake+ to build the war
|
114
|
+
(with the same set of tasks as above).
|
115
|
+
|
116
|
+
The generated config/warble.rb file is fully-documented with the available
|
117
|
+
options and default values.
|
118
|
+
|
119
|
+
=== Web.xml
|
120
|
+
|
121
|
+
Java web applications are configured mainly through this file, and Warbler
|
122
|
+
creates a suitable default file for you for use. However, if you need to
|
123
|
+
customize it in any way, you have two options.
|
124
|
+
|
125
|
+
1. If you just want a static web.xml file whose contents you manually control,
|
126
|
+
you may copy the one generated for you in <tt>tmp/war/WEB-INF/web.xml</tt>
|
127
|
+
to <tt>config/web.xml</tt> and modify as needed. It will be copied into the
|
128
|
+
webapp for you.
|
129
|
+
2. If you want to inject some dynamic information into the file, copy the
|
130
|
+
<tt>WARBLER_HOME/web.xml.erb</tt> to <tt>config/web.xml.erb</tt>. Its
|
131
|
+
contents will be evaluated for you and put in the webapp. Note that you can
|
132
|
+
also pass arbitrary properties to the ERb template by setting
|
133
|
+
<tt>config.webxml.customkey</tt> values in your <tt>config/warble.rb</tt>
|
134
|
+
file.
|
135
|
+
|
136
|
+
For more information on configuration, see Warbler::Config.
|
137
|
+
|
138
|
+
=== Troubleshooting
|
139
|
+
|
140
|
+
If Warbler isn't packaging the files you were expecting, there are several
|
141
|
+
debug tasks available to give you more insight into what's going on.
|
142
|
+
|
143
|
+
* <tt>war:debug</tt> prints a YAML dump of the current configuration
|
144
|
+
* <tt>war:debug:X</tt> prints a list of files that Warbler will include during
|
145
|
+
that stage of assembly. Valid values of <tt>X</tt> are <tt>app, java_libs,
|
146
|
+
gems, public, includes, excludes</tt>.
|
147
|
+
|
148
|
+
== Source
|
149
|
+
|
150
|
+
You can get the Warbler source using Git, in any of the following ways:
|
151
|
+
|
152
|
+
git clone git://git.caldersphere.net/warbler.git
|
153
|
+
git clone http://git.caldersphere.net/warbler.git
|
154
|
+
git clone git://github.com/nicksieger/warbler.git
|
155
|
+
|
156
|
+
You can also download a tarball of Warbler source at
|
157
|
+
http://github.com/nicksieger/warbler/tree/master.
|
158
|
+
|
159
|
+
== License
|
160
|
+
|
161
|
+
Warbler is provided under the terms of the MIT license.
|
162
|
+
|
163
|
+
Warbler (c) 2007-08 Sun Microsystems, Inc.
|
164
|
+
|
165
|
+
Warbler also bundles several other pieces of software for convenience. Please
|
166
|
+
read the file LICENSES.txt to ensure that you agree with the terms of all the
|
167
|
+
components.
|
data/Rakefile
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec/rake/spectask'
|
2
|
+
require 'spec/rake/verify_rcov'
|
3
|
+
|
4
|
+
MANIFEST = FileList["History.txt", "Manifest.txt", "README.txt", "LICENSES.txt", "Rakefile",
|
5
|
+
"*.erb", "bin/*", "generators/**/*", "lib/**/*", "spec/**/*.rb", "tasks/**/*.rake"]
|
6
|
+
|
7
|
+
begin
|
8
|
+
File.open("Manifest.txt", "w") {|f| MANIFEST.each {|n| f << "#{n}\n"} }
|
9
|
+
require 'hoe'
|
10
|
+
require File.dirname(__FILE__) + '/lib/warbler/version'
|
11
|
+
hoe = Hoe.new("warbler", Warbler::VERSION) do |p|
|
12
|
+
p.rubyforge_name = "caldersphere"
|
13
|
+
p.url = "http://caldersphere.rubyforge.org/warbler"
|
14
|
+
p.author = "Nick Sieger"
|
15
|
+
p.email = "nick@nicksieger.com"
|
16
|
+
p.summary = "Warbler chirpily constructs .war files of your Rails applications."
|
17
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
18
|
+
p.description = p.paragraphs_of('README.txt', 0...1).join("\n\n")
|
19
|
+
p.extra_deps << ['rake', '>= 0.7.3']
|
20
|
+
p.test_globs = ["spec/**/*_spec.rb"]
|
21
|
+
p.rdoc_pattern = /\.(rb|txt)/
|
22
|
+
end
|
23
|
+
hoe.spec.files = MANIFEST
|
24
|
+
hoe.spec.dependencies.delete_if { |dep| dep.name == "hoe" }
|
25
|
+
|
26
|
+
task :gemspec do
|
27
|
+
File.open("#{hoe.name}.gemspec", "w") {|f| f << hoe.spec.to_ruby }
|
28
|
+
end
|
29
|
+
task :package => :gemspec
|
30
|
+
rescue LoadError
|
31
|
+
puts "You really need Hoe installed to be able to package this gem"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Hoe insists on setting task :default => :test
|
35
|
+
# !@#$ no easy way to empty the default list of prerequisites
|
36
|
+
Rake::Task['default'].send :instance_variable_set, "@prerequisites", FileList[]
|
37
|
+
|
38
|
+
task :default => :rcov
|
39
|
+
|
40
|
+
Spec::Rake::SpecTask.new do |t|
|
41
|
+
t.spec_opts ||= []
|
42
|
+
t.spec_opts << "--options" << "spec/spec.opts"
|
43
|
+
end
|
44
|
+
|
45
|
+
Spec::Rake::SpecTask.new("spec:rcov") do |t|
|
46
|
+
t.rcov = true
|
47
|
+
t.rcov_opts << '--exclude gems/*'
|
48
|
+
end
|
49
|
+
|
50
|
+
# so we don't confuse autotest
|
51
|
+
RCov::VerifyTask.new(:rcov) do |t|
|
52
|
+
t.threshold = 100
|
53
|
+
end
|
54
|
+
|
55
|
+
task "spec:rcov" do
|
56
|
+
rm_f "Manifest.txt"
|
57
|
+
end
|
58
|
+
task :rcov => "spec:rcov"
|
data/bin/warble
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
#--
|
4
|
+
# (c) Copyright 2007-2008 Sun Microsystems, Inc.
|
5
|
+
# See the file LICENSES.txt included with the distribution for
|
6
|
+
# software license details.
|
7
|
+
#++
|
8
|
+
|
9
|
+
require 'rubygems'
|
10
|
+
require 'rake'
|
11
|
+
require 'warbler'
|
12
|
+
|
13
|
+
application = Rake.application
|
14
|
+
|
15
|
+
# Load any application rakefiles to aid in autodetecting applications
|
16
|
+
Warbler.project_application = Rake::Application.new
|
17
|
+
Rake.application = Warbler.project_application
|
18
|
+
Rake::Application::DEFAULT_RAKEFILES.each do |rf|
|
19
|
+
if File.exist?(rf)
|
20
|
+
load rf
|
21
|
+
break
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
Rake.application = application
|
26
|
+
application.standard_exception_handling do
|
27
|
+
application.init
|
28
|
+
|
29
|
+
# Load the main warbler tasks
|
30
|
+
Warbler::Task.new
|
31
|
+
|
32
|
+
task :default => :war
|
33
|
+
|
34
|
+
desc "Generate a configuration file to customize your war assembly"
|
35
|
+
task :config do
|
36
|
+
if File.exists?(Warbler::Config::FILE) && ENV["FORCE"].nil?
|
37
|
+
puts "There's another bird sitting on my favorite branch"
|
38
|
+
puts "(file '#{Warbler::Config::FILE}' already exists. Pass argument FORCE=1 to override)"
|
39
|
+
elsif !File.directory?("config")
|
40
|
+
puts "I'm confused; my favorite branch is missing"
|
41
|
+
puts "(directory 'config' is missing)"
|
42
|
+
else
|
43
|
+
cp "#{Warbler::WARBLER_HOME}/generators/warble/templates/warble.rb", Warbler::Config::FILE
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
desc "Unpack warbler as a plugin in your Rails application"
|
48
|
+
task :pluginize do
|
49
|
+
if !Dir["vendor/plugins/warbler*"].empty?
|
50
|
+
puts "I found an old nest in vendor/plugins; please trash it so I can make a new one"
|
51
|
+
puts "(directory vendor/plugins/warbler* exists)"
|
52
|
+
elsif !File.directory?("vendor/plugins")
|
53
|
+
puts "I can't find a place to build my nest"
|
54
|
+
puts "(directory 'vendor/plugins' is missing)"
|
55
|
+
else
|
56
|
+
Dir.chdir("vendor/plugins") do
|
57
|
+
ruby "-S", "gem", "unpack", "warbler"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
desc "Display version of warbler"
|
63
|
+
task :version do
|
64
|
+
puts "Warbler version #{Warbler::VERSION}"
|
65
|
+
end
|
66
|
+
|
67
|
+
application.top_level
|
68
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# Disable automatic 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
|
+
# Temporary directory where the application is staged
|
7
|
+
# config.staging_dir = "tmp/war"
|
8
|
+
|
9
|
+
# Application directories to be included in the webapp.
|
10
|
+
config.dirs = %w(app config lib log vendor tmp)
|
11
|
+
|
12
|
+
# Additional files/directories to include, above those in config.dirs
|
13
|
+
# config.includes = FileList["db"]
|
14
|
+
|
15
|
+
# Additional files/directories to exclude
|
16
|
+
# config.excludes = FileList["lib/tasks/*"]
|
17
|
+
|
18
|
+
# Additional Java .jar files to include. Note that if .jar files are placed
|
19
|
+
# in lib (and not otherwise excluded) then they need not be mentioned here.
|
20
|
+
# JRuby and JRuby-Rack are pre-loaded in this list. Be sure to include your
|
21
|
+
# own versions if you directly set the value
|
22
|
+
# config.java_libs += FileList["lib/java/*.jar"]
|
23
|
+
|
24
|
+
# Loose Java classes and miscellaneous files to be placed in WEB-INF/classes.
|
25
|
+
# config.java_classes = FileList["target/classes/**.*"]
|
26
|
+
|
27
|
+
# One or more pathmaps defining how the java classes should be copied into
|
28
|
+
# WEB-INF/classes. The example pathmap below accompanies the java_classes
|
29
|
+
# configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
|
30
|
+
# for details of how to specify a pathmap.
|
31
|
+
# config.pathmaps.java_classes << "%{target/classes/,}p"
|
32
|
+
|
33
|
+
# Gems to be included. You need to tell Warbler which gems your application needs
|
34
|
+
# so that they can be packaged in the war file.
|
35
|
+
# The Rails gems are included by default unless the vendor/rails directory is present.
|
36
|
+
# config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl"]
|
37
|
+
# config.gems << "tzinfo"
|
38
|
+
|
39
|
+
# Uncomment this if you don't want to package rails gem.
|
40
|
+
# config.gems -= ["rails"]
|
41
|
+
|
42
|
+
# The most recent versions of gems are used.
|
43
|
+
# You can specify versions of gems by using a hash assignment:
|
44
|
+
# config.gems["rails"] = "2.0.2"
|
45
|
+
|
46
|
+
# You can also use regexps or Gem::Dependency objects for flexibility or
|
47
|
+
# fine-grained control.
|
48
|
+
# config.gems << /^merb-/
|
49
|
+
# config.gems << Gem::Dependency.new("merb-core", "= 0.9.3")
|
50
|
+
|
51
|
+
# Include gem dependencies not mentioned specifically
|
52
|
+
config.gem_dependencies = true
|
53
|
+
|
54
|
+
# Files to be included in the root of the webapp. Note that files in public
|
55
|
+
# will have the leading 'public/' part of the path stripped during staging.
|
56
|
+
# config.public_html = FileList["public/**/*", "doc/**/*"]
|
57
|
+
|
58
|
+
# Pathmaps for controlling how public HTML files are copied into the .war
|
59
|
+
# config.pathmaps.public_html = ["%{public/,}p"]
|
60
|
+
|
61
|
+
# Name of the war file (without the .war) -- defaults to the basename
|
62
|
+
# of RAILS_ROOT
|
63
|
+
# config.war_name = "mywar"
|
64
|
+
|
65
|
+
# Name of the MANIFEST.MF template for the war file. Defaults to the
|
66
|
+
# MANIFEST.MF normally generated by `jar cf`.
|
67
|
+
# config.manifest_file = "config/MANIFEST.MF"
|
68
|
+
|
69
|
+
# Value of RAILS_ENV for the webapp -- default as shown below
|
70
|
+
# config.webxml.rails.env = ENV['RAILS_ENV'] || 'production'
|
71
|
+
|
72
|
+
# Application booter to use, one of :rack, :rails, or :merb. (Default :rails)
|
73
|
+
# config.webxml.booter = :rails
|
74
|
+
|
75
|
+
# When using the :rack booter, "Rackup" script to use.
|
76
|
+
# The script is evaluated in a Rack::Builder to load the application.
|
77
|
+
# Examples:
|
78
|
+
# config.webxml.rackup = %{require './lib/demo'; run Rack::Adapter::Camping.new(Demo)}
|
79
|
+
# config.webxml.rackup = require 'cgi' && CGI::escapeHTML(File.read("config.ru"))
|
80
|
+
|
81
|
+
# Control the pool of Rails runtimes. Leaving unspecified means
|
82
|
+
# the pool will grow as needed to service requests. It is recommended
|
83
|
+
# that you fix these values when running a production server!
|
84
|
+
# config.webxml.jruby.min.runtimes = 2
|
85
|
+
# config.webxml.jruby.max.runtimes = 4
|
86
|
+
|
87
|
+
# JNDI data source name
|
88
|
+
# config.webxml.jndi = 'jdbc/rails'
|
89
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#--
|
2
|
+
# (c) Copyright 2007-2008 Sun Microsystems, Inc.
|
3
|
+
# See the file LICENSES.txt included with the distribution for
|
4
|
+
# software license details.
|
5
|
+
#++
|
6
|
+
|
7
|
+
class WarbleGenerator < Rails::Generator::Base
|
8
|
+
def manifest
|
9
|
+
record do |m|
|
10
|
+
m.directory 'config'
|
11
|
+
m.template 'warble.rb', File.join('config', 'warble.rb')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
def banner
|
17
|
+
"Usage: #{$0} warble"
|
18
|
+
end
|
19
|
+
end
|
Binary file
|