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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +2 -2
- data/.gitignore +1 -0
- data/CHANGELOG.md +82 -45
- data/CONTRIBUTING.md +17 -0
- data/Gemfile.lock +2 -2
- data/README.md +22 -0
- data/lib/boring_generators/generator_helper.rb +34 -0
- data/lib/boring_generators/version.rb +1 -1
- data/lib/generators/boring/active_storage/azure/install/install_generator.rb +1 -1
- data/lib/generators/boring/annotate/install/install_generator.rb +52 -0
- data/lib/generators/boring/audit/install/install_generator.rb +1 -1
- data/lib/generators/boring/avo/install/install_generator.rb +25 -0
- data/lib/generators/boring/cancancan/install/install_generator.rb +34 -0
- data/lib/generators/boring/devise/doorkeeper/install/install_generator.rb +190 -0
- data/lib/generators/boring/devise/install/install_generator.rb +11 -0
- data/lib/generators/boring/dotenv/install/install_generator.rb +51 -0
- data/lib/generators/boring/dotenv/install/templates/.env +3 -0
- data/lib/generators/boring/factory_bot/install/install_generator.rb +1 -1
- data/lib/generators/boring/faker/install/install_generator.rb +1 -1
- data/lib/generators/boring/favicon/build/build_generator.rb +1 -1
- data/lib/generators/boring/figjam/install/install_generator.rb +33 -0
- data/lib/generators/boring/honeybadger/install/install_generator.rb +47 -0
- data/lib/generators/boring/honeybadger/install/templates/README +6 -0
- data/lib/generators/boring/honeybadger/install/templates/honeybadger.yml.tt +26 -0
- data/lib/generators/boring/letter_opener/install/install_generator.rb +38 -0
- data/lib/generators/boring/oauth/google/install/install_generator.rb +2 -2
- data/lib/generators/boring/pronto/base_generator.rb +78 -0
- data/lib/generators/boring/pronto/github_action/install/install_generator.rb +27 -0
- data/lib/generators/boring/pronto/github_action/install/templates/pronto.yml.tt +53 -0
- data/lib/generators/boring/pronto/gitlab_ci/install/install_generator.rb +112 -0
- data/lib/generators/boring/pronto/gitlab_ci/install/templates/.gitlab-ci.yml.tt +22 -0
- data/lib/generators/boring/pronto/gitlab_ci/install/templates/README +7 -0
- data/lib/generators/boring/rack_mini_profiler/install/install_generator.rb +38 -0
- data/lib/generators/boring/rails_erd/install/install_generator.rb +35 -0
- data/lib/generators/boring/rspec/install/install_generator.rb +1 -1
- data/lib/generators/boring/rswag/install/install_generator.rb +166 -0
- data/lib/generators/boring/rswag/install/templates/README +10 -0
- data/lib/generators/boring/sentry/install/install_generator.rb +48 -0
- data/lib/generators/boring/sentry/install/templates/sentry.rb +7 -0
- data/lib/generators/boring/vcr/install/install_generator.rb +125 -0
- data/lib/generators/boring/vcr/install/templates/rspec/vcr.rb.tt +8 -0
- data/lib/generators/boring/webmock/install/install_generator.rb +87 -0
- data/lib/generators/boring/whenever/install/install_generator.rb +25 -0
- data/tmp/templates/app_template/.ruby-version +1 -1
- data/tmp/templates/app_template/Gemfile +1 -1
- data/tmp/templates/app_template/config/boot.rb +1 -1
- 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,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,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.
|
1
|
+
2.7.3
|
@@ -1 +1 @@
|
|
1
|
-
require "
|
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.
|
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:
|
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
|