jetpack 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/.gitignore +4 -0
  2. data/.wrong +1 -0
  3. data/Gemfile +8 -0
  4. data/Gemfile.lock +23 -0
  5. data/README.markdown +35 -0
  6. data/Rakefile +16 -0
  7. data/bin/preflight +175 -0
  8. data/bin_files/.rake_runner.erb +36 -0
  9. data/bin_files/rake.erb +12 -0
  10. data/bin_files/ruby.erb +4 -0
  11. data/gems/bundler-1.0.18.gem +0 -0
  12. data/gems/bundler-1.1.rc.gem +0 -0
  13. data/gems/jruby-openssl-0.7.4.gem +0 -0
  14. data/install_gem.sh +5 -0
  15. data/jetpack.gemspec +19 -0
  16. data/jetty_files/etc/fake.p12 +0 -0
  17. data/jetty_files/etc/jetty.xml.erb +113 -0
  18. data/jetty_files/jetty-init.erb +702 -0
  19. data/jetty_files/run/.gitkeep +0 -0
  20. data/jetty_files/start.ini +69 -0
  21. data/jetty_files/webapps/.gitkeep +0 -0
  22. data/lib/preflight/settings.rb +48 -0
  23. data/script/ci +57 -0
  24. data/spec/basics_spec.rb +84 -0
  25. data/spec/bundler_spec.rb +120 -0
  26. data/spec/ruby_19_spec.rb +34 -0
  27. data/spec/sample_projects/has_gems_via_bundler/Gemfile +4 -0
  28. data/spec/sample_projects/has_gems_via_bundler/Gemfile.lock +13 -0
  29. data/spec/sample_projects/has_gems_via_bundler/Rakefile +18 -0
  30. data/spec/sample_projects/has_gems_via_bundler/config/preflight.yml +1 -0
  31. data/spec/sample_projects/has_gems_via_bundler/true} +0 -0
  32. data/spec/sample_projects/has_gems_via_bundler_19/Gemfile +8 -0
  33. data/spec/sample_projects/has_gems_via_bundler_19/Gemfile.lock +13 -0
  34. data/spec/sample_projects/has_gems_via_bundler_19/Rakefile +18 -0
  35. data/spec/sample_projects/has_gems_via_bundler_19/config/preflight.yml +2 -0
  36. data/spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/Gemfile +4 -0
  37. data/spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/Rakefile +18 -0
  38. data/spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/config/preflight.yml +1 -0
  39. data/spec/sample_projects/no_dependencies/Rakefile +30 -0
  40. data/spec/sample_projects/no_dependencies/config/preflight.yml +1 -0
  41. data/spec/sample_projects/webapp/Gemfile +3 -0
  42. data/spec/sample_projects/webapp/Gemfile.lock +88 -0
  43. data/spec/sample_projects/webapp/app/controllers/application_controller.rb +5 -0
  44. data/spec/sample_projects/webapp/config.ru +4 -0
  45. data/spec/sample_projects/webapp/config/application.rb +46 -0
  46. data/spec/sample_projects/webapp/config/boot.rb +6 -0
  47. data/spec/sample_projects/webapp/config/environment.rb +5 -0
  48. data/spec/sample_projects/webapp/config/environments/development.rb +25 -0
  49. data/spec/sample_projects/webapp/config/environments/test.rb +35 -0
  50. data/spec/sample_projects/webapp/config/initializers/secret_token.rb +7 -0
  51. data/spec/sample_projects/webapp/config/preflight.yml +6 -0
  52. data/spec/sample_projects/webapp/config/preflight_files/vendor/jetty/etc/custom-project-specific-jetty.xml +5 -0
  53. data/spec/sample_projects/webapp/config/preflight_files/vendor/jetty/etc/template-from-project-jetty.xml.erb +9 -0
  54. data/spec/sample_projects/webapp/config/routes.rb +60 -0
  55. data/spec/sample_projects/webapp/public/index.html +239 -0
  56. data/spec/sample_projects/webapp/script/rails +6 -0
  57. data/spec/spec_helper.rb +48 -0
  58. data/spec/suite.rb +1 -0
  59. data/spec/web_spec.rb +67 -0
  60. data/web_inf_files/web.xml.erb +47 -0
  61. metadata +175 -0
@@ -0,0 +1,239 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Ruby on Rails: Welcome aboard</title>
5
+ <style type="text/css" media="screen">
6
+ body {
7
+ margin: 0;
8
+ margin-bottom: 25px;
9
+ padding: 0;
10
+ background-color: #f0f0f0;
11
+ font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
12
+ font-size: 13px;
13
+ color: #333;
14
+ }
15
+
16
+ h1 {
17
+ font-size: 28px;
18
+ color: #000;
19
+ }
20
+
21
+ a {color: #03c}
22
+ a:hover {
23
+ background-color: #03c;
24
+ color: white;
25
+ text-decoration: none;
26
+ }
27
+
28
+
29
+ #page {
30
+ background-color: #f0f0f0;
31
+ width: 750px;
32
+ margin: 0;
33
+ margin-left: auto;
34
+ margin-right: auto;
35
+ }
36
+
37
+ #content {
38
+ float: left;
39
+ background-color: white;
40
+ border: 3px solid #aaa;
41
+ border-top: none;
42
+ padding: 25px;
43
+ width: 500px;
44
+ }
45
+
46
+ #sidebar {
47
+ float: right;
48
+ width: 175px;
49
+ }
50
+
51
+ #footer {
52
+ clear: both;
53
+ }
54
+
55
+
56
+ #header, #about, #getting-started {
57
+ padding-left: 75px;
58
+ padding-right: 30px;
59
+ }
60
+
61
+
62
+ #header {
63
+ background-image: url("images/rails.png");
64
+ background-repeat: no-repeat;
65
+ background-position: top left;
66
+ height: 64px;
67
+ }
68
+ #header h1, #header h2 {margin: 0}
69
+ #header h2 {
70
+ color: #888;
71
+ font-weight: normal;
72
+ font-size: 16px;
73
+ }
74
+
75
+
76
+ #about h3 {
77
+ margin: 0;
78
+ margin-bottom: 10px;
79
+ font-size: 14px;
80
+ }
81
+
82
+ #about-content {
83
+ background-color: #ffd;
84
+ border: 1px solid #fc0;
85
+ margin-left: -55px;
86
+ margin-right: -10px;
87
+ }
88
+ #about-content table {
89
+ margin-top: 10px;
90
+ margin-bottom: 10px;
91
+ font-size: 11px;
92
+ border-collapse: collapse;
93
+ }
94
+ #about-content td {
95
+ padding: 10px;
96
+ padding-top: 3px;
97
+ padding-bottom: 3px;
98
+ }
99
+ #about-content td.name {color: #555}
100
+ #about-content td.value {color: #000}
101
+
102
+ #about-content ul {
103
+ padding: 0;
104
+ list-style-type: none;
105
+ }
106
+
107
+ #about-content.failure {
108
+ background-color: #fcc;
109
+ border: 1px solid #f00;
110
+ }
111
+ #about-content.failure p {
112
+ margin: 0;
113
+ padding: 10px;
114
+ }
115
+
116
+
117
+ #getting-started {
118
+ border-top: 1px solid #ccc;
119
+ margin-top: 25px;
120
+ padding-top: 15px;
121
+ }
122
+ #getting-started h1 {
123
+ margin: 0;
124
+ font-size: 20px;
125
+ }
126
+ #getting-started h2 {
127
+ margin: 0;
128
+ font-size: 14px;
129
+ font-weight: normal;
130
+ color: #333;
131
+ margin-bottom: 25px;
132
+ }
133
+ #getting-started ol {
134
+ margin-left: 0;
135
+ padding-left: 0;
136
+ }
137
+ #getting-started li {
138
+ font-size: 18px;
139
+ color: #888;
140
+ margin-bottom: 25px;
141
+ }
142
+ #getting-started li h2 {
143
+ margin: 0;
144
+ font-weight: normal;
145
+ font-size: 18px;
146
+ color: #333;
147
+ }
148
+ #getting-started li p {
149
+ color: #555;
150
+ font-size: 13px;
151
+ }
152
+
153
+
154
+ #sidebar ul {
155
+ margin-left: 0;
156
+ padding-left: 0;
157
+ }
158
+ #sidebar ul h3 {
159
+ margin-top: 25px;
160
+ font-size: 16px;
161
+ padding-bottom: 10px;
162
+ border-bottom: 1px solid #ccc;
163
+ }
164
+ #sidebar li {
165
+ list-style-type: none;
166
+ }
167
+ #sidebar ul.links li {
168
+ margin-bottom: 5px;
169
+ }
170
+
171
+ </style>
172
+ <script type="text/javascript">
173
+ function about() {
174
+ info = document.getElementById('about-content');
175
+ if (window.XMLHttpRequest)
176
+ { xhr = new XMLHttpRequest(); }
177
+ else
178
+ { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
179
+ xhr.open("GET","rails/info/properties",false);
180
+ xhr.send("");
181
+ info.innerHTML = xhr.responseText;
182
+ info.style.display = 'block'
183
+ }
184
+ </script>
185
+ </head>
186
+ <body>
187
+ <div id="page">
188
+ <div id="sidebar">
189
+ <ul id="sidebar-items">
190
+ <li>
191
+ <h3>Browse the documentation</h3>
192
+ <ul class="links">
193
+ <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
194
+ <li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li>
195
+ <li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li>
196
+ <li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li>
197
+ </ul>
198
+ </li>
199
+ </ul>
200
+ </div>
201
+
202
+ <div id="content">
203
+ <div id="header">
204
+ <h1>Welcome aboard</h1>
205
+ <h2>You&rsquo;re riding Ruby on Rails!</h2>
206
+ </div>
207
+
208
+ <div id="about">
209
+ <h3><a href="rails/info/properties" onclick="about(); return false">About your application&rsquo;s environment</a></h3>
210
+ <div id="about-content" style="display: none"></div>
211
+ </div>
212
+
213
+ <div id="getting-started">
214
+ <h1>Getting started</h1>
215
+ <h2>Here&rsquo;s how to get rolling:</h2>
216
+
217
+ <ol>
218
+ <li>
219
+ <h2>Use <code>rails generate</code> to create your models and controllers</h2>
220
+ <p>To see all available options, run it without parameters.</p>
221
+ </li>
222
+
223
+ <li>
224
+ <h2>Set up a default route and remove or rename this file</h2>
225
+ <p>Routes are set up in config/routes.rb.</p>
226
+ </li>
227
+
228
+ <li>
229
+ <h2>Create your database</h2>
230
+ <p>Run <code>rake db:migrate</code> to create your database. If you're not using SQLite (the default), edit <code>config/database.yml</code> with your username and password.</p>
231
+ </li>
232
+ </ol>
233
+ </div>
234
+ </div>
235
+
236
+ <div id="footer">&nbsp;</div>
237
+ </div>
238
+ </body>
239
+ </html>
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env jruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,48 @@
1
+ require "fileutils"
2
+ require "open4"
3
+ require "net/http"
4
+ require "stringio"
5
+
6
+ include FileUtils
7
+
8
+
9
+ def x(cmd)
10
+ stdout = StringIO.new
11
+ stderr = StringIO.new
12
+ result = Open4::spawn("sh -c \"#{cmd}\"", 'raise' => false, 'quiet' => true, 'stdout' => stdout, 'stderr' => stderr)
13
+ exitstatus = result ? result.exitstatus : nil
14
+ {:exitstatus => exitstatus, :stdout => stdout.string, :stderr => stderr.string}
15
+ end
16
+
17
+ def x!(cmd)
18
+ result = x(cmd)
19
+ raise "#{cmd} failed: #{result[:stderr]}" unless result[:exitstatus] == 0
20
+ return result
21
+ end
22
+
23
+ deps = %w(jetty-hightide-7.4.5.v20110725.zip jruby-complete-1.6.4.jar jruby-rack-1.0.10.jar)
24
+ mkdir_p "spec/local_mirror" unless File.directory?("spec/local_mirror")
25
+ deps.each do |file|
26
+ target = File.join("spec", "local_mirror", file)
27
+ x! "curl --silent --show-error -o #{target} http://mirrors.squareup.com/distfiles/#{file}" unless File.exists?(target)
28
+ end
29
+
30
+ def reset
31
+ Dir["spec/sample_projects/*/vendor/bundle"].each{|d|FileUtils.rm_rf(d)}
32
+ Dir["spec/sample_projects/*/vendor/bundler_gem"].each{|d|FileUtils.rm_rf(d)}
33
+ Dir["spec/sample_projects/*/*.jar"].each{|f|FileUtils.rm(f)}
34
+ Dir["spec/sample_projects/*/.bundle"].each{|d|FileUtils.rm_rf(d)}
35
+ Dir["spec/sample_projects/*/bin"].each{|d|FileUtils.rm_rf(d)}
36
+ Dir["spec/sample_projects/*/vendor/jruby.jar"].each{|f|FileUtils.rm_f(f)}
37
+ Dir["spec/sample_projects/*/vendor/jruby-rack.jar"].each{|f|FileUtils.rm_f(f)}
38
+ Dir["spec/sample_projects/*/vendor/jetty"].each{|d|FileUtils.rm_rf(d)}
39
+ Dir["spec/sample_projects/*/vendor/cache"].each{|d|FileUtils.rm_rf(d)}
40
+ Dir["spec/sample_projects/*/WEB-INF"].each{|d|FileUtils.rm_rf(d)}
41
+ Dir["spec/sample_projects/*/log"].each{|d|FileUtils.rm_rf(d)}
42
+ end
43
+
44
+ RSpec.configure do |config|
45
+ config.after(:all) do
46
+ reset
47
+ end
48
+ end
data/spec/suite.rb ADDED
@@ -0,0 +1 @@
1
+ Dir["#{File.dirname(__FILE__)}/**/*_spec.rb"].each{|f|require f}
data/spec/web_spec.rb ADDED
@@ -0,0 +1,67 @@
1
+ require "spec_helper"
2
+ require "yaml"
3
+
4
+ describe "preflight - web start" do
5
+ before(:all) do
6
+ reset
7
+ @result = x!("bin/preflight spec/sample_projects/webapp")
8
+ end
9
+
10
+ after(:all) do
11
+ reset
12
+ end
13
+
14
+ it "will unzip jetty under vendor if jetty.xml is present" do
15
+ @result[:stderr].should == ""
16
+ @result[:exitstatus].should == 0
17
+ File.directory?("spec/sample_projects/webapp/vendor/jetty").should == true
18
+ File.directory?("spec/sample_projects/webapp/vendor/jetty/lib").should == true
19
+ File.exists?("spec/sample_projects/webapp/vendor/jetty/start.jar").should == true
20
+ end
21
+
22
+ it "places config files" do
23
+ File.exists?("spec/sample_projects/webapp/WEB-INF/web.xml").should == true
24
+ File.exists?("spec/sample_projects/webapp/vendor/jetty/etc/jetty.xml").should == true
25
+ File.exists?("spec/sample_projects/webapp/vendor/jetty/etc/custom-project-specific-jetty.xml").should == true
26
+ File.exists?("spec/sample_projects/webapp/vendor/jetty/etc/template-from-project-jetty.xml").should == true
27
+ File.exists?("spec/sample_projects/webapp/vendor/jetty/etc/template-from-project-jetty.xml.erb").should == false
28
+ File.read("spec/sample_projects/webapp/vendor/jetty/etc/template-from-project-jetty.xml").should
29
+ include("<Arg>10443</Arg>")
30
+ File.exists?("spec/sample_projects/webapp/vendor/jetty/jetty-init").should == true
31
+ end
32
+
33
+ it "respects the maximun number of concurrent connections" do
34
+ jetty_xml = "spec/sample_projects/webapp/vendor/jetty/etc/jetty.xml"
35
+ settings = YAML.load_file("spec/sample_projects/webapp/config/preflight.yml")
36
+ max_threads_setting = /<Set name="maxThreads">#{settings["max_concurrent_connections"]}<\/Set>/
37
+
38
+ File.exists?(jetty_xml).should == true
39
+ File.readlines(jetty_xml).grep(max_threads_setting).should_not be_empty
40
+ end
41
+
42
+ it "runs" do
43
+ pid_to_kill = run_app
44
+
45
+ #HTTP 4443 - intended to be proxied to from something listening on 443
46
+ x!("curl https://localhost:10443/hello --insecure")[:stdout].split("<br/>").first.strip.should == "Hello World"
47
+
48
+ #HTTP 9080 - intended for internal health checking
49
+ x!("curl http://localhost:10080/hello --insecure")[:stdout].split("<br/>").first.strip.should == "Hello World"
50
+
51
+ system("kill -9 #{pid_to_kill}")
52
+ end
53
+
54
+ def run_app
55
+ jetty_pid = Process.spawn({'RAILS_ENV' => 'development'}, 'java', '-jar', 'start.jar', {:chdir => "spec/sample_projects/webapp/vendor/jetty"})
56
+ start_time = Time.now
57
+ loop do
58
+ begin
59
+ TCPSocket.open("localhost", 10443)
60
+ return jetty_pid
61
+ rescue Errno::ECONNREFUSED
62
+ raise "it's taking too long to start the server, something might be wrong" if Time.now - start_time > 60
63
+ sleep 0.1
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
2
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
3
+ <web-app>
4
+ <context-param>
5
+ <param-name>jruby.min.runtimes</param-name>
6
+ <param-value>1</param-value>
7
+ </context-param>
8
+
9
+ <context-param>
10
+ <param-name>jruby.max.runtimes</param-name>
11
+ <param-value>1</param-value>
12
+ </context-param>
13
+
14
+ <context-param>
15
+ <param-name>rails.root</param-name>
16
+ <param-value>.</param-value>
17
+ </context-param>
18
+
19
+ <context-param>
20
+ <param-name>public.root</param-name>
21
+ <param-value>/public</param-value>
22
+ </context-param>
23
+
24
+ <context-param>
25
+ <param-name>gem.home</param-name>
26
+ <param-value><%= @gem_home %></param-value>
27
+ </context-param>
28
+
29
+ <context-param>
30
+ <param-name>gem.path</param-name>
31
+ <param-value><%= @gem_path %></param-value>
32
+ </context-param>
33
+
34
+ <filter>
35
+ <filter-name>RackFilter</filter-name>
36
+ <filter-class>org.jruby.rack.RackFilter</filter-class>
37
+ </filter>
38
+
39
+ <filter-mapping>
40
+ <filter-name>RackFilter</filter-name>
41
+ <url-pattern>/*</url-pattern>
42
+ </filter-mapping>
43
+
44
+ <listener>
45
+ <listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class>
46
+ </listener>
47
+ </web-app>
metadata ADDED
@@ -0,0 +1,175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jetpack
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
11
+ platform: ruby
12
+ authors:
13
+ - Steve Conover
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-01-19 00:00:00 -08:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: bundler
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ version_requirements: *id001
35
+ description:
36
+ email:
37
+ - steve@squareup.com
38
+ executables:
39
+ - preflight
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - .gitignore
46
+ - .wrong
47
+ - Gemfile
48
+ - Gemfile.lock
49
+ - README.markdown
50
+ - Rakefile
51
+ - bin/preflight
52
+ - bin_files/.rake_runner.erb
53
+ - bin_files/rake.erb
54
+ - bin_files/ruby.erb
55
+ - gems/bundler-1.0.18.gem
56
+ - gems/bundler-1.1.rc.gem
57
+ - gems/jruby-openssl-0.7.4.gem
58
+ - install_gem.sh
59
+ - jetpack.gemspec
60
+ - jetty_files/etc/fake.p12
61
+ - jetty_files/etc/jetty.xml.erb
62
+ - jetty_files/jetty-init.erb
63
+ - jetty_files/run/.gitkeep
64
+ - jetty_files/start.ini
65
+ - jetty_files/webapps/.gitkeep
66
+ - lib/preflight/settings.rb
67
+ - script/ci
68
+ - spec/basics_spec.rb
69
+ - spec/bundler_spec.rb
70
+ - spec/ruby_19_spec.rb
71
+ - spec/sample_projects/has_gems_via_bundler/Gemfile
72
+ - spec/sample_projects/has_gems_via_bundler/Gemfile.lock
73
+ - spec/sample_projects/has_gems_via_bundler/Rakefile
74
+ - spec/sample_projects/has_gems_via_bundler/config/preflight.yml
75
+ - spec/sample_projects/has_gems_via_bundler/true}
76
+ - spec/sample_projects/has_gems_via_bundler_19/Gemfile
77
+ - spec/sample_projects/has_gems_via_bundler_19/Gemfile.lock
78
+ - spec/sample_projects/has_gems_via_bundler_19/Rakefile
79
+ - spec/sample_projects/has_gems_via_bundler_19/config/preflight.yml
80
+ - spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/Gemfile
81
+ - spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/Rakefile
82
+ - spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/config/preflight.yml
83
+ - spec/sample_projects/no_dependencies/Rakefile
84
+ - spec/sample_projects/no_dependencies/config/preflight.yml
85
+ - spec/sample_projects/webapp/Gemfile
86
+ - spec/sample_projects/webapp/Gemfile.lock
87
+ - spec/sample_projects/webapp/app/controllers/application_controller.rb
88
+ - spec/sample_projects/webapp/config.ru
89
+ - spec/sample_projects/webapp/config/application.rb
90
+ - spec/sample_projects/webapp/config/boot.rb
91
+ - spec/sample_projects/webapp/config/environment.rb
92
+ - spec/sample_projects/webapp/config/environments/development.rb
93
+ - spec/sample_projects/webapp/config/environments/test.rb
94
+ - spec/sample_projects/webapp/config/initializers/secret_token.rb
95
+ - spec/sample_projects/webapp/config/preflight.yml
96
+ - spec/sample_projects/webapp/config/preflight_files/vendor/jetty/etc/custom-project-specific-jetty.xml
97
+ - spec/sample_projects/webapp/config/preflight_files/vendor/jetty/etc/template-from-project-jetty.xml.erb
98
+ - spec/sample_projects/webapp/config/routes.rb
99
+ - spec/sample_projects/webapp/public/index.html
100
+ - spec/sample_projects/webapp/script/rails
101
+ - spec/spec_helper.rb
102
+ - spec/suite.rb
103
+ - spec/web_spec.rb
104
+ - web_inf_files/web.xml.erb
105
+ has_rdoc: true
106
+ homepage: https://github.com/square/jetpack
107
+ licenses: []
108
+
109
+ post_install_message:
110
+ rdoc_options: []
111
+
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
122
+ version: "0"
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ requirements: []
133
+
134
+ rubyforge_project:
135
+ rubygems_version: 1.6.2
136
+ signing_key:
137
+ specification_version: 3
138
+ summary: Jetpack prepares your jRuby project for jvm deployment.
139
+ test_files:
140
+ - spec/basics_spec.rb
141
+ - spec/bundler_spec.rb
142
+ - spec/ruby_19_spec.rb
143
+ - spec/sample_projects/has_gems_via_bundler/Gemfile
144
+ - spec/sample_projects/has_gems_via_bundler/Gemfile.lock
145
+ - spec/sample_projects/has_gems_via_bundler/Rakefile
146
+ - spec/sample_projects/has_gems_via_bundler/config/preflight.yml
147
+ - spec/sample_projects/has_gems_via_bundler/true}
148
+ - spec/sample_projects/has_gems_via_bundler_19/Gemfile
149
+ - spec/sample_projects/has_gems_via_bundler_19/Gemfile.lock
150
+ - spec/sample_projects/has_gems_via_bundler_19/Rakefile
151
+ - spec/sample_projects/has_gems_via_bundler_19/config/preflight.yml
152
+ - spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/Gemfile
153
+ - spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/Rakefile
154
+ - spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/config/preflight.yml
155
+ - spec/sample_projects/no_dependencies/Rakefile
156
+ - spec/sample_projects/no_dependencies/config/preflight.yml
157
+ - spec/sample_projects/webapp/Gemfile
158
+ - spec/sample_projects/webapp/Gemfile.lock
159
+ - spec/sample_projects/webapp/app/controllers/application_controller.rb
160
+ - spec/sample_projects/webapp/config.ru
161
+ - spec/sample_projects/webapp/config/application.rb
162
+ - spec/sample_projects/webapp/config/boot.rb
163
+ - spec/sample_projects/webapp/config/environment.rb
164
+ - spec/sample_projects/webapp/config/environments/development.rb
165
+ - spec/sample_projects/webapp/config/environments/test.rb
166
+ - spec/sample_projects/webapp/config/initializers/secret_token.rb
167
+ - spec/sample_projects/webapp/config/preflight.yml
168
+ - spec/sample_projects/webapp/config/preflight_files/vendor/jetty/etc/custom-project-specific-jetty.xml
169
+ - spec/sample_projects/webapp/config/preflight_files/vendor/jetty/etc/template-from-project-jetty.xml.erb
170
+ - spec/sample_projects/webapp/config/routes.rb
171
+ - spec/sample_projects/webapp/public/index.html
172
+ - spec/sample_projects/webapp/script/rails
173
+ - spec/spec_helper.rb
174
+ - spec/suite.rb
175
+ - spec/web_spec.rb