welaika-suspenders 2.28.0 → 2.29.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +5 -5
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +3 -1
  4. data/CONTRIBUTING.md +8 -3
  5. data/NEWS.md +35 -0
  6. data/README.md +1 -1
  7. data/RELEASING.md +6 -7
  8. data/Rakefile +1 -1
  9. data/diff_suspenders.sh +15 -0
  10. data/lib/suspenders.rb +21 -8
  11. data/lib/suspenders/actions.rb +55 -8
  12. data/lib/suspenders/app_builder.rb +20 -191
  13. data/lib/suspenders/generators/app_generator.rb +26 -55
  14. data/lib/suspenders/generators/ci_generator.rb +22 -0
  15. data/lib/suspenders/generators/db_optimizations_generator.rb +30 -0
  16. data/lib/suspenders/generators/decorator_generator.rb +19 -0
  17. data/lib/suspenders/generators/error_reporting_generator.rb +55 -0
  18. data/lib/suspenders/generators/factories_generator.rb +23 -0
  19. data/lib/suspenders/generators/faker_generator.rb +19 -0
  20. data/lib/suspenders/generators/forms_generator.rb +18 -0
  21. data/lib/suspenders/generators/js_driver_generator.rb +20 -0
  22. data/lib/suspenders/generators/lint_generator.rb +35 -0
  23. data/lib/suspenders/generators/production/email_generator.rb +45 -0
  24. data/lib/suspenders/generators/production/force_tls_generator.rb +14 -0
  25. data/lib/suspenders/generators/production/timeout_generator.rb +21 -0
  26. data/lib/suspenders/generators/security_generator.rb +29 -0
  27. data/lib/suspenders/generators/testing_generator.rb +72 -0
  28. data/lib/suspenders/generators/views_generator.rb +44 -0
  29. data/lib/suspenders/version.rb +2 -2
  30. data/spec/features/api_spec.rb +18 -0
  31. data/spec/features/new_project_spec.rb +9 -21
  32. data/spec/features/production/email_spec.rb +47 -0
  33. data/spec/support/contain_json_matcher.rb +24 -0
  34. data/spec/support/exist_as_a_file_matcher.rb +7 -0
  35. data/spec/support/match_contents_matcher.rb +6 -0
  36. data/spec/support/suspenders.rb +113 -30
  37. data/suspenders.gemspec +2 -2
  38. data/templates/Gemfile.erb +8 -31
  39. data/templates/Procfile +1 -1
  40. data/templates/_css_overrides.html.slim +4 -0
  41. data/templates/_javascript.html.slim +3 -3
  42. data/templates/action_mailer.rb +2 -0
  43. data/templates/app.json.erb +0 -15
  44. data/templates/brakeman.rake +2 -0
  45. data/templates/bundler_audit.rake +3 -1
  46. data/templates/capybara_helpers.rb +15 -0
  47. data/templates/chromedriver.rb +20 -0
  48. data/templates/dev.rake +4 -2
  49. data/templates/dotfiles/.env +2 -1
  50. data/templates/email.rb +5 -0
  51. data/templates/errors.rb +2 -0
  52. data/templates/factory_bot_rspec.rb +5 -0
  53. data/templates/faker_rspec.rb +2 -0
  54. data/templates/flashes_helper.rb +2 -0
  55. data/templates/i18n.rb +2 -0
  56. data/templates/json_encoding.rb +2 -0
  57. data/templates/puma.rb +2 -0
  58. data/templates/queries_helper_rspec.rb +2 -0
  59. data/templates/rack_mini_profiler.rb +2 -0
  60. data/templates/rails_helper.rb +11 -1
  61. data/templates/rubocop.rake +2 -0
  62. data/templates/rubocop.yml +2 -22
  63. data/templates/sentry.rb +8 -0
  64. data/templates/shoulda_matchers_config_rspec.rb +2 -0
  65. data/templates/slim-lint.rake +2 -0
  66. data/templates/slim.rb +2 -0
  67. data/templates/smtp.rb +2 -4
  68. data/templates/spec_helper.rb +12 -3
  69. data/templates/suspenders_layout.html.slim +3 -3
  70. metadata +42 -36
  71. data/lib/suspenders/generators/enforce_ssl_generator.rb +0 -12
  72. data/lib/suspenders/generators/initialize_active_job_generator.rb +0 -19
  73. data/templates/_css_overrides.html.erb +0 -7
  74. data/templates/active_job.rb +0 -13
  75. data/templates/capybara.rb +0 -29
  76. data/templates/circle.yml.erb +0 -15
  77. data/templates/database_cleaner_rspec.rb +0 -28
  78. data/templates/errbit.rb +0 -12
  79. data/templates/factories.rb +0 -2
  80. data/templates/factory_girl_rspec.rb +0 -3
  81. data/templates/fixtures_helper_rspec.rb +0 -9
  82. data/templates/sample_service.rb +0 -5
@@ -13,7 +13,7 @@ html lang=I18n.locale
13
13
  = stylesheet_link_tag :application, media: 'all'
14
14
  = csrf_meta_tags
15
15
  body class=body_class
16
- = render "flashes"
16
+ = render 'flashes'
17
17
  = yield
18
- = render "javascript"
19
- = render "css_overrides"
18
+ = render 'javascript'
19
+ = render 'css_overrides'
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.28.0
4
+ version: 2.29.0.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - thoughtbot
@@ -9,50 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-09-18 00:00:00.000000000 Z
12
+ date: 2018-08-05 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: bundler
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: 1.8.4
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- version: 1.8.4
28
14
  - !ruby/object:Gem::Dependency
29
15
  name: rails
30
16
  requirement: !ruby/object:Gem::Requirement
31
17
  requirements:
32
18
  - - "~>"
33
19
  - !ruby/object:Gem::Version
34
- version: 5.1.4
20
+ version: 5.2.0
35
21
  type: :runtime
36
22
  prerelease: false
37
23
  version_requirements: !ruby/object:Gem::Requirement
38
24
  requirements:
39
25
  - - "~>"
40
26
  - !ruby/object:Gem::Version
41
- version: 5.1.4
27
+ version: 5.2.0
42
28
  - !ruby/object:Gem::Dependency
43
29
  name: rspec
44
30
  requirement: !ruby/object:Gem::Requirement
45
31
  requirements:
46
32
  - - "~>"
47
33
  - !ruby/object:Gem::Version
48
- version: '3.6'
34
+ version: '3.8'
49
35
  type: :development
50
36
  prerelease: false
51
37
  version_requirements: !ruby/object:Gem::Requirement
52
38
  requirements:
53
39
  - - "~>"
54
40
  - !ruby/object:Gem::Version
55
- version: '3.6'
41
+ version: '3.8'
56
42
  description: 'weLaika''s fork of the famous thoughbot suspenders gem.
57
43
 
58
44
  '
@@ -80,34 +66,52 @@ files:
80
66
  - bin/rspec
81
67
  - bin/setup
82
68
  - bin/welaika-suspenders
69
+ - diff_suspenders.sh
83
70
  - lib/suspenders.rb
84
71
  - lib/suspenders/actions.rb
85
72
  - lib/suspenders/adapters/heroku.rb
86
73
  - lib/suspenders/app_builder.rb
87
74
  - lib/suspenders/generators/app_generator.rb
88
- - lib/suspenders/generators/enforce_ssl_generator.rb
89
- - lib/suspenders/generators/initialize_active_job_generator.rb
75
+ - lib/suspenders/generators/ci_generator.rb
76
+ - lib/suspenders/generators/db_optimizations_generator.rb
77
+ - lib/suspenders/generators/decorator_generator.rb
78
+ - lib/suspenders/generators/error_reporting_generator.rb
79
+ - lib/suspenders/generators/factories_generator.rb
80
+ - lib/suspenders/generators/faker_generator.rb
81
+ - lib/suspenders/generators/forms_generator.rb
82
+ - lib/suspenders/generators/js_driver_generator.rb
83
+ - lib/suspenders/generators/lint_generator.rb
84
+ - lib/suspenders/generators/production/email_generator.rb
85
+ - lib/suspenders/generators/production/force_tls_generator.rb
86
+ - lib/suspenders/generators/production/timeout_generator.rb
87
+ - lib/suspenders/generators/security_generator.rb
90
88
  - lib/suspenders/generators/static_generator.rb
91
89
  - lib/suspenders/generators/stylesheet_base_generator.rb
90
+ - lib/suspenders/generators/testing_generator.rb
91
+ - lib/suspenders/generators/views_generator.rb
92
92
  - lib/suspenders/version.rb
93
93
  - lib/welaika-suspenders.rb
94
94
  - spec/adapters/heroku_spec.rb
95
95
  - spec/fakes/bin/heroku
96
+ - spec/features/api_spec.rb
96
97
  - spec/features/cli_help_spec.rb
97
98
  - spec/features/heroku_spec.rb
98
99
  - spec/features/new_project_spec.rb
100
+ - spec/features/production/email_spec.rb
99
101
  - spec/spec_helper.rb
102
+ - spec/support/contain_json_matcher.rb
103
+ - spec/support/exist_as_a_file_matcher.rb
100
104
  - spec/support/fake_heroku.rb
105
+ - spec/support/match_contents_matcher.rb
101
106
  - spec/support/suspenders.rb
102
107
  - suspenders.gemspec
103
108
  - templates/Gemfile.erb
104
109
  - templates/Procfile
105
110
  - templates/README.md.erb
106
- - templates/_css_overrides.html.erb
111
+ - templates/_css_overrides.html.slim
107
112
  - templates/_flashes.html.slim
108
113
  - templates/_javascript.html.slim
109
114
  - templates/action_mailer.rb
110
- - templates/active_job.rb
111
115
  - templates/app.json.erb
112
116
  - templates/application.sass
113
117
  - templates/bin_deploy
@@ -116,19 +120,16 @@ files:
116
120
  - templates/brakeman.rake
117
121
  - templates/browserslist
118
122
  - templates/bundler_audit.rake
119
- - templates/capybara.rb
120
- - templates/circle.yml.erb
123
+ - templates/capybara_helpers.rb
124
+ - templates/chromedriver.rb
121
125
  - templates/config_locales_it.yml.erb
122
- - templates/database_cleaner_rspec.rb
123
126
  - templates/dev.rake
124
127
  - templates/dotfiles/.ctags
125
128
  - templates/dotfiles/.env
126
- - templates/errbit.rb
129
+ - templates/email.rb
127
130
  - templates/errors.rb
128
- - templates/factories.rb
129
- - templates/factory_girl_rspec.rb
131
+ - templates/factory_bot_rspec.rb
130
132
  - templates/faker_rspec.rb
131
- - templates/fixtures_helper_rspec.rb
132
133
  - templates/flashes_helper.rb
133
134
  - templates/i18n.rb
134
135
  - templates/json_encoding.rb
@@ -140,8 +141,8 @@ files:
140
141
  - templates/rubocop.rake
141
142
  - templates/rubocop.yml
142
143
  - templates/rubocop_todo.yml
143
- - templates/sample_service.rb
144
144
  - templates/secrets.yml
145
+ - templates/sentry.rb
145
146
  - templates/shoulda_matchers_config_rspec.rb
146
147
  - templates/slim-lint.rake
147
148
  - templates/slim-lint.yml
@@ -163,24 +164,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
164
  requirements:
164
165
  - - ">="
165
166
  - !ruby/object:Gem::Version
166
- version: 2.4.1
167
+ version: 2.5.1
167
168
  required_rubygems_version: !ruby/object:Gem::Requirement
168
169
  requirements:
169
- - - ">="
170
+ - - ">"
170
171
  - !ruby/object:Gem::Version
171
- version: '0'
172
+ version: 1.3.1
172
173
  requirements: []
173
174
  rubyforge_project:
174
- rubygems_version: 2.6.11
175
+ rubygems_version: 2.7.7
175
176
  signing_key:
176
177
  specification_version: 4
177
178
  summary: Generate a Rails app using thoughtbot's best practices.
178
179
  test_files:
179
180
  - spec/adapters/heroku_spec.rb
180
181
  - spec/fakes/bin/heroku
182
+ - spec/features/api_spec.rb
181
183
  - spec/features/cli_help_spec.rb
182
184
  - spec/features/heroku_spec.rb
183
185
  - spec/features/new_project_spec.rb
186
+ - spec/features/production/email_spec.rb
184
187
  - spec/spec_helper.rb
188
+ - spec/support/contain_json_matcher.rb
189
+ - spec/support/exist_as_a_file_matcher.rb
185
190
  - spec/support/fake_heroku.rb
191
+ - spec/support/match_contents_matcher.rb
186
192
  - spec/support/suspenders.rb
@@ -1,12 +0,0 @@
1
- require "rails/generators"
2
- require_relative "../actions"
3
-
4
- module Suspenders
5
- class EnforceSslGenerator < Rails::Generators::Base
6
- include Suspenders::Actions
7
-
8
- def enforce_ssl
9
- configure_environment "production", "config.force_ssl = true"
10
- end
11
- end
12
- end
@@ -1,19 +0,0 @@
1
- require "rails/generators"
2
-
3
- module Suspenders
4
- class InitializeActiveJobGenerator < Rails::Generators::Base
5
- source_root(
6
- File.expand_path(
7
- File.join("..", "..", "..", "templates"),
8
- File.dirname(__FILE__),
9
- ),
10
- )
11
-
12
- def initialize_active_job
13
- copy_file(
14
- "active_job.rb",
15
- "config/initializers/active_job.rb",
16
- )
17
- end
18
- end
19
- end
@@ -1,7 +0,0 @@
1
- <% if Rails.env.test? %>
2
- <style type="text/css">
3
- * {
4
- transition-property: none !important;
5
- }
6
- </style>
7
- <% end %>
@@ -1,13 +0,0 @@
1
- require "active_job/logging"
2
-
3
- ActiveSupport::Notifications.unsubscribe("enqueue.active_job")
4
-
5
- module ActiveJob
6
- module Logging
7
- class EnqueueLogSubscriber < LogSubscriber
8
- define_method :enqueue, instance_method(:enqueue)
9
- end
10
- end
11
- end
12
-
13
- ActiveJob::Logging::EnqueueLogSubscriber.attach_to(:active_job)
@@ -1,29 +0,0 @@
1
- Capybara.register_driver :chrome do |app|
2
- # https://stackoverflow.com/questions/26354834/netreadtimeout-netreadtimeout-selenium-ruby
3
- client = Selenium::WebDriver::Remote::Http::Default.new
4
- client.read_timeout = 15
5
- client.open_timeout = 15
6
-
7
- profile = Selenium::WebDriver::Chrome::Profile.new
8
- profile['intl.accept_languages'] = I18n.default_locale
9
- Capybara::Selenium::Driver.new(app, browser: :chrome, profile: profile, http_client: client)
10
- end
11
- Capybara.javascript_driver = :chrome
12
- Capybara.default_driver = :chrome
13
- Capybara.default_max_wait_time = 4
14
-
15
- Capybara.asset_host = 'http://localhost:3000'
16
-
17
- module CapybaraHelper
18
- def page!
19
- save_and_open_page
20
- end
21
-
22
- def screenshot!
23
- save_and_open_screenshot
24
- end
25
- end
26
-
27
- RSpec.configure do |config|
28
- config.include CapybaraHelper, type: :feature
29
- end
@@ -1,15 +0,0 @@
1
- machine:
2
- timezone:
3
- Europe/Rome
4
- dependencies:
5
- pre:
6
- - npm install yarn
7
- bundler:
8
- without: [production, staging]
9
- test:
10
- pre:
11
- - mkdir $CIRCLE_ARTIFACTS/coverage $CIRCLE_ARTIFACTS/quality $CIRCLE_ARTIFACTS/security
12
- - bundle exec rubocop --format html -o $CIRCLE_ARTIFACTS/quality/rubocop.html
13
- - bundle exec slim-lint app/views/ &> $CIRCLE_ARTIFACTS/quality/slim-lint.txt
14
- - bundle exec brakeman --exit-on-warn -o $CIRCLE_ARTIFACTS/security/brakeman.html
15
- - bundle exec bundle-audit check --update
@@ -1,28 +0,0 @@
1
- RSpec.configure do |config|
2
- config.use_transactional_fixtures = false
3
-
4
- config.before(:suite) do
5
- DatabaseCleaner.clean_with(:truncation)
6
- end
7
-
8
- config.before do
9
- DatabaseCleaner.strategy = :transaction
10
- end
11
-
12
- config.before(:each, type: :feature) do
13
- driver_shares_db_connection_with_specs =
14
- Capybara.current_driver == :rack_test
15
-
16
- unless driver_shares_db_connection_with_specs
17
- DatabaseCleaner.strategy = :truncation
18
- end
19
- end
20
-
21
- config.before do
22
- DatabaseCleaner.start
23
- end
24
-
25
- config.append_after do
26
- DatabaseCleaner.clean
27
- end
28
- end
data/templates/errbit.rb DELETED
@@ -1,12 +0,0 @@
1
- if ENV['ERRBIT_API_KEY'].present?
2
- Airbrake.configure do |config|
3
- config.host = 'http://errbit.welaika.com'
4
- config.project_id = 1
5
- config.project_key = ENV.fetch('ERRBIT_API_KEY')
6
- config.root_directory = Rails.root
7
- config.logger = Rails.logger
8
- config.environment = Rails.env
9
- config.ignore_environments = %w[test development]
10
- config.blacklist_keys = [/password/i]
11
- end
12
- end
@@ -1,2 +0,0 @@
1
- FactoryGirl.define do
2
- end
@@ -1,3 +0,0 @@
1
- RSpec.configure do |config|
2
- config.include FactoryGirl::Syntax::Methods
3
- end
@@ -1,9 +0,0 @@
1
- module FixturesHelpers
2
- def fixture_path_for(filename)
3
- File.expand_path(File.join('..', '..', 'fixtures', filename), __FILE__)
4
- end
5
- end
6
-
7
- RSpec.configure do |config|
8
- config.include FixturesHelpers
9
- end
@@ -1,5 +0,0 @@
1
- class SampleService < ActiveInteraction::Base
2
- def execute
3
- # https://github.com/orgsync/active_interaction
4
- end
5
- end