boring_generators 0.12.0 → 0.14.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/.github/workflows/ci.yml +2 -2
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +82 -45
  5. data/CONTRIBUTING.md +17 -0
  6. data/Gemfile.lock +2 -2
  7. data/README.md +22 -0
  8. data/lib/boring_generators/generator_helper.rb +34 -0
  9. data/lib/boring_generators/version.rb +1 -1
  10. data/lib/generators/boring/active_storage/azure/install/install_generator.rb +1 -1
  11. data/lib/generators/boring/annotate/install/install_generator.rb +52 -0
  12. data/lib/generators/boring/audit/install/install_generator.rb +1 -1
  13. data/lib/generators/boring/avo/install/install_generator.rb +25 -0
  14. data/lib/generators/boring/cancancan/install/install_generator.rb +34 -0
  15. data/lib/generators/boring/devise/doorkeeper/install/install_generator.rb +190 -0
  16. data/lib/generators/boring/devise/install/install_generator.rb +11 -0
  17. data/lib/generators/boring/dotenv/install/install_generator.rb +51 -0
  18. data/lib/generators/boring/dotenv/install/templates/.env +3 -0
  19. data/lib/generators/boring/factory_bot/install/install_generator.rb +1 -1
  20. data/lib/generators/boring/faker/install/install_generator.rb +1 -1
  21. data/lib/generators/boring/favicon/build/build_generator.rb +1 -1
  22. data/lib/generators/boring/figjam/install/install_generator.rb +33 -0
  23. data/lib/generators/boring/honeybadger/install/install_generator.rb +47 -0
  24. data/lib/generators/boring/honeybadger/install/templates/README +6 -0
  25. data/lib/generators/boring/honeybadger/install/templates/honeybadger.yml.tt +26 -0
  26. data/lib/generators/boring/letter_opener/install/install_generator.rb +38 -0
  27. data/lib/generators/boring/oauth/google/install/install_generator.rb +2 -2
  28. data/lib/generators/boring/pronto/base_generator.rb +78 -0
  29. data/lib/generators/boring/pronto/github_action/install/install_generator.rb +27 -0
  30. data/lib/generators/boring/pronto/github_action/install/templates/pronto.yml.tt +53 -0
  31. data/lib/generators/boring/pronto/gitlab_ci/install/install_generator.rb +112 -0
  32. data/lib/generators/boring/pronto/gitlab_ci/install/templates/.gitlab-ci.yml.tt +22 -0
  33. data/lib/generators/boring/pronto/gitlab_ci/install/templates/README +7 -0
  34. data/lib/generators/boring/rack_mini_profiler/install/install_generator.rb +38 -0
  35. data/lib/generators/boring/rails_erd/install/install_generator.rb +35 -0
  36. data/lib/generators/boring/rspec/install/install_generator.rb +1 -1
  37. data/lib/generators/boring/rswag/install/install_generator.rb +166 -0
  38. data/lib/generators/boring/rswag/install/templates/README +10 -0
  39. data/lib/generators/boring/sentry/install/install_generator.rb +48 -0
  40. data/lib/generators/boring/sentry/install/templates/sentry.rb +7 -0
  41. data/lib/generators/boring/vcr/install/install_generator.rb +125 -0
  42. data/lib/generators/boring/vcr/install/templates/rspec/vcr.rb.tt +8 -0
  43. data/lib/generators/boring/webmock/install/install_generator.rb +87 -0
  44. data/lib/generators/boring/whenever/install/install_generator.rb +25 -0
  45. data/tmp/templates/app_template/.ruby-version +1 -1
  46. data/tmp/templates/app_template/Gemfile +1 -1
  47. data/tmp/templates/app_template/config/boot.rb +1 -1
  48. metadata +30 -2
@@ -0,0 +1,166 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Boring
4
+ module Rswag
5
+ class InstallGenerator < Rails::Generators::Base
6
+ desc "Adds rswag gem to the application"
7
+ source_root File.expand_path("templates", __dir__)
8
+
9
+ class_option :rails_port,
10
+ type: :string,
11
+ desc: "Tell us the port number where you normally run your rails app. Defaults to PORT 3000",
12
+ default: "3000"
13
+ class_option :authentication_type,
14
+ type: :string,
15
+ desc: "Tell us the authentication type you use in your rails app. Options: ['basic', 'bearer', 'api_key']. Defaults to 'basic'",
16
+ default: 'basic'
17
+ class_option :skip_api_authentication,
18
+ type: :boolean,
19
+ desc: "Use this option with value 'true' if you don't want to add Authentication when making API calls via swagger docs.",
20
+ default: false
21
+ class_option :api_authentication_options,
22
+ type: :hash,
23
+ desc: 'Use together with authentication_type. Required for "api_key" authentication which has dynamic set of options. See: https://swagger.io/docs/specification/authentication. Example: "--api_authentication_options=name:api_key in:header"'
24
+ class_option :enable_swagger_ui_authentication,
25
+ type: :boolean,
26
+ desc: "Use this option with value 'true' for securing your API docs behind a basic authentication to block unauthorized access",
27
+ default: false
28
+
29
+ def verify_presence_of_rspec_gem
30
+ gem_file_content_array = File.readlines("Gemfile")
31
+
32
+ rspec_is_installed = gem_file_content_array.any? { |line| line.include?("rspec-rails") }
33
+
34
+ return if rspec_is_installed
35
+
36
+ say "We couldn't find rspec-rails gem which is a dependency for the rswag gem. Please configure rspec and run the generator again!"
37
+
38
+ abort
39
+ end
40
+
41
+ def add_rswag_gems
42
+ say "Adding rswag gems to Gemfile", :green
43
+
44
+ gem 'rswag-api'
45
+ gem 'rswag-ui'
46
+ gem 'rswag-specs', group: [:development, :test]
47
+ end
48
+
49
+ def install_rswag
50
+ say "\nRunning rswag install generator to add required files", :green
51
+
52
+ Bundler.with_unbundled_env do
53
+ run 'bundle install'
54
+
55
+ generate 'rswag:api:install'
56
+ generate 'rswag:ui:install'
57
+ generate 'rswag:specs:install', [env: 'test']
58
+ end
59
+ end
60
+
61
+ def update_api_host
62
+ say "\nUpdating API Host URL", :green
63
+
64
+ rails_port = options[:rails_port]
65
+
66
+ gsub_file "spec/swagger_helper.rb",
67
+ "url: 'https://{defaultHost}'",
68
+ "url: 'http://{defaultHost}'"
69
+ gsub_file "spec/swagger_helper.rb",
70
+ "default: 'www.example.com'",
71
+ "default: 'localhost:#{rails_port}'"
72
+ end
73
+
74
+ def add_authentication_scheme
75
+ if options[:skip_api_authentication]
76
+ return
77
+ end
78
+
79
+ say "\nAdding Authentication for APIs", :green
80
+
81
+ authentication_type = options[:authentication_type]
82
+
83
+ if authentication_type == 'api_key'
84
+ validate_api_authentication_options
85
+
86
+ authentication_options = options[:api_authentication_options]
87
+ end
88
+
89
+ authentication_content = case authentication_type
90
+ when 'bearer'
91
+ <<~RUBY.chomp.indent(0)
92
+ type: :http,
93
+ scheme: :bearer
94
+ RUBY
95
+ when 'api_key'
96
+ <<~RUBY
97
+ type: :apiKey,
98
+ name: "#{authentication_options['name']}",
99
+ in: "#{authentication_options['in']}",
100
+ RUBY
101
+ else
102
+ <<~RUBY
103
+ type: :http,
104
+ scheme: :basic
105
+ RUBY
106
+ end
107
+
108
+ gsub_file "spec/swagger_helper.rb",
109
+ /servers: \[.*\]/m do |match|
110
+ configuration_content = <<~RUBY.indent(6)
111
+ components: {
112
+ securitySchemes: {
113
+ authorization: {\n#{authentication_content.chomp.indent(6)}
114
+ }
115
+ }
116
+ },
117
+ security: [
118
+ authorization: []
119
+ ]
120
+ RUBY
121
+
122
+ match << ",\n#{configuration_content.chomp}"
123
+ end
124
+ end
125
+
126
+ def enable_swagger_ui_authentication
127
+ return unless options[:enable_swagger_ui_authentication]
128
+
129
+ say "\nAdding Basic Authentication to secure the UI", :green
130
+
131
+ uncomment_lines 'config/initializers/rswag_ui.rb', /c.basic_auth_enabled/
132
+ uncomment_lines 'config/initializers/rswag_ui.rb', /c.basic_auth_credentials/
133
+ gsub_file "config/initializers/rswag_ui.rb",
134
+ "c.basic_auth_credentials 'username', 'password'",
135
+ 'c.basic_auth_credentials Rails.application.credentials.dig(:swagger_ui, :username), Rails.application.credentials.dig(:swagger_ui, :password)'
136
+
137
+ say "❗️❗️\nusername will be used from `Rails.application.credentials.dig(:swagger_ui, :username)` and password from `Rails.application.credentials.dig(:swagger_ui, :password)`. You can change these values if they don't match with your app.\n", :yellow
138
+ end
139
+
140
+ def show_readme
141
+ readme "README"
142
+ end
143
+
144
+ private
145
+
146
+ def validate_api_authentication_options
147
+ api_authentication_options = options[:api_authentication_options]
148
+
149
+ if api_authentication_options.blank?
150
+ say "api_authentication_options args should be provided for api_key authentication", :red
151
+
152
+ abort
153
+ end
154
+
155
+ missing_options = %w[name in] - api_authentication_options.keys
156
+
157
+ if missing_options.length.positive?
158
+ say "Option/s '#{missing_options.join(', ')}' should be present for api_key authentication!", :red
159
+ say 'Example of valid options: "--api_authentication_options=name:api_key in:query"', :yellow
160
+
161
+ abort
162
+ end
163
+ end
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,10 @@
1
+ ===============================================================================
2
+
3
+ To get up and running with rswag you can do the following next:
4
+
5
+ 1. Write a rswag spec by following instructions from Getting Started guide at https://github.com/rswag/rswag#getting-started
6
+ 2. Once the spec is ready, generate the swagger file with `rails rswag`
7
+ 3. Run the rails server with `rails s`
8
+ 4. Assuming your app is at "localhost:3000", you will find your API docs at `http://localhost:3000/api-docs/index.html`
9
+
10
+ ===============================================================================
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Boring
4
+ module Sentry
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path("templates", __dir__)
7
+ desc 'Adds Sentry to the app'
8
+
9
+ class_option :use_env_variable, type: :boolean, aliases: '-ev',
10
+ desc: 'Use ENV variable for Sentry. By default Rails credentials will be used.'
11
+ class_option :breadcrumbs_logger, type: :array, aliases: '-bl', default: [:active_support_logger, :http_logger],
12
+ desc: 'Set the breadcrumbs logger. By default [:active_support_logger, :http_logger] will be used.'
13
+
14
+ def add_sentry_gems
15
+ say 'Adding Sentry gem', :green
16
+
17
+ Bundler.with_unbundled_env do
18
+ run 'bundle add sentry-ruby sentry-rails'
19
+ end
20
+ end
21
+
22
+ def configure_sentry_gem
23
+ say 'Configuring Sentry gem', :green
24
+
25
+ @sentry_dsn_key = sentry_dsn_key
26
+ @breadcrumbs_logger_options = options[:breadcrumbs_logger].map(&:to_sym)
27
+
28
+ template 'sentry.rb', 'config/initializers/sentry.rb'
29
+
30
+ show_alert_message
31
+ end
32
+
33
+ private
34
+
35
+ def sentry_dsn_key
36
+ if options[:use_env_variable]
37
+ "ENV['SENTRY_DSN_KEY']"
38
+ else
39
+ "Rails.application.credentials.dig(:sentry, :dsn_key)"
40
+ end
41
+ end
42
+
43
+ def show_alert_message
44
+ say "❗️❗️\nThe DSN key for Sentry will be used from `#{sentry_dsn_key}`. You can change this value if it doesn't match with your app.\n", :yellow
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,7 @@
1
+ Sentry.init do |config|
2
+ config.dsn = <%= @sentry_dsn_key %>
3
+ # enable performance monitoring
4
+ config.enable_tracing = true
5
+ # get breadcrumbs from logs
6
+ config.breadcrumbs_logger = <%= @breadcrumbs_logger_options %>
7
+ end
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'boring_generators/generator_helper'
4
+
5
+ module Boring
6
+ module Vcr
7
+ class InstallGenerator < Rails::Generators::Base
8
+ include BoringGenerators::GeneratorHelper
9
+
10
+ desc "Adds VCR to the application"
11
+ source_root File.expand_path("templates", __dir__)
12
+
13
+ class_option :testing_framework,
14
+ type: :string,
15
+ alias: "-tf",
16
+ default: "minitest",
17
+ enum: %w[rspec minitest],
18
+ desc:
19
+ "Tell us which test framework you are using. Defaults to minitest"
20
+
21
+ class_option :stubbing_libraries,
22
+ type: :array,
23
+ alias: "-sl",
24
+ default: ["webmock"],
25
+ enum: %w[webmock typhoeus faraday excon],
26
+ desc:
27
+ "Tell us stubbing library you want to use separated by space. Defaults to webmock"
28
+
29
+ def verify_presence_of_test_helper
30
+ return if rspec? || (minitest? && File.exist?("test/test_helper.rb"))
31
+
32
+ say "We couldn't find test/test_helper.rb. Please configure Minitest and rerun the generator.",
33
+ :red
34
+
35
+ abort
36
+ end
37
+
38
+ def verify_presence_of_rails_helper
39
+ return if minitest? || (rspec? && File.exist?("spec/rails_helper.rb"))
40
+
41
+ say "We couldn't find spec/rails_helper.rb. Please configure RSpec and rerun the generator. Consider running `rails generate boring:rspec:install` to set up RSpec.",
42
+ :red
43
+
44
+ abort
45
+ end
46
+
47
+ def add_vcr_gem
48
+ say "Adding VCR gems to Gemfile", :green
49
+
50
+ check_and_install_gem "vcr", group: :test
51
+ end
52
+
53
+ def add_stubbing_library_gems
54
+ say "Adding stubbing library gems to Gemfile", :green
55
+
56
+ options[:stubbing_libraries].uniq.each do |stubbing_library|
57
+ check_and_install_gem stubbing_library, group: :test
58
+ end
59
+ end
60
+
61
+ def setup_vcr_for_rspec
62
+ return unless rspec?
63
+
64
+ say "Setting up VCR for RSpec", :green
65
+
66
+ @stubbing_libraries = format_stubbing_libraries
67
+
68
+ template("rspec/vcr.rb", "spec/support/vcr.rb")
69
+
70
+ unless all_support_files_are_required?
71
+ inject_into_file "spec/rails_helper.rb",
72
+ "require 'support/vcr'\n\n",
73
+ before: /\A/
74
+ end
75
+ end
76
+
77
+ def setup_vcr_for_minitest
78
+ return unless minitest?
79
+
80
+ say "Setting up VCR for Minitest", :green
81
+
82
+ vcr_config = <<~RUBY
83
+ require "vcr"
84
+
85
+ VCR.configure do |c|
86
+ c.cassette_library_dir = "test/vcr"
87
+ c.hook_into #{format_stubbing_libraries}
88
+ c.ignore_localhost = true
89
+ end
90
+ RUBY
91
+
92
+ inject_into_file "test/test_helper.rb", vcr_config, end: /^end\s*\Z/m
93
+ end
94
+
95
+ private
96
+
97
+ def format_stubbing_libraries
98
+ options[:stubbing_libraries]
99
+ .map { |stubbing_library| ":#{stubbing_library}" }
100
+ .join(", ")
101
+ end
102
+
103
+ def rspec?
104
+ options[:testing_framework].to_s == "rspec"
105
+ end
106
+
107
+ def minitest?
108
+ options[:testing_framework].to_s == "minitest"
109
+ end
110
+
111
+ def all_support_files_are_required?
112
+ line_to_check =
113
+ "Rails.root.glob('spec/support/**/*.rb').sort.each { |f| require f }"
114
+ rails_file_content_array = File.readlines("spec/rails_helper.rb")
115
+ rails_file_content_array.any? do |line|
116
+ line !~ /^\s*#/ &&
117
+ (
118
+ line.include?(line_to_check) ||
119
+ line.include?(line_to_check.gsub("'", '"'))
120
+ )
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,8 @@
1
+ require "vcr"
2
+
3
+ VCR.configure do |c|
4
+ c.cassette_library_dir = "spec/cassettes"
5
+ c.hook_into <%= @stubbing_libraries %>
6
+ c.configure_rspec_metadata!
7
+ c.ignore_localhost = true
8
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'boring_generators/generator_helper'
4
+
5
+ module Boring
6
+ module Webmock
7
+ class InstallGenerator < Rails::Generators::Base
8
+ include BoringGenerators::GeneratorHelper
9
+
10
+ desc "Adds webmock gem to the application"
11
+
12
+ SUPPORTED_TEST_FRAMEWORKS = %w[rspec minitest]
13
+
14
+ # can't use "test_framework" option which would be a good naming for this because it's being used by Rails::Generator::Base. It's better not to have any conflict with the base class so prefixing with "app_" here
15
+ class_option :app_test_framework,
16
+ type: :string,
17
+ desc: "Tell us the framework you use for writing tests in your application. Supported options are #{SUPPORTED_TEST_FRAMEWORKS}",
18
+ default: "minitest"
19
+
20
+ def verify_test_framework_configurations
21
+ app_test_framework = options[:app_test_framework]
22
+
23
+ if app_test_framework.blank?
24
+ say <<~WARNING, :red
25
+ ERROR: Unsupported test framework: #{app_test_framework}
26
+ WARNING
27
+
28
+ abort
29
+ else
30
+ verify_presence_of_test_framework
31
+ end
32
+ end
33
+
34
+ def add_webmock_gem
35
+ say "Adding webmock gem", :green
36
+
37
+ check_and_install_gem "webmock", group: :test
38
+ end
39
+
40
+ def configure_webmock
41
+ app_test_framework = options[:app_test_framework]
42
+
43
+ say "Configuring webmock", :green
44
+
45
+ if app_test_framework == "minitest"
46
+ configure_minitest
47
+ else
48
+ configure_rspec
49
+ end
50
+ end
51
+
52
+ private
53
+
54
+ def verify_presence_of_test_framework
55
+ app_test_framework = options[:app_test_framework]
56
+ test_framework_folder = { minitest: "test", rspec: "spec" }.dig(app_test_framework.to_sym) || ''
57
+
58
+ test_folder_is_present = Dir.exist?(test_framework_folder) && Dir.entries(test_framework_folder).length.positive?
59
+
60
+ return if test_folder_is_present
61
+
62
+ say "We couldn't find #{test_framework_folder} in your project. Please make sure #{app_test_framework} is configured correctly and run the generator again!", :red
63
+
64
+ abort
65
+ end
66
+
67
+ def configure_minitest
68
+ inject_into_file 'test/test_helper.rb',
69
+ before: /\n(class|module) ActiveSupport/ do
70
+ <<~RUBY
71
+ \nrequire 'webmock/minitest'
72
+ WebMock.disable_net_connect!(allow_localhost: true)
73
+ RUBY
74
+ end
75
+ end
76
+
77
+ def configure_rspec
78
+ inject_into_file "spec/spec_helper.rb",
79
+ "require 'webmock/rspec'\n\n",
80
+ before: /\A/
81
+ inject_into_file "spec/spec_helper.rb",
82
+ "\tWebMock.disable_net_connect!(allow_localhost: true)\n\n",
83
+ after: "RSpec.configure do |config|\n"
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Boring
4
+ module Whenever
5
+ class InstallGenerator < Rails::Generators::Base
6
+ desc "Adds whenever gem to the application for managing cron jobs"
7
+
8
+ def add_whenever_gem
9
+ say "Adding whenever gem", :green
10
+
11
+ Bundler.with_unbundled_env do
12
+ run "bundle add whenever"
13
+ end
14
+ end
15
+
16
+ def add_schedule_file
17
+ say "Create schedule.rb file", :green
18
+
19
+ Bundler.with_unbundled_env do
20
+ run "bundle exec wheneverize ."
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1 +1 @@
1
- 2.7.0
1
+ 2.7.3
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
  git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
3
 
4
- ruby '2.7.0'
4
+ ruby '2.7.3'
5
5
 
6
6
  # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
7
7
  gem 'rails', '~> 6.0.3', '>= 6.0.3.2'
@@ -1 +1 @@
1
- require "rails/all"
1
+ require "bundler/setup" # Set up gems listed in the Gemfile.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boring_generators
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abhay Nikam
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-08 00:00:00.000000000 Z
11
+ date: 2024-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -53,17 +53,21 @@ files:
53
53
  - exe/boring
54
54
  - lib/boring_generators.rb
55
55
  - lib/boring_generators/cli.rb
56
+ - lib/boring_generators/generator_helper.rb
56
57
  - lib/boring_generators/version.rb
57
58
  - lib/generators/boring/active_storage/aws/install/install_generator.rb
58
59
  - lib/generators/boring/active_storage/azure/install/install_generator.rb
59
60
  - lib/generators/boring/active_storage/google/install/install_generator.rb
60
61
  - lib/generators/boring/ahoy/install/install_generator.rb
61
62
  - lib/generators/boring/ahoy/install/templates/README
63
+ - lib/generators/boring/annotate/install/install_generator.rb
62
64
  - lib/generators/boring/audit/install/install_generator.rb
65
+ - lib/generators/boring/avo/install/install_generator.rb
63
66
  - lib/generators/boring/bootstrap/install/install_generator.rb
64
67
  - lib/generators/boring/bootstrap/install/templates/application.scss
65
68
  - lib/generators/boring/bullet/install/install_generator.rb
66
69
  - lib/generators/boring/bullet/install/templates/bullet.rb
70
+ - lib/generators/boring/cancancan/install/install_generator.rb
67
71
  - lib/generators/boring/ci/circleci/install/install_generator.rb
68
72
  - lib/generators/boring/ci/circleci/install/templates/config.psql.yml.tt
69
73
  - lib/generators/boring/ci/circleci/install/templates/config.sql.yml.tt
@@ -72,12 +76,16 @@ files:
72
76
  - lib/generators/boring/ci/github_action/install/templates/ci.yml.tt
73
77
  - lib/generators/boring/ci/travisci/install/install_generator.rb
74
78
  - lib/generators/boring/ci/travisci/install/templates/.travis.yml.tt
79
+ - lib/generators/boring/devise/doorkeeper/install/install_generator.rb
75
80
  - lib/generators/boring/devise/install/install_generator.rb
81
+ - lib/generators/boring/dotenv/install/install_generator.rb
82
+ - lib/generators/boring/dotenv/install/templates/.env
76
83
  - lib/generators/boring/factory_bot/install/install_generator.rb
77
84
  - lib/generators/boring/factory_bot/install/templates/users.rb
78
85
  - lib/generators/boring/faker/install/install_generator.rb
79
86
  - lib/generators/boring/favicon/build/build_generator.rb
80
87
  - lib/generators/boring/favicon/build/templates/favicon.html.erb.tt
88
+ - lib/generators/boring/figjam/install/install_generator.rb
81
89
  - lib/generators/boring/flipper/install/install_generator.rb
82
90
  - lib/generators/boring/flipper/install/templates/initializer.rb.tt
83
91
  - lib/generators/boring/font_awesome/ruby_gem/install/install_generator.rb
@@ -86,7 +94,11 @@ files:
86
94
  - lib/generators/boring/graphql/install/install_generator.rb
87
95
  - lib/generators/boring/graphql/install/templates/base_resolver.rb
88
96
  - lib/generators/boring/graphql/install/templates/hello_world_resolver.rb
97
+ - lib/generators/boring/honeybadger/install/install_generator.rb
98
+ - lib/generators/boring/honeybadger/install/templates/README
99
+ - lib/generators/boring/honeybadger/install/templates/honeybadger.yml.tt
89
100
  - lib/generators/boring/jquery/install/install_generator.rb
101
+ - lib/generators/boring/letter_opener/install/install_generator.rb
90
102
  - lib/generators/boring/oauth/base_generator.rb
91
103
  - lib/generators/boring/oauth/facebook/install/install_generator.rb
92
104
  - lib/generators/boring/oauth/facebook/install/templates/README
@@ -110,13 +122,25 @@ files:
110
122
  - lib/generators/boring/payments/stripe/install/templates/stripe.rb
111
123
  - lib/generators/boring/payments/stripe/install/templates/views/stripe/checkouts/create.js.erb
112
124
  - lib/generators/boring/payments/stripe/install/templates/views/stripe/checkouts/show.html.erb
125
+ - lib/generators/boring/pronto/base_generator.rb
126
+ - lib/generators/boring/pronto/github_action/install/install_generator.rb
127
+ - lib/generators/boring/pronto/github_action/install/templates/pronto.yml.tt
128
+ - lib/generators/boring/pronto/gitlab_ci/install/install_generator.rb
129
+ - lib/generators/boring/pronto/gitlab_ci/install/templates/.gitlab-ci.yml.tt
130
+ - lib/generators/boring/pronto/gitlab_ci/install/templates/README
113
131
  - lib/generators/boring/pry/install/install_generator.rb
114
132
  - lib/generators/boring/pry/install/templates/pryrc
115
133
  - lib/generators/boring/pundit/install/install_generator.rb
134
+ - lib/generators/boring/rack_mini_profiler/install/install_generator.rb
116
135
  - lib/generators/boring/rails_admin/install/install_generator.rb
136
+ - lib/generators/boring/rails_erd/install/install_generator.rb
117
137
  - lib/generators/boring/rspec/install/install_generator.rb
138
+ - lib/generators/boring/rswag/install/install_generator.rb
139
+ - lib/generators/boring/rswag/install/templates/README
118
140
  - lib/generators/boring/rubocop/install/install_generator.rb
119
141
  - lib/generators/boring/rubocop/install/templates/.rubocop.yml.tt
142
+ - lib/generators/boring/sentry/install/install_generator.rb
143
+ - lib/generators/boring/sentry/install/templates/sentry.rb
120
144
  - lib/generators/boring/simple_form/install/install_generator.rb
121
145
  - lib/generators/boring/stimulus/install/install_generator.rb
122
146
  - lib/generators/boring/tailwind/install/install_generator.rb
@@ -125,6 +149,10 @@ files:
125
149
  - lib/generators/boring/twilio/install/install_generator.rb
126
150
  - lib/generators/boring/twilio/install/templates/README
127
151
  - lib/generators/boring/twilio/install/templates/twilio.rb
152
+ - lib/generators/boring/vcr/install/install_generator.rb
153
+ - lib/generators/boring/vcr/install/templates/rspec/vcr.rb.tt
154
+ - lib/generators/boring/webmock/install/install_generator.rb
155
+ - lib/generators/boring/whenever/install/install_generator.rb
128
156
  - tmp/templates/app_template/.ruby-version
129
157
  - tmp/templates/app_template/Gemfile
130
158
  - tmp/templates/app_template/README.md