gb-firestarter 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/.ruby-version +1 -0
- data/.travis.yml +19 -0
- data/CONTRIBUTING.md +38 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +133 -0
- data/README.md +7 -36
- data/Rakefile +8 -0
- data/bin/rspec +16 -0
- data/firestarter.gemspec +34 -0
- data/lib/firestarter/actions.rb +35 -0
- data/lib/firestarter/app_builder.rb +297 -0
- data/lib/firestarter/generators/app_generator.rb +186 -0
- data/lib/firestarter/version.rb +4 -0
- data/lib/firestarter.rb +4 -0
- data/spec/features/new_project_spec.rb +38 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/support/firestarter.rb +49 -0
- data/templates/Gemfile.erb +55 -0
- data/templates/Procfile +1 -0
- data/templates/README.md.erb +25 -0
- data/templates/Rakefile.erb +10 -0
- data/templates/_flashes.slim +3 -0
- data/templates/_javascript.slim +9 -0
- data/templates/application.sass +3 -0
- data/templates/bin_setup +17 -0
- data/templates/config_locales_en.yml +11 -0
- data/templates/database_cleaner_rspec.rb +21 -0
- data/templates/development_seeds.rb +13 -0
- data/templates/disable_xml_params.rb +3 -0
- data/templates/errors.rb +28 -0
- data/templates/factories_spec.rb +13 -0
- data/templates/factories_spec_rake_task.rb +15 -0
- data/templates/factory_girl_syntax_rspec.rb +3 -0
- data/templates/firestarter_gitignore +18 -0
- data/templates/firestarter_layout.slim.erb +12 -0
- data/templates/i18n.rb +3 -0
- data/templates/postgresql_database.yml.erb +12 -0
- data/templates/puma.rb +18 -0
- data/templates/rack_timeout.rb +1 -0
- data/templates/ruby-version.erb +1 -0
- data/templates/sample.env +3 -0
- data/templates/secret_token.rb +10 -0
- data/templates/smtp.rb +10 -0
- data/templates/spec_helper.rb +42 -0
- data/templates/staging.rb +3 -0
- metadata +78 -38
data/templates/bin_setup
ADDED
@@ -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,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
|
data/templates/errors.rb
ADDED
@@ -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,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
|
data/templates/i18n.rb
ADDED
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,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
|
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
|
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-
|
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.
|
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.
|
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.
|
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.
|
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:
|
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: '
|
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
|
-
-
|
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.
|
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
|