gb-firestarter 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +19 -0
  5. data/CONTRIBUTING.md +38 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +133 -0
  8. data/README.md +7 -36
  9. data/Rakefile +8 -0
  10. data/bin/rspec +16 -0
  11. data/firestarter.gemspec +34 -0
  12. data/lib/firestarter/actions.rb +35 -0
  13. data/lib/firestarter/app_builder.rb +297 -0
  14. data/lib/firestarter/generators/app_generator.rb +186 -0
  15. data/lib/firestarter/version.rb +4 -0
  16. data/lib/firestarter.rb +4 -0
  17. data/spec/features/new_project_spec.rb +38 -0
  18. data/spec/spec_helper.rb +21 -0
  19. data/spec/support/firestarter.rb +49 -0
  20. data/templates/Gemfile.erb +55 -0
  21. data/templates/Procfile +1 -0
  22. data/templates/README.md.erb +25 -0
  23. data/templates/Rakefile.erb +10 -0
  24. data/templates/_flashes.slim +3 -0
  25. data/templates/_javascript.slim +9 -0
  26. data/templates/application.sass +3 -0
  27. data/templates/bin_setup +17 -0
  28. data/templates/config_locales_en.yml +11 -0
  29. data/templates/database_cleaner_rspec.rb +21 -0
  30. data/templates/development_seeds.rb +13 -0
  31. data/templates/disable_xml_params.rb +3 -0
  32. data/templates/errors.rb +28 -0
  33. data/templates/factories_spec.rb +13 -0
  34. data/templates/factories_spec_rake_task.rb +15 -0
  35. data/templates/factory_girl_syntax_rspec.rb +3 -0
  36. data/templates/firestarter_gitignore +18 -0
  37. data/templates/firestarter_layout.slim.erb +12 -0
  38. data/templates/i18n.rb +3 -0
  39. data/templates/postgresql_database.yml.erb +12 -0
  40. data/templates/puma.rb +18 -0
  41. data/templates/rack_timeout.rb +1 -0
  42. data/templates/ruby-version.erb +1 -0
  43. data/templates/sample.env +3 -0
  44. data/templates/secret_token.rb +10 -0
  45. data/templates/smtp.rb +10 -0
  46. data/templates/spec_helper.rb +42 -0
  47. data/templates/staging.rb +3 -0
  48. metadata +78 -38
@@ -0,0 +1,9 @@
1
+ = javascript_include_tag :application
2
+
3
+ = yield :javascript
4
+
5
+ - if Rails.env.test?
6
+ javascript:
7
+ $.fx.off = true;
8
+ $.ajaxSetup({ async: false });
9
+
@@ -0,0 +1,3 @@
1
+ @charset 'utf-8'
2
+
3
+ @import bourbon
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env sh
2
+
3
+ # Set up Rails app. Run this script immediately after cloning the codebase.
4
+ # https://github.com/groupbuddies/guides/tree/master/protocol
5
+
6
+ # Exit if any subcommand fails
7
+ set -e
8
+
9
+ # Set up Ruby dependencies via Bundler
10
+ bundle check || bundle install
11
+
12
+ # Add binstubs to PATH via export PATH=".git/safe/../../bin:$PATH" in ~/.zshenv
13
+ mkdir -p .git/safe
14
+
15
+ bundle exec rake db:setup
16
+ bundle exec rake db:test:prepare
17
+ bundle exec rake dev:setup
@@ -0,0 +1,11 @@
1
+ en:
2
+ date:
3
+ formats:
4
+ default: '%m/%d/%Y'
5
+ with_weekday: '%a %m/%d/%y'
6
+
7
+ time:
8
+ formats:
9
+ default: '%a, %b %-d, %Y at %r'
10
+ date: '%b %-d, %Y'
11
+ short: '%B %d'
@@ -0,0 +1,21 @@
1
+ RSpec.configure do |config|
2
+ config.before(:suite) do
3
+ DatabaseCleaner.clean_with(:deletion)
4
+ end
5
+
6
+ config.before(:each) do
7
+ DatabaseCleaner.strategy = :transaction
8
+ end
9
+
10
+ config.before(:each, :js => true) do
11
+ DatabaseCleaner.strategy = :deletion
12
+ end
13
+
14
+ config.before(:each) do
15
+ DatabaseCleaner.start
16
+ end
17
+
18
+ config.after(:each) do
19
+ DatabaseCleaner.clean
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ if Rails.env.development?
2
+ require 'factory_girl'
3
+
4
+ namespace :dev do
5
+ desc 'Seed data for development environment'
6
+ task setup: 'db:setup' do
7
+ FactoryGirl.find_definitions
8
+ include FactoryGirl::Syntax::Methods
9
+
10
+ # create(:user, email: 'user@example.com', password: 'password')
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ # Protect against injection attacks
2
+ # http://www.kb.cert.org/vuls/id/380039
3
+ ActionDispatch::ParamsParser::DEFAULT_PARSERS.delete(Mime::XML)
@@ -0,0 +1,28 @@
1
+ require 'net/http'
2
+ require 'net/smtp'
3
+
4
+ # Example:
5
+ # begin
6
+ # some http call
7
+ # rescue *HTTP_ERRORS => error
8
+ # notify_hoptoad error
9
+ # end
10
+
11
+ HTTP_ERRORS = [Timeout::Error,
12
+ Errno::EINVAL,
13
+ Errno::ECONNRESET,
14
+ EOFError,
15
+ Net::HTTPBadResponse,
16
+ Net::HTTPHeaderSyntaxError,
17
+ Net::ProtocolError]
18
+
19
+ SMTP_SERVER_ERRORS = [TimeoutError,
20
+ IOError,
21
+ Net::SMTPUnknownError,
22
+ Net::SMTPServerBusy,
23
+ Net::SMTPAuthenticationError]
24
+
25
+ SMTP_CLIENT_ERRORS = [Net::SMTPFatalError,
26
+ Net::SMTPSyntaxError]
27
+
28
+ SMTP_ERRORS = SMTP_SERVER_ERRORS + SMTP_CLIENT_ERRORS
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'factories' do
4
+ FactoryGirl.factories.map(&:name).each do |factory_name|
5
+ specify "#{factory_name} factory is valid", :factory do
6
+ factory = build(factory_name)
7
+
8
+ if factory.respond_to?(:valid?)
9
+ expect(factory).to be_valid, factory.errors.full_messages.join(',')
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ if defined?(RSpec)
2
+ task(:spec).clear
3
+
4
+ desc 'Run all specs'
5
+ RSpec::Core::RakeTask.new(:spec) do |t|
6
+ t.rspec_opts = '--tag ~factory'
7
+ end
8
+
9
+ desc 'Run factory specs.'
10
+ RSpec::Core::RakeTask.new(:factory_specs) do |t|
11
+ t.pattern = './spec/models/factories_spec.rb'
12
+ end
13
+
14
+ task spec: :factory_specs
15
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.include FactoryGirl::Syntax::Methods
3
+ end
@@ -0,0 +1,18 @@
1
+ !.keep
2
+ *.DS_Store
3
+ *.swo
4
+ *.swp
5
+ /.bundle
6
+ /.env
7
+ /.foreman
8
+ /coverage/*
9
+ /db/*.sqlite3
10
+ /log/*
11
+ /public/system
12
+ /tags
13
+ /tmp/*
14
+ /public/system/*
15
+ /public/uploads/*
16
+ /public/assets/source_maps
17
+ /spec/tmp/*
18
+ .ruby-gemset
@@ -0,0 +1,12 @@
1
+ doctype html
2
+ html
3
+ head
4
+ meta charset="utf-8"
5
+ meta name="ROBOTS" content="NOODP"
6
+ title = title
7
+ = stylesheet_link_tag :application, media: 'all'
8
+ = csrf_meta_tags
9
+ body
10
+ = render 'flashes'
11
+ = yield
12
+ = render 'javascript'
data/templates/i18n.rb ADDED
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.include AbstractController::Translation
3
+ end
@@ -0,0 +1,12 @@
1
+ development: &default
2
+ adapter: postgresql
3
+ database: <%= app_name %>_development
4
+ encoding: utf8
5
+ host: localhost
6
+ min_messages: warning
7
+ pool: 2
8
+ timeout: 5000
9
+
10
+ test:
11
+ <<: *default
12
+ database: <%= app_name %>_test
data/templates/puma.rb ADDED
@@ -0,0 +1,18 @@
1
+ workers Integer(ENV['PUMA_WORKERS'] || 3)
2
+ threads Integer(ENV['MIN_THREADS'] || 1), Integer(ENV['MAX_THREADS'] || 16)
3
+
4
+ preload_app!
5
+
6
+ environment ENV['RAILS_ENV'] || 'development'
7
+
8
+ if %w(production staging).include?(ENV['RAILS_ENV'])
9
+ bind "unix:///var/www/#{ENV['APP_NAME']}/shared/sockets/puma.sock"
10
+ else
11
+ port ENV['PORT'] || 3000
12
+ end
13
+
14
+ on_worker_boot do
15
+ ActiveSupport.on_load(:active_record) do
16
+ ActiveRecord::Base.establish_connection
17
+ end
18
+ end
@@ -0,0 +1 @@
1
+ Rack::Timeout.timeout = (ENV['TIMEOUT_IN_SECONDS'] || 5).to_i
@@ -0,0 +1 @@
1
+ <%= ruby_version_with_patch_level %>
@@ -0,0 +1,3 @@
1
+ # http://ddollar.github.com/foreman/
2
+ RACK_ENV=development
3
+ SECRET_KEY_BASE=development_secret
@@ -0,0 +1,10 @@
1
+ # Your secret key is used for verifying the integrity of signed cookies.
2
+ # If you change this key, all old signed cookies will become invalid!
3
+
4
+ # Make sure the secret is at least 30 characters and all random,
5
+ # no regular words or you'll be exposed to dictionary attacks.
6
+ # You can use `rake secret` to generate a secure secret key.
7
+
8
+ # Make sure your secret_key_base is kept private
9
+ # if you're sharing your code publicly.
10
+ <%= app_const %>.config.secret_key_base = ENV['SECRET_KEY_BASE']
data/templates/smtp.rb ADDED
@@ -0,0 +1,10 @@
1
+ if Rails.env.staging? || Rails.env.production?
2
+ SMTP_SETTINGS = {
3
+ address: ENV.fetch('SMTP_ADDRESS'), # example: 'smtp.sendgrid.net'
4
+ authentication: :plain,
5
+ domain: ENV.fetch('SMTP_DOMAIN'), # example: 'this-app.com'
6
+ password: ENV.fetch('SMTP_PASSWORD'),
7
+ port: '587',
8
+ user_name: ENV.fetch('SMTP_USERNAME')
9
+ }
10
+ end
@@ -0,0 +1,42 @@
1
+ require 'simplecov'
2
+ SimpleCov.start 'rails'
3
+
4
+ ENV['RAILS_ENV'] = 'test'
5
+
6
+ require File.expand_path('../../config/environment', __FILE__)
7
+
8
+ require 'rspec/rails'
9
+ require 'rspec/autorun'
10
+ require 'capybara/webkit/matchers'
11
+
12
+ Dir[Rails.root.join('spec/support/**/*.rb')].each { |file| require file }
13
+
14
+ module Features
15
+ # Extend this module in spec/support/features/*.rb
16
+ include Capybara::Webkit::RspecMatchers
17
+ end
18
+
19
+ RSpec.configure do |config|
20
+ config.expect_with :rspec do |c|
21
+ c.syntax = :expect
22
+ end
23
+
24
+ config.include Features, type: :feature
25
+ config.infer_base_class_for_anonymous_controllers = false
26
+ config.order = 'random'
27
+ config.use_transactional_fixtures = false
28
+
29
+ config.before(:each) do
30
+ Capybara.current_driver = select_driver
31
+ end
32
+ end
33
+
34
+ def select_driver
35
+ if example.metadata[:js]
36
+ if example.metadata[:js] == :selenium
37
+ :selenium
38
+ else
39
+ :webkit
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,3 @@
1
+ require_relative 'production'
2
+
3
+ Mail.register_interceptor RecipientInterceptor.new(ENV['EMAIL_RECIPIENTS'])
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gb-firestarter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - groupbuddies
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-25 00:00:00.000000000 Z
11
+ date: 2014-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
@@ -30,70 +30,62 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 4.0.3
33
+ version: 4.1.8
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 4.0.3
40
+ version: 4.1.8
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: aruba
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.5.2
47
+ version: 0.5.4
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.5.2
55
- - !ruby/object:Gem::Dependency
56
- name: cucumber
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '1.2'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '1.2'
54
+ version: 0.5.4
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rspec
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - '>='
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
61
+ version: '2.0'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - '>='
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: '2.0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: capybara
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - '>='
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.2'
76
+ - - ">="
88
77
  - !ruby/object:Gem::Version
89
- version: '0'
78
+ version: 2.2.0
90
79
  type: :development
91
80
  prerelease: false
92
81
  version_requirements: !ruby/object:Gem::Requirement
93
82
  requirements:
94
- - - '>='
83
+ - - "~>"
95
84
  - !ruby/object:Gem::Version
96
- version: '0'
85
+ version: '2.2'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 2.2.0
97
89
  description: |
98
90
  Firestarter is the way to get great apps up and running in a heartbeat. It's
99
91
  what we use at Group Buddies.
@@ -105,32 +97,80 @@ extra_rdoc_files:
105
97
  - README.md
106
98
  - LICENSE
107
99
  files:
108
- - README.md
100
+ - ".gitignore"
101
+ - ".ruby-version"
102
+ - ".travis.yml"
103
+ - CONTRIBUTING.md
104
+ - Gemfile
105
+ - Gemfile.lock
109
106
  - LICENSE
107
+ - README.md
108
+ - Rakefile
110
109
  - bin/firestarter
110
+ - bin/rspec
111
+ - firestarter.gemspec
112
+ - lib/firestarter.rb
113
+ - lib/firestarter/actions.rb
114
+ - lib/firestarter/app_builder.rb
115
+ - lib/firestarter/generators/app_generator.rb
116
+ - lib/firestarter/version.rb
117
+ - spec/features/new_project_spec.rb
118
+ - spec/spec_helper.rb
119
+ - spec/support/firestarter.rb
120
+ - templates/Gemfile.erb
121
+ - templates/Procfile
122
+ - templates/README.md.erb
123
+ - templates/Rakefile.erb
124
+ - templates/_flashes.slim
125
+ - templates/_javascript.slim
126
+ - templates/application.sass
127
+ - templates/bin_setup
128
+ - templates/config_locales_en.yml
129
+ - templates/database_cleaner_rspec.rb
130
+ - templates/development_seeds.rb
131
+ - templates/disable_xml_params.rb
132
+ - templates/errors.rb
133
+ - templates/factories_spec.rb
134
+ - templates/factories_spec_rake_task.rb
135
+ - templates/factory_girl_syntax_rspec.rb
136
+ - templates/firestarter_gitignore
137
+ - templates/firestarter_layout.slim.erb
138
+ - templates/i18n.rb
139
+ - templates/postgresql_database.yml.erb
140
+ - templates/puma.rb
141
+ - templates/rack_timeout.rb
142
+ - templates/ruby-version.erb
143
+ - templates/sample.env
144
+ - templates/secret_token.rb
145
+ - templates/smtp.rb
146
+ - templates/spec_helper.rb
147
+ - templates/staging.rb
111
148
  homepage: http://github.com/groupbuddies/firestarter
112
149
  licenses:
113
150
  - MIT
114
151
  metadata: {}
115
152
  post_install_message:
116
153
  rdoc_options:
117
- - --charset=UTF-8
154
+ - "--charset=UTF-8"
118
155
  require_paths:
119
156
  - lib
120
157
  required_ruby_version: !ruby/object:Gem::Requirement
121
158
  requirements:
122
- - - '>='
159
+ - - ">="
123
160
  - !ruby/object:Gem::Version
124
161
  version: 1.9.2
125
162
  required_rubygems_version: !ruby/object:Gem::Requirement
126
163
  requirements:
127
- - - '>='
164
+ - - ">="
128
165
  - !ruby/object:Gem::Version
129
166
  version: '0'
130
167
  requirements: []
131
168
  rubyforge_project:
132
- rubygems_version: 2.1.10
169
+ rubygems_version: 2.4.5
133
170
  signing_key:
134
171
  specification_version: 4
135
172
  summary: Generate a Rails app using groupbuddies's best practices and opinions.
136
- test_files: []
173
+ test_files:
174
+ - spec/features/new_project_spec.rb
175
+ - spec/spec_helper.rb
176
+ - spec/support/firestarter.rb