boring_generators 0.12.0 → 0.14.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.
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