welaika-suspenders 2.29.0 → 2.30.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +2 -3
- data/NEWS.md +18 -0
- data/README.md +2 -1
- data/lib/suspenders.rb +4 -0
- data/lib/suspenders/adapters/heroku.rb +13 -27
- data/lib/suspenders/app_builder.rb +2 -29
- data/lib/suspenders/generators/app_generator.rb +10 -16
- data/lib/suspenders/generators/base.rb +20 -0
- data/lib/suspenders/generators/ci_generator.rb +3 -10
- data/lib/suspenders/generators/db_optimizations_generator.rb +2 -2
- data/lib/suspenders/generators/decorator_generator.rb +1 -6
- data/lib/suspenders/generators/factories_generator.rb +2 -7
- data/lib/suspenders/generators/faker_generator.rb +1 -6
- data/lib/suspenders/generators/js_driver_generator.rb +2 -7
- data/lib/suspenders/generators/json_generator.rb +10 -0
- data/lib/suspenders/generators/lint_generator.rb +2 -7
- data/lib/suspenders/generators/production/deployment_generator.rb +27 -0
- data/lib/suspenders/generators/production/email_generator.rb +3 -11
- data/lib/suspenders/generators/production/error_reporting_generator.rb +1 -8
- data/lib/suspenders/generators/production/force_tls_generator.rb +2 -5
- data/lib/suspenders/generators/production/manifest_generator.rb +24 -0
- data/lib/suspenders/generators/production/timeout_generator.rb +2 -2
- data/lib/suspenders/generators/security_generator.rb +1 -6
- data/lib/suspenders/generators/staging/pull_requests_generator.rb +33 -0
- data/lib/suspenders/generators/static_generator.rb +2 -2
- data/lib/suspenders/generators/stylesheet_base_generator.rb +2 -6
- data/lib/suspenders/generators/testing_generator.rb +2 -7
- data/lib/suspenders/generators/views_generator.rb +2 -7
- data/lib/suspenders/version.rb +2 -2
- data/spec/adapters/heroku_spec.rb +2 -2
- data/spec/features/heroku_spec.rb +22 -6
- data/spec/features/json_spec.rb +15 -0
- data/spec/features/new_project_spec.rb +13 -8
- data/spec/features/production/deployment_spec.rb +22 -0
- data/spec/features/production/email_spec.rb +1 -1
- data/spec/features/production/manifest_spec.rb +35 -0
- data/spec/features/staging/pull_requests_spec.rb +22 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/support/be_executable_matcher.rb +7 -0
- data/spec/support/generators.rb +5 -0
- data/spec/support/project_files.rb +13 -0
- data/suspenders.gemspec +2 -0
- data/templates/Gemfile.erb +3 -5
- data/templates/_flashes.html.slim +1 -1
- data/templates/factory_bot_rspec.rb +2 -0
- data/templates/gitlab-ci.yml.erb +13 -16
- data/templates/overcommit.yml +1 -1
- data/templates/suspenders_gitignore +3 -0
- data/templates/suspenders_layout.html.slim +2 -3
- metadata +53 -9
- data/templates/app.json.erb +0 -27
- data/templates/browserslist +0 -3
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'bundler/setup'
|
2
|
+
require 'pry-byebug'
|
3
|
+
require 'awesome_print'
|
2
4
|
|
3
5
|
Bundler.require(:default, :test)
|
4
6
|
|
@@ -8,6 +10,7 @@ Dir['./spec/support/**/*.rb'].each { |file| require file }
|
|
8
10
|
|
9
11
|
RSpec.configure do |config|
|
10
12
|
config.include SuspendersTestHelpers
|
13
|
+
config.include ProjectFiles
|
11
14
|
|
12
15
|
config.example_status_persistence_file_path = 'tmp/rspec_examples.txt'
|
13
16
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module ProjectFiles
|
2
|
+
def touch(filename)
|
3
|
+
path = File.join(project_path, filename)
|
4
|
+
dirname = File.dirname(path)
|
5
|
+
FileUtils.mkdir_p(dirname)
|
6
|
+
FileUtils.touch(path)
|
7
|
+
end
|
8
|
+
|
9
|
+
def rm(filename)
|
10
|
+
path = File.join(project_path, filename)
|
11
|
+
FileUtils.rm_rf(path)
|
12
|
+
end
|
13
|
+
end
|
data/suspenders.gemspec
CHANGED
@@ -29,4 +29,6 @@ weLaika's fork of the famous thoughbot suspenders gem.
|
|
29
29
|
s.add_dependency 'rails', Suspenders::RAILS_VERSION
|
30
30
|
|
31
31
|
s.add_development_dependency 'rspec', '~> 3.8'
|
32
|
+
s.add_development_dependency 'pry-byebug', '~> 3.6'
|
33
|
+
s.add_development_dependency 'awesome_print', '~> 1.8'
|
32
34
|
end
|
data/templates/Gemfile.erb
CHANGED
@@ -10,20 +10,18 @@ end
|
|
10
10
|
ruby '<%= Suspenders::RUBY_VERSION %>'
|
11
11
|
|
12
12
|
gem 'active_interaction', '~> 3.6'
|
13
|
-
gem '
|
13
|
+
gem 'bootsnap', '>= 1.1.0', require: false
|
14
14
|
gem 'coffee-rails', '~> 4.2'
|
15
15
|
gem 'email_validator'
|
16
|
-
gem 'flutie'
|
17
16
|
gem 'pg', '>= 0.18', '< 2.0'
|
18
17
|
gem 'puma', '~> 3.11'
|
19
18
|
gem 'rack-canonical-host'
|
20
19
|
gem 'rails', '<%= Suspenders::RAILS_VERSION %>'
|
21
20
|
gem 'rails-i18n'
|
22
21
|
gem 'recipient_interceptor'
|
23
|
-
gem '
|
22
|
+
gem 'sassc-rails'
|
24
23
|
gem 'title'
|
25
24
|
gem 'uglifier', '>= 1.3.0'
|
26
|
-
gem 'bootsnap', '>= 1.1.0', require: false
|
27
25
|
<% if options[:webpack] %>
|
28
26
|
gem 'webpacker'
|
29
27
|
<% end %>
|
@@ -49,4 +47,4 @@ group :test do
|
|
49
47
|
gem 'webmock'
|
50
48
|
end
|
51
49
|
|
52
|
-
gem 'welaika-suspenders',
|
50
|
+
gem 'welaika-suspenders', group: %i[development test]
|
data/templates/gitlab-ci.yml.erb
CHANGED
@@ -13,8 +13,10 @@ variables:
|
|
13
13
|
- postgres:<%= Suspenders::POSTGRES_VERSION %>
|
14
14
|
- selenium/standalone-chrome:latest
|
15
15
|
|
16
|
-
.cache: &
|
17
|
-
key: "
|
16
|
+
.cache: &cache-settings
|
17
|
+
key: "$CI_COMMIT_REF_SLUG"
|
18
|
+
untracked: true
|
19
|
+
policy: pull
|
18
20
|
paths:
|
19
21
|
- vendor/bundle
|
20
22
|
|
@@ -26,15 +28,15 @@ stages:
|
|
26
28
|
prepare:
|
27
29
|
stage: setup
|
28
30
|
cache:
|
29
|
-
<<: *
|
31
|
+
<<: *cache-settings
|
32
|
+
policy: pull-push
|
30
33
|
script:
|
31
34
|
- bundle install --retry 3 --deployment --jobs $(nproc)
|
32
35
|
|
33
36
|
quality:rubocop:
|
34
37
|
stage: quality
|
35
38
|
cache:
|
36
|
-
<<: *
|
37
|
-
policy: pull
|
39
|
+
<<: *cache-settings
|
38
40
|
script:
|
39
41
|
- bundle check --path vendor/bundle
|
40
42
|
- bundle exec rubocop
|
@@ -42,8 +44,7 @@ quality:rubocop:
|
|
42
44
|
quality:slim_lint:
|
43
45
|
stage: quality
|
44
46
|
cache:
|
45
|
-
<<: *
|
46
|
-
policy: pull
|
47
|
+
<<: *cache-settings
|
47
48
|
script:
|
48
49
|
- bundle check --path vendor/bundle
|
49
50
|
- bundle exec slim-lint app/views/
|
@@ -51,8 +52,7 @@ quality:slim_lint:
|
|
51
52
|
quality:bundler-audit:
|
52
53
|
stage: quality
|
53
54
|
cache:
|
54
|
-
<<: *
|
55
|
-
policy: pull
|
55
|
+
<<: *cache-settings
|
56
56
|
script:
|
57
57
|
- bundle check --path vendor/bundle
|
58
58
|
- bundle exec bundle-audit check --update
|
@@ -60,8 +60,7 @@ quality:bundler-audit:
|
|
60
60
|
quality:brakeman:
|
61
61
|
stage: quality
|
62
62
|
cache:
|
63
|
-
<<: *
|
64
|
-
policy: pull
|
63
|
+
<<: *cache-settings
|
65
64
|
script:
|
66
65
|
- bundle check --path vendor/bundle
|
67
66
|
- bundle exec brakeman -z --skip-files vendor/bundle
|
@@ -69,8 +68,7 @@ quality:brakeman:
|
|
69
68
|
quality:rubycritic:
|
70
69
|
stage: quality
|
71
70
|
cache:
|
72
|
-
<<: *
|
73
|
-
policy: pull
|
71
|
+
<<: *cache-settings
|
74
72
|
script:
|
75
73
|
- bundle check --path vendor/bundle
|
76
74
|
- bundle exec rubycritic app/ config/ lib/ --no-browser --minimum-score 94 --format console
|
@@ -79,12 +77,11 @@ test:rspec:
|
|
79
77
|
stage: test
|
80
78
|
services: *rails-services
|
81
79
|
cache:
|
82
|
-
<<: *
|
83
|
-
policy: pull
|
80
|
+
<<: *cache-settings
|
84
81
|
script:
|
85
82
|
# Install node
|
86
83
|
- curl -sL https://deb.nodesource.com/setup_10.x | bash -
|
87
|
-
- apt-get
|
84
|
+
- apt-get install -qq nodejs
|
88
85
|
|
89
86
|
# Install yarn
|
90
87
|
- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
data/templates/overcommit.yml
CHANGED
@@ -2,18 +2,17 @@ doctype html
|
|
2
2
|
html lang=I18n.locale
|
3
3
|
head
|
4
4
|
meta charset="utf-8"
|
5
|
-
meta name="ROBOTS" content="NOODP"
|
6
5
|
meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
7
6
|
|
8
7
|
/ Configure default and controller-, and view-specific titles in
|
9
8
|
config/locales/en.yml. For more see:
|
10
9
|
https://github.com/calebthompson/title#usage
|
11
10
|
|
12
|
-
title= title
|
11
|
+
title = title
|
13
12
|
= stylesheet_link_tag :application, media: 'all'
|
14
13
|
= csrf_meta_tags
|
15
14
|
= csp_meta_tag
|
16
|
-
body
|
15
|
+
body
|
17
16
|
= render 'flashes'
|
18
17
|
= yield
|
19
18
|
= render 'javascript'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: welaika-suspenders
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thoughtbot
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-03-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 5.2.
|
20
|
+
version: 5.2.2
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 5.2.
|
27
|
+
version: 5.2.2
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rspec
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,6 +39,34 @@ dependencies:
|
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '3.8'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: pry-byebug
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.6'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '3.6'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: awesome_print
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.8'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.8'
|
42
70
|
description: 'weLaika''s fork of the famous thoughbot suspenders gem.
|
43
71
|
|
44
72
|
'
|
@@ -72,18 +100,23 @@ files:
|
|
72
100
|
- lib/suspenders/adapters/heroku.rb
|
73
101
|
- lib/suspenders/app_builder.rb
|
74
102
|
- lib/suspenders/generators/app_generator.rb
|
103
|
+
- lib/suspenders/generators/base.rb
|
75
104
|
- lib/suspenders/generators/ci_generator.rb
|
76
105
|
- lib/suspenders/generators/db_optimizations_generator.rb
|
77
106
|
- lib/suspenders/generators/decorator_generator.rb
|
78
107
|
- lib/suspenders/generators/factories_generator.rb
|
79
108
|
- lib/suspenders/generators/faker_generator.rb
|
80
109
|
- lib/suspenders/generators/js_driver_generator.rb
|
110
|
+
- lib/suspenders/generators/json_generator.rb
|
81
111
|
- lib/suspenders/generators/lint_generator.rb
|
112
|
+
- lib/suspenders/generators/production/deployment_generator.rb
|
82
113
|
- lib/suspenders/generators/production/email_generator.rb
|
83
114
|
- lib/suspenders/generators/production/error_reporting_generator.rb
|
84
115
|
- lib/suspenders/generators/production/force_tls_generator.rb
|
116
|
+
- lib/suspenders/generators/production/manifest_generator.rb
|
85
117
|
- lib/suspenders/generators/production/timeout_generator.rb
|
86
118
|
- lib/suspenders/generators/security_generator.rb
|
119
|
+
- lib/suspenders/generators/staging/pull_requests_generator.rb
|
87
120
|
- lib/suspenders/generators/static_generator.rb
|
88
121
|
- lib/suspenders/generators/stylesheet_base_generator.rb
|
89
122
|
- lib/suspenders/generators/testing_generator.rb
|
@@ -95,13 +128,20 @@ files:
|
|
95
128
|
- spec/features/api_spec.rb
|
96
129
|
- spec/features/cli_help_spec.rb
|
97
130
|
- spec/features/heroku_spec.rb
|
131
|
+
- spec/features/json_spec.rb
|
98
132
|
- spec/features/new_project_spec.rb
|
133
|
+
- spec/features/production/deployment_spec.rb
|
99
134
|
- spec/features/production/email_spec.rb
|
135
|
+
- spec/features/production/manifest_spec.rb
|
136
|
+
- spec/features/staging/pull_requests_spec.rb
|
100
137
|
- spec/spec_helper.rb
|
138
|
+
- spec/support/be_executable_matcher.rb
|
101
139
|
- spec/support/contain_json_matcher.rb
|
102
140
|
- spec/support/exist_as_a_file_matcher.rb
|
103
141
|
- spec/support/fake_heroku.rb
|
142
|
+
- spec/support/generators.rb
|
104
143
|
- spec/support/match_contents_matcher.rb
|
144
|
+
- spec/support/project_files.rb
|
105
145
|
- spec/support/suspenders.rb
|
106
146
|
- suspenders.gemspec
|
107
147
|
- templates/Gemfile.erb
|
@@ -111,12 +151,10 @@ files:
|
|
111
151
|
- templates/_flashes.html.slim
|
112
152
|
- templates/_javascript.html.slim
|
113
153
|
- templates/action_mailer.rb
|
114
|
-
- templates/app.json.erb
|
115
154
|
- templates/application.sass
|
116
155
|
- templates/bin_deploy
|
117
156
|
- templates/bin_setup
|
118
157
|
- templates/bin_setup_review_app.erb
|
119
|
-
- templates/browserslist
|
120
158
|
- templates/chromedriver.rb
|
121
159
|
- templates/config_locales_it.yml.erb
|
122
160
|
- templates/database.gitlab.yml
|
@@ -166,15 +204,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
166
204
|
requirements:
|
167
205
|
- - ">="
|
168
206
|
- !ruby/object:Gem::Version
|
169
|
-
version: 2.
|
207
|
+
version: 2.6.1
|
170
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
209
|
requirements:
|
172
210
|
- - ">="
|
173
211
|
- !ruby/object:Gem::Version
|
174
212
|
version: 2.7.4
|
175
213
|
requirements: []
|
176
|
-
|
177
|
-
rubygems_version: 2.7.7
|
214
|
+
rubygems_version: 3.0.1
|
178
215
|
signing_key:
|
179
216
|
specification_version: 4
|
180
217
|
summary: Generate a Rails app using thoughtbot's best practices.
|
@@ -184,11 +221,18 @@ test_files:
|
|
184
221
|
- spec/features/api_spec.rb
|
185
222
|
- spec/features/cli_help_spec.rb
|
186
223
|
- spec/features/heroku_spec.rb
|
224
|
+
- spec/features/json_spec.rb
|
187
225
|
- spec/features/new_project_spec.rb
|
226
|
+
- spec/features/production/deployment_spec.rb
|
188
227
|
- spec/features/production/email_spec.rb
|
228
|
+
- spec/features/production/manifest_spec.rb
|
229
|
+
- spec/features/staging/pull_requests_spec.rb
|
189
230
|
- spec/spec_helper.rb
|
231
|
+
- spec/support/be_executable_matcher.rb
|
190
232
|
- spec/support/contain_json_matcher.rb
|
191
233
|
- spec/support/exist_as_a_file_matcher.rb
|
192
234
|
- spec/support/fake_heroku.rb
|
235
|
+
- spec/support/generators.rb
|
193
236
|
- spec/support/match_contents_matcher.rb
|
237
|
+
- spec/support/project_files.rb
|
194
238
|
- spec/support/suspenders.rb
|
data/templates/app.json.erb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name":"<%= app_name.dasherize %>",
|
3
|
-
"scripts":{},
|
4
|
-
"env":{
|
5
|
-
"APPLICATION_HOST":{
|
6
|
-
"required":true
|
7
|
-
},
|
8
|
-
"EMAIL_RECIPIENTS":{
|
9
|
-
"required":true
|
10
|
-
},
|
11
|
-
"HEROKU_APP_NAME": {
|
12
|
-
"required":true
|
13
|
-
},
|
14
|
-
"HEROKU_PARENT_APP_NAME": {
|
15
|
-
"required":true
|
16
|
-
},
|
17
|
-
"RACK_ENV":{
|
18
|
-
"required":true
|
19
|
-
},
|
20
|
-
"SECRET_KEY_BASE":{
|
21
|
-
"generator":"secret"
|
22
|
-
}
|
23
|
-
},
|
24
|
-
"addons":[
|
25
|
-
"heroku-postgresql"
|
26
|
-
]
|
27
|
-
}
|
data/templates/browserslist
DELETED