gb-firestarter 0.3.1 → 0.4.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 +1 -0
- data/.metrics +13 -0
- data/.metrics.reek +3 -0
- data/.rspec +1 -0
- data/.rubocop.yml +64 -0
- data/.ruby-version +1 -1
- data/.travis.yml +5 -6
- data/Gemfile.lock +30 -11
- data/README.md +3 -1
- data/Rakefile +5 -5
- data/firestarter.gemspec +23 -20
- data/lib/firestarter.rb +4 -4
- data/lib/firestarter/actions.rb +1 -1
- data/lib/firestarter/app_builder.rb +108 -89
- data/lib/firestarter/generators/app_generator.rb +41 -41
- data/lib/firestarter/version.rb +2 -2
- data/spec/features/new_project_spec.rb +18 -20
- data/spec/spec_helper.rb +4 -9
- data/spec/support/firestarter.rb +16 -6
- data/templates/Gemfile.erb +35 -42
- data/templates/database_cleaner_rspec.rb +1 -1
- data/templates/development_seeds.rb +3 -3
- data/templates/factories_spec.rb +3 -3
- data/templates/factories_spec_rake_task.rb +4 -4
- data/templates/lint_rake_task.rb +5 -5
- data/templates/metrics +13 -0
- data/templates/metrics.reek +3 -0
- data/templates/puma.rb +5 -5
- data/templates/rack_timeout.rb +3 -1
- data/templates/{secret_token.rb → secret_token.rb.erb} +1 -1
- data/templates/smtp.rb +5 -5
- data/templates/spec_helper.rb +11 -12
- data/templates/staging.rb +1 -3
- data/templates/unobtrusive_pry.rb +2 -2
- metadata +27 -8
- data/templates/errors.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03053b2acd6e4cbecc4aa068c6ef8dc386be6f13
|
4
|
+
data.tar.gz: 62d088f98dbfba8005228f061bb3b81e4111f04f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa3b5dd3772961295cd82752ff691edb19da7758da002dbd91b10fa25d1ed6e21d2350b17b232b0f3967e6f690457ac8158037cfd4cb87cdb05eef189b023e41
|
7
|
+
data.tar.gz: f42f30c606678c3382b3a4cb565371b6bd860709f4c2d7d6e3d21a1dd251343e99ee6292cd68cf4ff58e4ed75b411f483e3f1762da9eb9e5b96d95781e173ebb
|
data/.gitignore
CHANGED
data/.metrics
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
MetricFu::Configuration.run do |config|
|
2
|
+
config.configure_metric(:cane) do |cane|
|
3
|
+
cane.no_doc = 'y'
|
4
|
+
end
|
5
|
+
|
6
|
+
config.configure_metric(:churn) do |churn|
|
7
|
+
churn.ignore_files = %w(Gemfile Gemfile.lock)
|
8
|
+
end
|
9
|
+
|
10
|
+
config.configure_metric(:reek) do |reek|
|
11
|
+
reek.config_file_pattern = '.metrics.reek'
|
12
|
+
end
|
13
|
+
end
|
data/.metrics.reek
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
AllCops:
|
2
|
+
Include:
|
3
|
+
- "**/Rakefile"
|
4
|
+
- "**/config.ru"
|
5
|
+
Exclude:
|
6
|
+
- "db/**/*"
|
7
|
+
- "config/**/*"
|
8
|
+
- "script/**/*"
|
9
|
+
- "bin/**/*"
|
10
|
+
- "vendor/**/*"
|
11
|
+
- "node_modules/**/*"
|
12
|
+
- "spec/factories.rb"
|
13
|
+
- "slack_bot/**/*"
|
14
|
+
TargetRubyVersion: 2.3
|
15
|
+
|
16
|
+
Metrics/LineLength:
|
17
|
+
Enabled: false
|
18
|
+
|
19
|
+
Style/AlignParameters:
|
20
|
+
EnforcedStyle: with_fixed_indentation
|
21
|
+
|
22
|
+
Style/ClassAndModuleChildren:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
Style/Documentation:
|
26
|
+
Enabled: false
|
27
|
+
|
28
|
+
Style/DotPosition:
|
29
|
+
EnforcedStyle: trailing
|
30
|
+
|
31
|
+
Style/IfUnlessModifier:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Style/PredicateName:
|
35
|
+
NamePrefixBlacklist:
|
36
|
+
- is_
|
37
|
+
- have_
|
38
|
+
|
39
|
+
Style/StringLiterals:
|
40
|
+
EnforcedStyle: double_quotes
|
41
|
+
|
42
|
+
Style/NumericLiterals:
|
43
|
+
Enabled: false
|
44
|
+
|
45
|
+
Style/SingleLineBlockParams:
|
46
|
+
Enabled: false
|
47
|
+
|
48
|
+
Style/MultilineOperationIndentation:
|
49
|
+
EnforcedStyle: indented
|
50
|
+
|
51
|
+
Style/MultilineMethodCallIndentation:
|
52
|
+
EnforcedStyle: indented
|
53
|
+
|
54
|
+
Style/TrailingCommaInArguments:
|
55
|
+
EnforcedStyleForMultiline: comma
|
56
|
+
|
57
|
+
Style/TrailingCommaInLiteral:
|
58
|
+
EnforcedStyleForMultiline: comma
|
59
|
+
|
60
|
+
Style/FrozenStringLiteralComment:
|
61
|
+
Enabled: false
|
62
|
+
|
63
|
+
Style/MutableConstant:
|
64
|
+
Enabled: false
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.3.0
|
data/.travis.yml
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
+
- 2.3.0
|
3
4
|
- 2.2.0
|
4
5
|
- ruby-head
|
5
6
|
env:
|
6
|
-
- "RAILS_VERSION=4.2.
|
7
|
-
- "RAILS_VERSION=master"
|
7
|
+
- "RAILS_VERSION=4.2.6"
|
8
8
|
matrix:
|
9
9
|
allow_failures:
|
10
10
|
- rvm: ruby-head
|
11
|
-
- env: "RAILS_VERSION=master"
|
12
11
|
before_install:
|
13
|
-
-
|
14
|
-
- git config --global user.name
|
15
|
-
- git config --global user.email
|
12
|
+
- gem install bundler -v 1.11.2
|
13
|
+
- git config --global user.name "Travis CI"
|
14
|
+
- git config --global user.email "travis-ci@example.com"
|
16
15
|
install:
|
17
16
|
- bundle install
|
18
17
|
notifications:
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gb-firestarter (0.
|
4
|
+
gb-firestarter (0.4.0)
|
5
5
|
bundler (~> 1.3)
|
6
6
|
rails (= 4.2.0)
|
7
7
|
|
@@ -48,6 +48,7 @@ GEM
|
|
48
48
|
childprocess (>= 0.3.6)
|
49
49
|
cucumber (>= 1.1.1)
|
50
50
|
rspec-expectations (>= 2.7.0)
|
51
|
+
ast (2.3.0)
|
51
52
|
builder (3.2.2)
|
52
53
|
capybara (2.4.4)
|
53
54
|
mime-types (>= 1.16)
|
@@ -58,6 +59,7 @@ GEM
|
|
58
59
|
childprocess (0.5.6)
|
59
60
|
ffi (~> 1.0, >= 1.0.11)
|
60
61
|
coderay (1.1.0)
|
62
|
+
concurrent-ruby (1.0.2)
|
61
63
|
cucumber (2.0.0)
|
62
64
|
builder (>= 2.1.2)
|
63
65
|
cucumber-core (~> 1.1.3)
|
@@ -78,16 +80,19 @@ GEM
|
|
78
80
|
json (1.8.3)
|
79
81
|
loofah (2.0.3)
|
80
82
|
nokogiri (>= 1.5.9)
|
81
|
-
mail (2.6.
|
82
|
-
mime-types (>= 1.16, <
|
83
|
+
mail (2.6.4)
|
84
|
+
mime-types (>= 1.16, < 4)
|
83
85
|
method_source (0.8.2)
|
84
86
|
mime-types (2.4.3)
|
85
87
|
mini_portile (0.6.2)
|
86
|
-
minitest (5.
|
88
|
+
minitest (5.9.0)
|
87
89
|
multi_json (1.11.0)
|
88
90
|
multi_test (0.1.2)
|
89
91
|
nokogiri (1.6.6.2)
|
90
92
|
mini_portile (~> 0.6.0)
|
93
|
+
parser (2.3.1.2)
|
94
|
+
ast (~> 2.2)
|
95
|
+
powerpack (0.1.1)
|
91
96
|
pry (0.10.1)
|
92
97
|
coderay (~> 1.1.0)
|
93
98
|
method_source (~> 0.8.1)
|
@@ -112,14 +117,15 @@ GEM
|
|
112
117
|
activesupport (>= 4.2.0.beta, < 5.0)
|
113
118
|
nokogiri (~> 1.6.0)
|
114
119
|
rails-deprecated_sanitizer (>= 1.0.1)
|
115
|
-
rails-html-sanitizer (1.0.
|
120
|
+
rails-html-sanitizer (1.0.3)
|
116
121
|
loofah (~> 2.0)
|
117
122
|
railties (4.2.0)
|
118
123
|
actionpack (= 4.2.0)
|
119
124
|
activesupport (= 4.2.0)
|
120
125
|
rake (>= 0.8.7)
|
121
126
|
thor (>= 0.18.1, < 2.0)
|
122
|
-
|
127
|
+
rainbow (2.1.0)
|
128
|
+
rake (11.2.2)
|
123
129
|
rspec (2.99.0)
|
124
130
|
rspec-core (~> 2.99.0)
|
125
131
|
rspec-expectations (~> 2.99.0)
|
@@ -128,17 +134,26 @@ GEM
|
|
128
134
|
rspec-expectations (2.99.2)
|
129
135
|
diff-lcs (>= 1.1.3, < 2.0)
|
130
136
|
rspec-mocks (2.99.3)
|
137
|
+
rubocop (0.40.0)
|
138
|
+
parser (>= 2.3.1.0, < 3.0)
|
139
|
+
powerpack (~> 0.1)
|
140
|
+
rainbow (>= 1.99.1, < 3.0)
|
141
|
+
ruby-progressbar (~> 1.7)
|
142
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
143
|
+
ruby-progressbar (1.8.1)
|
131
144
|
slop (3.6.0)
|
132
|
-
sprockets (3.
|
145
|
+
sprockets (3.6.1)
|
146
|
+
concurrent-ruby (~> 1.0)
|
133
147
|
rack (> 1, < 3)
|
134
|
-
sprockets-rails (
|
135
|
-
actionpack (>=
|
136
|
-
activesupport (>=
|
137
|
-
sprockets (>=
|
148
|
+
sprockets-rails (3.0.4)
|
149
|
+
actionpack (>= 4.0)
|
150
|
+
activesupport (>= 4.0)
|
151
|
+
sprockets (>= 3.0.0)
|
138
152
|
thor (0.19.1)
|
139
153
|
thread_safe (0.3.5)
|
140
154
|
tzinfo (1.2.2)
|
141
155
|
thread_safe (~> 0.1)
|
156
|
+
unicode-display_width (1.0.5)
|
142
157
|
xpath (2.0.0)
|
143
158
|
nokogiri (~> 1.3)
|
144
159
|
|
@@ -151,3 +166,7 @@ DEPENDENCIES
|
|
151
166
|
gb-firestarter!
|
152
167
|
pry
|
153
168
|
rspec (~> 2.0)
|
169
|
+
rubocop (~> 0.40.0)
|
170
|
+
|
171
|
+
BUNDLED WITH
|
172
|
+
1.11.2
|
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
# Firestarter
|
1
|
+
# Firestarter
|
2
|
+
|
3
|
+
[](https://travis-ci.org/subvisual/firestarter) [](https://codeclimate.com/github/subvisual/firestarter)
|
2
4
|
|
3
5
|
Firestarter is the base Rails application used at [Group Buddies](http://groupbuddies.com).
|
4
6
|
|
data/Rakefile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "bundler/setup"
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
require "rspec/core/rake_task"
|
4
4
|
|
5
5
|
RSpec::Core::RakeTask.new(:rspec)
|
6
6
|
|
7
|
-
desc
|
8
|
-
task :
|
7
|
+
desc "Run the test suite"
|
8
|
+
task default: :rspec
|
data/firestarter.gemspec
CHANGED
@@ -1,34 +1,37 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require
|
4
|
-
require
|
2
|
+
$LOAD_PATH.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "firestarter/version"
|
4
|
+
require "date"
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
7
|
+
s.name = "gb-firestarter"
|
8
8
|
s.version = Firestarter::VERSION
|
9
9
|
s.summary = "Generate a Rails app using groupbuddies's best practices and opinions."
|
10
10
|
s.description = <<-HERE
|
11
11
|
Firestarter is the way to get great apps up and running in a heartbeat. It's
|
12
|
-
what we use at
|
12
|
+
what we use at Subvisual.
|
13
13
|
HERE
|
14
|
-
s.authors = [
|
15
|
-
s.email =
|
14
|
+
s.authors = ["Subvisual"]
|
15
|
+
s.email = "contact@subvisual.co"
|
16
|
+
|
16
17
|
s.files = `git ls-files`.split("\n")
|
17
|
-
s.
|
18
|
-
s.
|
19
|
-
s.
|
18
|
+
s.executables = ["firestarter"]
|
19
|
+
s.homepage = "http://github.com/groupbuddies/firestarter"
|
20
|
+
s.extra_rdoc_files = %w(README.md LICENSE)
|
21
|
+
s.license = "MIT"
|
20
22
|
|
21
|
-
s.executables = [
|
22
|
-
s.rdoc_options = [
|
23
|
-
s.require_paths = [
|
23
|
+
s.executables = ["firestarter"]
|
24
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
25
|
+
s.require_paths = ["lib"]
|
24
26
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
25
|
-
s.required_ruby_version =
|
26
|
-
s.date = Date.today.strftime(
|
27
|
+
s.required_ruby_version = ">= 1.9.2"
|
28
|
+
s.date = Date.today.strftime("%Y-%m-%d")
|
27
29
|
|
28
|
-
s.add_dependency
|
29
|
-
s.add_dependency
|
30
|
+
s.add_dependency "bundler", "~> 1.3"
|
31
|
+
s.add_dependency "rails", Firestarter::RAILS_VERSION
|
30
32
|
|
31
|
-
s.add_development_dependency
|
32
|
-
s.add_development_dependency
|
33
|
-
s.add_development_dependency
|
33
|
+
s.add_development_dependency "aruba", "~> 0.5.4"
|
34
|
+
s.add_development_dependency "rspec", "~> 2.0"
|
35
|
+
s.add_development_dependency "capybara", "~> 2.2", ">= 2.2.0"
|
36
|
+
s.add_development_dependency "rubocop", "~> 0.40.0"
|
34
37
|
end
|
data/lib/firestarter.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require "firestarter/generators/app_generator"
|
2
|
+
require "firestarter/actions"
|
3
|
+
require "firestarter/app_builder"
|
4
|
+
require "firestarter/version"
|
data/lib/firestarter/actions.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
module Firestarter
|
2
|
-
class AppBuilder < Rails::AppBuilder
|
2
|
+
class AppBuilder < Rails::AppBuilder # rubocop:disable Metrics/ClassLength
|
3
3
|
include Firestarter::Actions
|
4
4
|
|
5
5
|
def readme
|
6
|
-
template
|
6
|
+
template "README.md.erb", "README.md"
|
7
7
|
end
|
8
8
|
|
9
9
|
def rakefile
|
10
|
-
template
|
10
|
+
template "Rakefile.erb", "Rakefile"
|
11
11
|
end
|
12
12
|
|
13
13
|
def raise_on_delivery_errors
|
14
|
-
replace_in_file
|
15
|
-
|
14
|
+
replace_in_file "config/environments/development.rb",
|
15
|
+
"raise_delivery_errors = false", "raise_delivery_errors = true"
|
16
16
|
end
|
17
17
|
|
18
18
|
def raise_on_unpermitted_parameters
|
@@ -25,21 +25,21 @@ module Firestarter
|
|
25
25
|
inject_into_file(
|
26
26
|
"config/environments/development.rb",
|
27
27
|
action_on_unpermitted_parameters,
|
28
|
-
before: "\nend"
|
28
|
+
before: "\nend",
|
29
29
|
)
|
30
30
|
end
|
31
31
|
|
32
32
|
def provide_setup_script
|
33
|
-
remove_file
|
34
|
-
copy_file
|
35
|
-
run
|
33
|
+
remove_file "bin/setup"
|
34
|
+
copy_file "bin_setup", "bin/setup"
|
35
|
+
run "chmod a+x bin/setup"
|
36
36
|
end
|
37
37
|
|
38
38
|
def provide_dev_prime_task
|
39
|
-
copy_file
|
39
|
+
copy_file "development_seeds.rb", "lib/tasks/development_seeds.rake"
|
40
40
|
end
|
41
41
|
|
42
|
-
def configure_generators
|
42
|
+
def configure_generators # rubocop:disable Metrics/MethodLength
|
43
43
|
config = <<-RUBY
|
44
44
|
config.generators do |generate|
|
45
45
|
generate.helper false
|
@@ -53,22 +53,22 @@ module Firestarter
|
|
53
53
|
|
54
54
|
RUBY
|
55
55
|
|
56
|
-
inject_into_class
|
56
|
+
inject_into_class "config/application.rb", "Application", config
|
57
57
|
end
|
58
58
|
|
59
59
|
def enable_factory_girl_syntax
|
60
|
-
copy_file
|
60
|
+
copy_file "factory_girl_syntax_rspec.rb", "spec/support/factory_girl.rb"
|
61
61
|
end
|
62
62
|
|
63
63
|
def test_factories_first
|
64
|
-
copy_file
|
65
|
-
append_file
|
64
|
+
copy_file "factories_spec.rb", "spec/models/factories_spec.rb"
|
65
|
+
append_file "Rakefile", factories_spec_rake_task
|
66
66
|
end
|
67
67
|
|
68
68
|
def configure_smtp
|
69
|
-
copy_file
|
69
|
+
copy_file "smtp.rb", "config/initializers/smtp.rb"
|
70
70
|
|
71
|
-
prepend_file
|
71
|
+
prepend_file "config/environments/production.rb",
|
72
72
|
"require Rails.root.join('config/initializers/smtp')\n"
|
73
73
|
|
74
74
|
config = <<-RUBY
|
@@ -77,8 +77,8 @@ module Firestarter
|
|
77
77
|
config.action_mailer.smtp_settings = SMTP_SETTINGS
|
78
78
|
RUBY
|
79
79
|
|
80
|
-
inject_into_file
|
81
|
-
:
|
80
|
+
inject_into_file "config/environments/production.rb", config,
|
81
|
+
after: "config.action_mailer.raise_delivery_errors = false"
|
82
82
|
end
|
83
83
|
|
84
84
|
def enable_rack_deflater
|
@@ -88,13 +88,13 @@ module Firestarter
|
|
88
88
|
config.middleware.use Rack::Deflater
|
89
89
|
RUBY
|
90
90
|
|
91
|
-
inject_into_file
|
92
|
-
:
|
91
|
+
inject_into_file "config/environments/production.rb", config,
|
92
|
+
after: "config.serve_static_assets = false\n"
|
93
93
|
end
|
94
94
|
|
95
95
|
def setup_staging_environment
|
96
|
-
staging_file =
|
97
|
-
copy_file
|
96
|
+
staging_file = "config/environments/staging.rb"
|
97
|
+
copy_file "staging.rb", staging_file
|
98
98
|
|
99
99
|
config = <<-RUBY
|
100
100
|
|
@@ -107,74 +107,92 @@ end
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def setup_secret_token
|
110
|
-
template
|
111
|
-
|
112
|
-
:
|
110
|
+
template "secret_token.rb.erb",
|
111
|
+
"config/initializers/secret_token.rb",
|
112
|
+
force: true
|
113
113
|
end
|
114
114
|
|
115
115
|
def create_partials_directory
|
116
|
-
empty_directory
|
116
|
+
empty_directory "app/views/application"
|
117
117
|
end
|
118
118
|
|
119
119
|
def create_shared_flashes
|
120
|
-
copy_file
|
120
|
+
copy_file "_flashes.slim", "app/views/application/_flashes.slim"
|
121
121
|
end
|
122
122
|
|
123
123
|
def create_shared_javascripts
|
124
|
-
copy_file
|
124
|
+
copy_file "_javascript.slim", "app/views/application/_javascript.slim"
|
125
125
|
end
|
126
126
|
|
127
127
|
def create_application_layout
|
128
|
-
remove_file
|
129
|
-
template
|
130
|
-
|
128
|
+
remove_file "app/views/layouts/application.html.erb"
|
129
|
+
template "firestarter_layout.slim.erb",
|
130
|
+
"app/views/layouts/application.slim",
|
131
131
|
force: true
|
132
132
|
end
|
133
133
|
|
134
134
|
def remove_turbolinks
|
135
|
-
replace_in_file
|
136
|
-
|
137
|
-
|
135
|
+
replace_in_file "app/assets/javascripts/application.js",
|
136
|
+
%r{//= require turbolinks\n},
|
137
|
+
""
|
138
|
+
end
|
139
|
+
|
140
|
+
def remove_require_tree
|
141
|
+
replace_in_file "app/assets/javascripts/application.js",
|
142
|
+
%r{//= require_tree .\n},
|
143
|
+
""
|
144
|
+
end
|
145
|
+
|
146
|
+
def add_retina_tag
|
147
|
+
append_to_file "app/assets/javascripts/application.js",
|
148
|
+
"//= require retina_tag\n"
|
138
149
|
end
|
139
150
|
|
140
151
|
def use_postgres_config_template
|
141
|
-
template
|
152
|
+
template "postgresql_database.yml.erb", "config/database.yml",
|
142
153
|
force: true
|
143
154
|
end
|
144
155
|
|
156
|
+
def use_rubocop_config
|
157
|
+
download_file(
|
158
|
+
"https://github.com/subvisual/guides/blob/master/linters/ruby/.rubocop.yml",
|
159
|
+
".rubocop.yml"
|
160
|
+
)
|
161
|
+
end
|
162
|
+
|
145
163
|
def create_database
|
146
|
-
bundle_command
|
164
|
+
bundle_command "exec rake db:create db:migrate"
|
147
165
|
end
|
148
166
|
|
149
167
|
def replace_gemfile
|
150
|
-
remove_file
|
151
|
-
template
|
168
|
+
remove_file "Gemfile"
|
169
|
+
template "Gemfile.erb", "Gemfile"
|
152
170
|
end
|
153
171
|
|
154
172
|
def set_ruby_to_version_being_used
|
155
|
-
template
|
173
|
+
template "ruby-version.erb", ".ruby-version"
|
156
174
|
end
|
157
175
|
|
158
176
|
def enable_unobtrusive_pry_in_specs
|
159
|
-
copy_file
|
177
|
+
copy_file "unobtrusive_pry.rb", "spec/support/pry.rb"
|
160
178
|
end
|
161
179
|
|
162
180
|
def enable_database_cleaner
|
163
|
-
copy_file
|
181
|
+
copy_file "database_cleaner_rspec.rb", "spec/support/database_cleaner.rb"
|
164
182
|
end
|
165
183
|
|
166
184
|
def configure_spec_support_features
|
167
|
-
empty_directory_with_keep_file
|
168
|
-
empty_directory_with_keep_file
|
185
|
+
empty_directory_with_keep_file "spec/features"
|
186
|
+
empty_directory_with_keep_file "spec/support/features"
|
169
187
|
end
|
170
188
|
|
171
189
|
def configure_rspec
|
172
|
-
remove_file
|
173
|
-
copy_file
|
190
|
+
remove_file "spec/spec_helper.rb"
|
191
|
+
copy_file "spec_helper.rb", "spec/spec_helper.rb"
|
174
192
|
end
|
175
193
|
|
176
194
|
def configure_i18n_in_specs
|
177
|
-
copy_file
|
195
|
+
copy_file "i18n.rb", "spec/support/i18n.rb"
|
178
196
|
end
|
179
197
|
|
180
198
|
def configure_time_zone
|
@@ -182,27 +200,27 @@ end
|
|
182
200
|
config.active_record.default_timezone = :utc
|
183
201
|
|
184
202
|
RUBY
|
185
|
-
inject_into_class
|
203
|
+
inject_into_class "config/application.rb", "Application", config
|
186
204
|
end
|
187
205
|
|
188
206
|
def configure_time_formats
|
189
|
-
remove_file
|
190
|
-
copy_file
|
207
|
+
remove_file "config/locales/en.yml"
|
208
|
+
copy_file "config_locales_en.yml", "config/locales/en.yml"
|
191
209
|
end
|
192
210
|
|
193
211
|
def configure_rack_timeout
|
194
|
-
copy_file
|
212
|
+
copy_file "rack_timeout.rb", "config/initializers/rack_timeout.rb"
|
195
213
|
end
|
196
214
|
|
197
215
|
def configure_slim
|
198
|
-
copy_file
|
216
|
+
copy_file "slim.rb", "config/initializers/slim.rb"
|
199
217
|
end
|
200
218
|
|
201
219
|
def configure_action_mailer
|
202
|
-
action_mailer_host
|
203
|
-
action_mailer_host
|
204
|
-
action_mailer_host
|
205
|
-
action_mailer_host
|
220
|
+
action_mailer_host "development", "#{app_name}.local"
|
221
|
+
action_mailer_host "test", "www.example.com"
|
222
|
+
action_mailer_host "staging", "staging.#{app_name}.com"
|
223
|
+
action_mailer_host "production", "#{app_name}.com"
|
206
224
|
end
|
207
225
|
|
208
226
|
def fix_i18n_deprecation_warning
|
@@ -210,39 +228,39 @@ end
|
|
210
228
|
config.i18n.enforce_available_locales = true
|
211
229
|
|
212
230
|
RUBY
|
213
|
-
inject_into_class
|
231
|
+
inject_into_class "config/application.rb", "Application", config
|
214
232
|
end
|
215
233
|
|
216
234
|
def generate_rspec
|
217
|
-
generate
|
235
|
+
generate "rspec:install"
|
218
236
|
end
|
219
237
|
|
220
238
|
def configure_puma
|
221
|
-
copy_file
|
239
|
+
copy_file "puma.rb", "config/puma.rb", force: true
|
222
240
|
end
|
223
241
|
|
224
242
|
def setup_foreman
|
225
|
-
copy_file
|
226
|
-
copy_file
|
243
|
+
copy_file "sample.env", ".sample.env"
|
244
|
+
copy_file "Procfile", "Procfile"
|
227
245
|
end
|
228
246
|
|
229
247
|
def setup_stylesheets
|
230
|
-
remove_file
|
231
|
-
copy_file
|
232
|
-
|
248
|
+
remove_file "app/assets/stylesheets/application.css"
|
249
|
+
copy_file "application.sass",
|
250
|
+
"app/assets/stylesheets/application.sass"
|
233
251
|
end
|
234
252
|
|
235
|
-
def gitignore_files
|
236
|
-
remove_file
|
237
|
-
copy_file
|
253
|
+
def gitignore_files # rubocop:disable Metrics/MethodLength
|
254
|
+
remove_file ".gitignore"
|
255
|
+
copy_file "firestarter_gitignore", ".gitignore"
|
238
256
|
[
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
257
|
+
"app/views/pages",
|
258
|
+
"spec/lib",
|
259
|
+
"spec/controllers",
|
260
|
+
"spec/helpers",
|
261
|
+
"spec/support/matchers",
|
262
|
+
"spec/support/mixins",
|
263
|
+
"spec/support/shared_examples",
|
246
264
|
].each do |dir|
|
247
265
|
run "mkdir #{dir}"
|
248
266
|
run "touch #{dir}/.keep"
|
@@ -250,56 +268,57 @@ end
|
|
250
268
|
end
|
251
269
|
|
252
270
|
def init_git
|
253
|
-
run
|
254
|
-
end
|
255
|
-
|
256
|
-
def copy_miscellaneous_files
|
257
|
-
copy_file 'errors.rb', 'config/initializers/errors.rb'
|
271
|
+
run "git init"
|
258
272
|
end
|
259
273
|
|
260
274
|
def customize_error_pages
|
261
|
-
meta_tags
|
275
|
+
meta_tags = <<-EOS
|
262
276
|
<meta charset='utf-8' />
|
263
277
|
<meta name='ROBOTS' content='NOODP' />
|
264
278
|
EOS
|
265
279
|
|
266
280
|
%w(500 404 422).each do |page|
|
267
|
-
inject_into_file "public/#{page}.html", meta_tags, :
|
268
|
-
replace_in_file "public/#{page}.html", /<!--.+-->\n/,
|
281
|
+
inject_into_file "public/#{page}.html", meta_tags, after: "<head>\n"
|
282
|
+
replace_in_file "public/#{page}.html", /<!--.+-->\n/, ""
|
269
283
|
end
|
270
284
|
end
|
271
285
|
|
272
286
|
def remove_routes_comment_lines
|
273
|
-
replace_in_file
|
287
|
+
replace_in_file "config/routes.rb",
|
274
288
|
/Rails.application\.routes\.draw do.*end/m,
|
275
289
|
"Rails.application.routes.draw do\nend"
|
276
290
|
end
|
277
291
|
|
278
292
|
def disable_xml_params
|
279
|
-
copy_file
|
293
|
+
copy_file "disable_xml_params.rb", "config/initializers/disable_xml_params.rb"
|
280
294
|
end
|
281
295
|
|
282
296
|
def scss_lint_config
|
283
|
-
copy_file
|
297
|
+
copy_file "scss-lint.yml", ".scss-lint.yml"
|
284
298
|
end
|
285
299
|
|
286
300
|
def setup_default_rake_task
|
287
|
-
append_file
|
301
|
+
append_file "Rakefile" do
|
288
302
|
"task(:default).clear\ntask :default => [:spec]\n"
|
289
303
|
end
|
290
304
|
end
|
291
305
|
|
306
|
+
def setup_metrics
|
307
|
+
copy_file "metrics", ".metrics"
|
308
|
+
copy_file "metrics.reek", ".metrics.reek"
|
309
|
+
end
|
310
|
+
|
292
311
|
private
|
293
312
|
|
294
313
|
def override_path_for_tests
|
295
|
-
if ENV[
|
296
|
-
support_bin = File.expand_path(File.join(
|
314
|
+
if ENV["TESTING"]
|
315
|
+
support_bin = File.expand_path(File.join("..", "..", "spec", "fakes", "bin"))
|
297
316
|
"PATH=#{support_bin}:$PATH"
|
298
317
|
end
|
299
318
|
end
|
300
319
|
|
301
320
|
def factories_spec_rake_task
|
302
|
-
IO.read find_in_source_paths(
|
321
|
+
IO.read find_in_source_paths("factories_spec_rake_task.rb")
|
303
322
|
end
|
304
323
|
|
305
324
|
def generate_secret
|