jetfuel 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +11 -0
  5. data/CONTRIBUTING.md +36 -0
  6. data/Gemfile +3 -0
  7. data/Gemfile.lock +131 -0
  8. data/LICENSE +21 -0
  9. data/NEWS.md +246 -0
  10. data/README.md +191 -0
  11. data/Rakefile +8 -0
  12. data/bin/jetfuel +18 -0
  13. data/bin/rake +16 -0
  14. data/bin/rspec +16 -0
  15. data/bin/setup +13 -0
  16. data/jetfuel.gemspec +37 -0
  17. data/lib/jetfuel/actions.rb +25 -0
  18. data/lib/jetfuel/app_builder.rb +400 -0
  19. data/lib/jetfuel/generators/app_generator.rb +227 -0
  20. data/lib/jetfuel/version.rb +5 -0
  21. data/lib/jetfuel.rb +4 -0
  22. data/spec/fakes/bin/heroku +5 -0
  23. data/spec/fakes/bin/hub +5 -0
  24. data/spec/features/github_spec.rb +10 -0
  25. data/spec/features/heroku_spec.rb +19 -0
  26. data/spec/features/new_project_spec.rb +68 -0
  27. data/spec/spec_helper.rb +24 -0
  28. data/spec/support/fake_github.rb +21 -0
  29. data/spec/support/fake_heroku.rb +38 -0
  30. data/spec/support/jetfuel.rb +49 -0
  31. data/templates/Brewfile +2 -0
  32. data/templates/Gemfile.erb +51 -0
  33. data/templates/Procfile +2 -0
  34. data/templates/README.md.erb +25 -0
  35. data/templates/_analytics.html.erb +7 -0
  36. data/templates/_flashes.html.erb +8 -0
  37. data/templates/_javascript.html.erb +12 -0
  38. data/templates/action_mailer.rb +5 -0
  39. data/templates/application.css.scss +7 -0
  40. data/templates/application_helper.rb +9 -0
  41. data/templates/background_jobs_rspec.rb +19 -0
  42. data/templates/bin_setup +32 -0
  43. data/templates/config_locales_en.yml +11 -0
  44. data/templates/database_cleaner_rspec.rb +21 -0
  45. data/templates/development_seeds.rb +13 -0
  46. data/templates/devise.rb +257 -0
  47. data/templates/disable_xml_params.rb +3 -0
  48. data/templates/errors.rb +28 -0
  49. data/templates/factory_girl_rspec.rb +3 -0
  50. data/templates/flashes.css.scss +4 -0
  51. data/templates/i18n.rb +3 -0
  52. data/templates/newrelic.yml.erb +34 -0
  53. data/templates/postgresql_database.yml.erb +12 -0
  54. data/templates/rack_timeout.rb +1 -0
  55. data/templates/sample.env +3 -0
  56. data/templates/secrets.yml +14 -0
  57. data/templates/smtp.rb +9 -0
  58. data/templates/spec_helper.rb +32 -0
  59. data/templates/staging.rb +5 -0
  60. data/templates/suspenders_gitignore +13 -0
  61. data/templates/suspenders_layout.html.erb.erb +16 -0
  62. data/templates/travis.yml.erb +31 -0
  63. data/templates/unicorn.rb +30 -0
  64. metadata +211 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 554c423db4f223986f9e3cf035101785d91bcb96
4
+ data.tar.gz: 83d56e5b973a4cbc6b2d568a45caf2c611efa6b0
5
+ SHA512:
6
+ metadata.gz: bc2e0602ba91b59cc32fb74e12ffbf77536c5ca4e6ff8946587884c0a47526e9341a4d6adcd0e06699c3c487855dd7dacfd535207319d7b686d6752c1eaf2b24
7
+ data.tar.gz: a6f7b482b71f0979a610de54c301c038f4a30915c7fbe214e9134133f977a65eb48888d161a538abf5d9f87d005b5e904d5a19527fadfb789afec68505a3992f
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ *.swp
3
+ /.bundle
4
+ /tmp/dummy
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.2
data/.travis.yml ADDED
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.2
4
+ before_install:
5
+ - "echo '--colour' > ~/.rspec"
6
+ - git config --global user.name 'Travis CI'
7
+ - git config --global user.email 'travis-ci@example.com'
8
+ install:
9
+ - bundle install
10
+ notifications:
11
+ email: false
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,36 @@
1
+ # Contributing
2
+
3
+ We love pull requests. Here's a quick guide.
4
+
5
+ Fork the repo:
6
+
7
+ git clone git@github.com:thoughtbot/suspenders.git
8
+
9
+ Set up your machine:
10
+
11
+ ./bin/setup
12
+
13
+ Make sure the tests pass:
14
+
15
+ rake
16
+
17
+ Make your change. Add tests for your change. Make the tests pass:
18
+
19
+ rake
20
+
21
+ Push to your fork and [submit a pull request][pr].
22
+
23
+ [pr]: https://github.com/thoughtbot/suspenders/compare/
24
+
25
+ At this point you're waiting on us. We like to at least comment on pull requests
26
+ within three business days (and, typically, one business day). We may suggest
27
+ some changes or improvements or alternatives.
28
+
29
+ Some things that will increase the chance that your pull request is accepted:
30
+
31
+ * Write tests.
32
+ * Follow our [style guide][style].
33
+ * Write a [good commit message][commit].
34
+
35
+ [style]: https://github.com/thoughtbot/guides/tree/master/style
36
+ [commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,131 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ jetfuel (1.18.0)
5
+ bundler (~> 1.3)
6
+ rails (= 4.1.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actionmailer (4.1.1)
12
+ actionpack (= 4.1.1)
13
+ actionview (= 4.1.1)
14
+ mail (~> 2.5.4)
15
+ actionpack (4.1.1)
16
+ actionview (= 4.1.1)
17
+ activesupport (= 4.1.1)
18
+ rack (~> 1.5.2)
19
+ rack-test (~> 0.6.2)
20
+ actionview (4.1.1)
21
+ activesupport (= 4.1.1)
22
+ builder (~> 3.1)
23
+ erubis (~> 2.7.0)
24
+ activemodel (4.1.1)
25
+ activesupport (= 4.1.1)
26
+ builder (~> 3.1)
27
+ activerecord (4.1.1)
28
+ activemodel (= 4.1.1)
29
+ activesupport (= 4.1.1)
30
+ arel (~> 5.0.0)
31
+ activesupport (4.1.1)
32
+ i18n (~> 0.6, >= 0.6.9)
33
+ json (~> 1.7, >= 1.7.7)
34
+ minitest (~> 5.1)
35
+ thread_safe (~> 0.1)
36
+ tzinfo (~> 1.1)
37
+ arel (5.0.1.20140414130214)
38
+ aruba (0.5.4)
39
+ childprocess (>= 0.3.6)
40
+ cucumber (>= 1.1.1)
41
+ rspec-expectations (>= 2.7.0)
42
+ builder (3.2.2)
43
+ capybara (2.3.0)
44
+ mime-types (>= 1.16)
45
+ nokogiri (>= 1.3.3)
46
+ rack (>= 1.0.0)
47
+ rack-test (>= 0.5.4)
48
+ xpath (~> 2.0)
49
+ childprocess (0.5.3)
50
+ ffi (~> 1.0, >= 1.0.11)
51
+ cucumber (1.3.15)
52
+ builder (>= 2.1.2)
53
+ diff-lcs (>= 1.1.3)
54
+ gherkin (~> 2.12)
55
+ multi_json (>= 1.7.5, < 2.0)
56
+ multi_test (>= 0.1.1)
57
+ diff-lcs (1.2.5)
58
+ erubis (2.7.0)
59
+ ffi (1.9.3)
60
+ gherkin (2.12.2)
61
+ multi_json (~> 1.3)
62
+ hike (1.2.3)
63
+ i18n (0.6.9)
64
+ json (1.8.1)
65
+ mail (2.5.4)
66
+ mime-types (~> 1.16)
67
+ treetop (~> 1.4.8)
68
+ mime-types (1.25.1)
69
+ mini_portile (0.6.0)
70
+ minitest (5.3.5)
71
+ multi_json (1.10.1)
72
+ multi_test (0.1.1)
73
+ nokogiri (1.6.2.1)
74
+ mini_portile (= 0.6.0)
75
+ polyglot (0.3.5)
76
+ rack (1.5.2)
77
+ rack-test (0.6.2)
78
+ rack (>= 1.0)
79
+ rails (4.1.1)
80
+ actionmailer (= 4.1.1)
81
+ actionpack (= 4.1.1)
82
+ actionview (= 4.1.1)
83
+ activemodel (= 4.1.1)
84
+ activerecord (= 4.1.1)
85
+ activesupport (= 4.1.1)
86
+ bundler (>= 1.3.0, < 2.0)
87
+ railties (= 4.1.1)
88
+ sprockets-rails (~> 2.0)
89
+ railties (4.1.1)
90
+ actionpack (= 4.1.1)
91
+ activesupport (= 4.1.1)
92
+ rake (>= 0.8.7)
93
+ thor (>= 0.18.1, < 2.0)
94
+ rake (10.3.2)
95
+ rspec (2.99.0)
96
+ rspec-core (~> 2.99.0)
97
+ rspec-expectations (~> 2.99.0)
98
+ rspec-mocks (~> 2.99.0)
99
+ rspec-core (2.99.0)
100
+ rspec-expectations (2.99.0)
101
+ diff-lcs (>= 1.1.3, < 2.0)
102
+ rspec-mocks (2.99.0)
103
+ sprockets (2.12.1)
104
+ hike (~> 1.2)
105
+ multi_json (~> 1.0)
106
+ rack (~> 1.0)
107
+ tilt (~> 1.1, != 1.3.0)
108
+ sprockets-rails (2.1.3)
109
+ actionpack (>= 3.0)
110
+ activesupport (>= 3.0)
111
+ sprockets (~> 2.8)
112
+ thor (0.19.1)
113
+ thread_safe (0.3.4)
114
+ tilt (1.4.1)
115
+ treetop (1.4.15)
116
+ polyglot
117
+ polyglot (>= 0.3.1)
118
+ tzinfo (1.2.1)
119
+ thread_safe (~> 0.1)
120
+ xpath (2.0.0)
121
+ nokogiri (~> 1.3)
122
+
123
+ PLATFORMS
124
+ ruby
125
+
126
+ DEPENDENCIES
127
+ aruba (~> 0.5)
128
+ capybara (~> 2.2, >= 2.2.0)
129
+ cucumber (~> 1.2)
130
+ jetfuel!
131
+ rspec (~> 2.0)
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2010-2012 Mike Burns and thoughtbot, inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/NEWS.md ADDED
@@ -0,0 +1,246 @@
1
+ 1.14.0 (June 11, 2014)
2
+
3
+ * Set up Bitters during Suspenders setup. http://bitters.bourbon.io/
4
+ * Remove SimpleCov.
5
+ * Force Suspenders to use a particular Rails version (4.1.1).
6
+ * Use RSpec 2.x until Travis/Capybara issues resolve.
7
+ * Set `viewport` to `initial-scale=1`.
8
+
9
+ 1.13.0 (May 29, 2014)
10
+
11
+ * Remove `FactoryGirl.lint` in `before(:suite)` in order to avoid paying and
12
+ estimated extra ~300ms load time on a typical thoughtbot app.
13
+ * Automatically join Heroku app in `bin/setup` if using Heroku organizations.
14
+
15
+ 1.12.0 (May 26, 2014)
16
+
17
+ * Fix `rake dev:prime` now that Suspenders-generated apps require some `ENV`
18
+ variables to be set.
19
+ * Ensure `EMAIL_RECIPIENTS` is set on staging.
20
+ * Clear `ActionMailer` deliveries before every test.
21
+ * Include New Relic configuration file.
22
+ * Add Formulaic gem for integration testing HTML forms.
23
+ * Set up the Segment.io adapter for analytics and event tracking through
24
+ services such as Google Analytics and Intercom.
25
+ * Prepare staging and production environments to serve static assets through a
26
+ CDN.
27
+
28
+ 1.11.0 (May 17, 2014)
29
+
30
+ * Generate a Rails 4.1.1 app and implement fixes for compatibility.
31
+ * Escape ERb in secrets.yml
32
+ * Maintain ActiveRecord test schema.
33
+ * Make Shoulda Matchers work with Spring.
34
+ * Unify Ruby version for gem and suspended apps.
35
+ * Move SMTP variable settings out of initializer.
36
+ * Connect to Postgres on localhost.
37
+ * Add `bin/setup` for contributors.
38
+ * Improve and document TravisCI configuration.
39
+
40
+ 1.10.2 (April 28, 2014)
41
+
42
+ * Fix bundling Bourbon and Neat.
43
+
44
+ 1.10.1 (April 25, 2014)
45
+
46
+ * Fix bundling sass-rails.
47
+
48
+ 1.10.0 (April 21, 2014)
49
+
50
+ * Generate a Rails 4.1 app.
51
+ * Generate a working .ruby-version for Ruby >= 2.1.0.
52
+ * Update Unicorn template to version now preferred by Heroku.
53
+
54
+ 1.9.3 (April 13, 2014)
55
+
56
+ * Use FactoryGirl.lint instead of custom-generated factory-testing code.
57
+ * Fix Delayed::Job <-> Rails 4.1 dependency conflict.
58
+
59
+ 1.9.2 (April 10, 2014)
60
+
61
+ * Join Heroku apps in bin/setup.
62
+ * Enable SMTP/TLS in SMTP settings.
63
+ * Silence an RSpec warning.
64
+
65
+ 1.9.1 (April 7, 2014)
66
+
67
+ * Fix sass-rails environment NilClass error.
68
+
69
+ 1.9.0 (March 24, 2014)
70
+
71
+ * Add `awesome_print` gem.
72
+ * Add `dev:prime` task placeholder for bootstrapping local dev data.
73
+ * Add fix for I18n deprecation warning from `enforce_available_locales`.
74
+ * Add generated `.travis.yml`.
75
+ * Remove `better_errors` because of issues with Unicorn.
76
+ * Remove fast-failing for RSpec; respect user's `~/.rspec` instead.
77
+ * Update New Relic agent.
78
+ * Update Rails to 4.0.3.
79
+
80
+ 1.8.1 (February 19, 2014)
81
+
82
+ * Don't distribute rspec binstub with gem.
83
+
84
+ 1.8.0 (February 18, 2014)
85
+
86
+ * Make the .git/safe directory in bin/setup.
87
+ * Require `rails_12factor` gem only on Heroku.
88
+ * Require mailer config on staging and production.
89
+ * Add rspec binstub.
90
+ * Fix .ruby-version on Ruby 2.1.0.
91
+ * Replace Flutie's `page_title` with `title` gem.
92
+ * Don't run factory specs twice.
93
+ * Inherit staging config from production.
94
+ * Internal: convert tests from Cucumber to RSpec.
95
+ * Don't include `prefilled_input.js`.
96
+ * Fix Rack class name - Deflater instead of Timeout.
97
+ * Add Pry Rails.
98
+ * Add Spring.
99
+ * Add Dotenv to development and test environments to load environment variables
100
+ from the `.env` file.
101
+ * Reduce ActiveRecord connection pool from 5 to 2.
102
+
103
+ 1.7.0 (December 6, 2013)
104
+
105
+ * Keep `db/schema.rb` under version control.
106
+ * Fast-fail if any part of `bin/setup` fails.
107
+ * Move secret key out of version control.
108
+ * Create `.ruby-version` in generated applications.
109
+ * Add placeholder modules and directories for feature specs.
110
+ * Improve README to include setup instructions.
111
+
112
+ 1.6.0 (November 28, 2013)
113
+
114
+ * Do not create `.rspec` file as the settings are not project-specific.
115
+ * Generate RSpec binstub at `bin/rspec`.
116
+ * Fix stylesheet error on 500, 404, and 422 static pages.
117
+ * Add `--skip-git` option.
118
+ * Disable jQuery animations in Rails integration tests that execute JavaScript.
119
+ * Fix git remote bug.
120
+ * Add `Rack::Deflater` to compress responses with Gzip.
121
+
122
+ 1.5.1 (September 10, 2013)
123
+
124
+ * Remove Turbolinks.
125
+ * Don't use Bundler's binstubs in `bin/setup`.
126
+ * Remove `--drb` now that we aren't using Spork.
127
+ * Set up DNS via Pow for development.
128
+ * Update gem versions.
129
+
130
+ 1.5.0 (August 3, 2013)
131
+
132
+ * Add Neat.
133
+ * Replace Bourne with RSpec Mocks.
134
+ * Replace Sham Rack with WebMock.
135
+ * Remove dependency on `hub` gem.
136
+ * Clean up leftover Rails 3 conventions.
137
+
138
+ 1.4.0 (July 21, 2013)
139
+
140
+ * Support Rails 4.
141
+ * Support Ruby 2.
142
+ * Remove jQuery UI.
143
+ * Factories spec works for non-ActiveRecord objects.
144
+ * Use New Relic RPM gem >= 3.5.7 for Heroku request queue accuracy.
145
+ * Abort RSpec runs on first failure.
146
+ * Replace custom email validator with gem.
147
+
148
+ 1.3.0 (May 13, 2013)
149
+
150
+ * Switch web server from Thin to Unicorn
151
+ * Set up database before setting up RSpec so that the rspec:install task works
152
+ * Add Delayed::Job
153
+ * Clean up cruft from ActionMailer delivery configuration
154
+ * strong_parameters now raises an error in development
155
+ * Enforce Ruby 1.9.2+ in the gemspec
156
+
157
+ 1.2.2 (March 14, 2013)
158
+
159
+ * Fix Syntax error in staging/production environment config files.
160
+ * Make Factory Girl available to development environment for generators and
161
+ `rails console`.
162
+
163
+ 1.2.1 (February 28, 2013)
164
+
165
+ * Use Ruby 1.9.3 and 2.0
166
+ * Update staging and production email delivery
167
+ * Remove Spork and Guard
168
+ * Add better_errors and binding_of_caller gems
169
+ * Fix ActiveRecord attributes' blacklist
170
+ * Add Flutie to Gemfile
171
+
172
+ 1.2.0 (February 13, 2013)
173
+
174
+ * Upgrade Rails from 3.2.8 to 3.2.12 to keep pace with security patches.
175
+ * Improve staging environment on Heroku with staging `ENV` variables and
176
+ overriding the recipient in staging email delivery.
177
+ * Remove Flutie, use Bourbon.
178
+ * Wrap all HTTP requests in a 5 second timeout.
179
+ * Don't use `attr_accessible` whitelists. Instead, configure Strong Parameters.
180
+ * Provide a `bin/setup` script.
181
+ * Force RSpec's `expect` syntax.
182
+ * Remove remaining references to Cucumber, complete RSpec + Capybara conversion.
183
+ * Improve Foreman/`.env`/`Procfile` interactions.
184
+
185
+ 1.1.5 (October 22, 2012)
186
+
187
+ * Ignore `.env`.
188
+ * Link to thoughtbot/guides in generated README.
189
+ * Remove Cucumber in favor of RSpec + Capybara.
190
+ * Deliver emails in staging environment to an overriden email or set of emails.
191
+ * Encode database as UTF8.
192
+ * Bundle with binstubs using 37signals' directory convention.
193
+ * Configure time formats using localization.
194
+ * Add Ruby version to Gemfile.
195
+ * Add fast-failing spec that tests validity of factories.
196
+ * Use SimpleCov for C0 coverage.
197
+ * Configure RSpec with `--profile` flag to find slow-running specs.
198
+
199
+ 1.1.4 (September 4, 2012)
200
+
201
+ * Always store UTC in the DB.
202
+ * Use Rails 3.2.8.
203
+
204
+ 1.1.3 (August 7, 2012)
205
+
206
+ * Fix broken Gemfile additions where capybara stole cucumber's `require: false`
207
+
208
+ 1.1.2 (August 6, 2012)
209
+
210
+ * Fix broken rake.
211
+ * Use Heroku-compliant asset pipeline settings.
212
+
213
+ 1.1.1 (August 3, 2012)
214
+
215
+ * Fix broken newline interpolation
216
+
217
+ 1.1.0 (August 3, 2012)
218
+
219
+ * Add --github option.
220
+ * Add --webkit option.
221
+ * Remove cruft when generating controllers.
222
+ * Add Spork and Guard.
223
+
224
+ 1.0.1 (August 2, 2012)
225
+
226
+ * Fix broken install on Ruby 1.8.
227
+ * Remove db/schema.rb from .gitignore.
228
+ * Remove Factory Girl step definitions.
229
+
230
+ 1.0.0 (June 29, 2012)
231
+
232
+ * Ignore `bin/`, `.rake_tasks`, `.bundle/`, and `.gem/`.
233
+ * Create a root route only with `--clearance`.
234
+ * Do not autocommit after generate.
235
+ * Style static error pages.
236
+ * Cucumber requires everything under `features/`, regardless of pwd.
237
+ * Added gems:
238
+ * `foreman`
239
+ * `therubyracer`
240
+ * Removed gems:
241
+ * `copycopter_client`
242
+ * `heroku`
243
+ * `ruby-debug`
244
+ * `sass`
245
+ * `sprockets-redirect`
246
+ * `email_spec`
data/README.md ADDED
@@ -0,0 +1,191 @@
1
+ # Jetfuel [![Build Status](https://secure.travis-ci.org/thoughtbot/suspenders.png?branch=master)](http://travis-ci.org/thoughtbot/suspenders)
2
+
3
+ Jetfuel is the base Rails application used at [flyoverworks](http://flyoverworks.com/).
4
+
5
+ Installation
6
+ ------------
7
+
8
+ First, install the gem:
9
+
10
+ gem install jetfuel
11
+
12
+ Then run:
13
+
14
+ jetfuel projectname
15
+
16
+ This will create a Rails app in `projectname` using the latest version of Rails.
17
+
18
+ By default this script creates a new git repository. See below if you
19
+ want to use it against an existing repo.
20
+
21
+ Gemfile
22
+ -------
23
+
24
+ To see the latest and greatest gems, look at Jetfuel's
25
+ [Gemfile](templates/Gemfile.erb), which will be appended to the default
26
+ generated projectname/Gemfile.
27
+
28
+ It includes application gems like:
29
+
30
+ * [Airbrake](https://github.com/airbrake/airbrake) for exception notification
31
+ * [Bourbon](https://github.com/thoughtbot/bourbon) for Sass mixins
32
+ * [Twitter Bootstrap](https://getbootstrap.com) for scaffold application styles
33
+ * [Delayed Job](https://github.com/collectiveidea/delayed_job) for background
34
+ processing
35
+ * [Email Validator](https://github.com/balexand/email_validator) for email
36
+ validation
37
+ * [Flutie](https://github.com/thoughtbot/flutie) for and `body_class` view
38
+ helper
39
+ * [High Voltage](https://github.com/thoughtbot/high_voltage) for static pages
40
+ * [jQuery Rails](https://github.com/rails/jquery-rails) for jQuery
41
+ * [Neat](https://github.com/thoughtbot/neat) for semantic grids
42
+ * [Postgres](https://github.com/ged/ruby-pg) for access to the Postgres database
43
+ * [Rack Timeout](https://github.com/kch/rack-timeout) to abort requests that are
44
+ taking too long
45
+ * [Recipient Interceptor](https://github.com/croaky/recipient_interceptor) to
46
+ avoid accidentally sending emails to real people from staging
47
+ * [Simple Form](https://github.com/plataformatec/simple_form) for form markup
48
+ and style
49
+ * [Title](https://github.com/calebthompson/title) for storing titles in
50
+ translations
51
+ * [Unicorn](https://github.com/defunkt/unicorn) to serve HTTP requests
52
+
53
+ And gems only for staging and production like:
54
+
55
+ * [New Relic RPM](https://github.com/newrelic/rpm) for monitoring performance
56
+ * [Rails 12 Factor](https://github.com/heroku/rails_12factor) to make running
57
+ Rails 4 apps easier on Heroku
58
+
59
+ And development gems like:
60
+
61
+ * [Dotenv](https://github.com/bkeepers/dotenv) for loading environment variables
62
+ * [Pry Rails](https://github.com/rweng/pry-rails) for debugging
63
+ * [Spring](https://github.com/rails/spring) for fast Rails actions via
64
+ pre-loading
65
+
66
+ And testing gems like:
67
+
68
+ * [Capybara](https://github.com/jnicklas/capybara) and
69
+ [Capybara Webkit](https://github.com/thoughtbot/capybara-webkit) for
70
+ integration testing
71
+ * [Factory Girl](https://github.com/thoughtbot/factory_girl) for test data
72
+ * [Formulaic](https://github.com/thoughtbot/formulaic) for integration testing
73
+ HTML forms
74
+ * [RSpec](https://github.com/rspec/rspec) for unit testing
75
+ * [RSpec Mocks](https://github.com/rspec/rspec-mocks) for stubbing and spying
76
+ * [Shoulda Matchers](https://github.com/thoughtbot/shoulda-matchers) for common
77
+ RSpec matchers
78
+ * [Timecop](https://github.com/jtrupiano/timecop-console) for testing time
79
+
80
+ Other goodies
81
+ -------------
82
+
83
+ Jetfuel also comes with:
84
+
85
+ * The [`./bin/setup`][bin] convention for new developer setup
86
+ * Rails' flashes set up and in application layout
87
+ * A few nice time formats set up for localization
88
+ * `Rack::Deflater` to [compress responses with Gzip][compress]
89
+ * [Fast-failing factories][fast]
90
+ * A [low database connection pool limit][pool]
91
+ * [Safe binstubs][binstub]
92
+ * [t() and l() in specs without prefixing with I18n][i18n]
93
+ * An automatically-created `SECRET_KEY_BASE` environment variable in all
94
+ environments.
95
+ * Configuration for [Travis Pro][travis] continuous integration.
96
+ * The analytics adapter [Segment.io][segment] (and therefore config for Google
97
+ Analytics, Intercom, Facebook Ads, Twitter Ads, etc.).
98
+
99
+ [bin]: http://robots.thoughtbot.com/bin-setup
100
+ [compress]: http://robots.thoughtbot.com/content-compression-with-rack-deflater/
101
+ [fast]: http://robots.thoughtbot.com/testing-your-factories-first
102
+ [pool]: https://devcenter.heroku.com/articles/concurrency-and-database-connections
103
+ [binstub]: https://github.com/thoughtbot/suspenders/pull/282
104
+ [i18n]: https://github.com/thoughtbot/suspenders/pull/304
105
+ [travis]: http://docs.travis-ci.com/user/travis-pro/
106
+ [segment]: https://segment.io
107
+
108
+ Heroku
109
+ ------
110
+
111
+ You can optionally create Heroku staging and production apps:
112
+
113
+ jetfuel app --heroku true
114
+
115
+ This:
116
+
117
+ * Creates a staging and production Heroku app
118
+ * Sets them as `staging` and `production` Git remotes
119
+ * Configures staging with `RACK_ENV` and `RAILS_ENV` environment variables set
120
+ to `staging`
121
+
122
+ Git
123
+ ---
124
+
125
+ This will initialize a new git repository for your Rails app. You can
126
+ bypass this with the `--skip-git` option:
127
+
128
+ jetfuel app --skip-git true
129
+
130
+ GitHub
131
+ ------
132
+
133
+ You can optionally create a GitHub repository for the suspended Rails app. It
134
+ requires that you have [Hub](https://github.com/github/hub) on your system:
135
+
136
+ curl http://hub.github.com/standalone -sLo ~/bin/hub && chmod +x ~/bin/hub
137
+ jetfuel app --github organization/project
138
+
139
+ This has the same effect as running:
140
+
141
+ hub create organization/project
142
+
143
+ Dependencies
144
+ ------------
145
+
146
+ Jetfuel requires the latest version of Ruby.
147
+
148
+ Some gems included in Jetfuel have native extensions. You should have GCC
149
+ installed on your machine before generating an app with Jetfuel.
150
+
151
+ Use [OS X GCC Installer](https://github.com/kennethreitz/osx-gcc-installer/) for
152
+ Snow Leopard (OS X 10.6).
153
+
154
+ Use [Command Line Tools for XCode](https://developer.apple.com/downloads/index.action)
155
+ for Lion (OS X 10.7) or Mountain Lion (OS X 10.8).
156
+
157
+ We use [Capybara Webkit](https://github.com/thoughtbot/capybara-webkit) for
158
+ full-stack JavaScript integration testing. It requires QT. Instructions for
159
+ installing QT are
160
+ [here](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit).
161
+
162
+ PostgreSQL needs to be installed and running for the `db:create` rake task.
163
+
164
+ Issues
165
+ ------
166
+
167
+ If you have problems, please create a
168
+ [GitHub Issue](https://github.com/thoughtbot/suspenders/issues).
169
+
170
+ Contributing
171
+ ------------
172
+
173
+ To update Jetfuel's Ruby version, change `.ruby-version` and `.travis.yml`.
174
+
175
+ Please see CONTRIBUTING.md for further details.
176
+
177
+ Credits
178
+ -------
179
+
180
+ ![thoughtbot](http://thoughtbot.com/images/tm/logo.png)
181
+
182
+ Jetfuel is maintained and funded by
183
+ [flyoverworks, inc](http://flyoverworks.com/).
184
+
185
+ The names and logos for thoughtbot are trademarks of thoughtbot, inc.
186
+
187
+ License
188
+ -------
189
+
190
+ Jetfuel is Copyright © 2008-2014 thoughtbot. It is free software, and may be
191
+ redistributed under the terms specified in the LICENSE file.
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require 'bundler/setup'
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:rspec)
6
+
7
+ desc 'Run the test suite'
8
+ task :default => :rspec
data/bin/jetfuel ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+
4
+ source_path = (Pathname.new(__FILE__).dirname + '../lib').expand_path
5
+ $LOAD_PATH << source_path
6
+
7
+ require 'jetfuel'
8
+
9
+ if ['create', '--create'].include? ARGV[0]
10
+ ARGV.shift
11
+ puts "[WARNING] the jetfuel create argument is deprecated. Just use `jetfuel #{ARGV.join}` instead"
12
+ end
13
+
14
+ templates_root = File.expand_path(File.join("..", "templates"), File.dirname(__FILE__))
15
+ Jetfuel::AppGenerator.source_root templates_root
16
+ Jetfuel::AppGenerator.source_paths << Rails::Generators::AppGenerator.source_root << templates_root
17
+
18
+ Jetfuel::AppGenerator.start