boring_generators 0.11.0 → 0.12.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/codeql-analysis.yml +70 -0
- data/.gitignore +2 -0
- data/CHANGELOG.md +11 -1
- data/Gemfile.lock +10 -12
- data/README.md +6 -1
- data/lib/boring_generators/version.rb +1 -1
- data/lib/generators/boring/bootstrap/install/install_generator.rb +15 -1
- data/lib/generators/boring/factory_bot/install/install_generator.rb +46 -0
- data/lib/generators/boring/factory_bot/install/templates/users.rb +8 -0
- data/lib/generators/boring/faker/install/install_generator.rb +17 -0
- data/lib/generators/boring/flipper/install/install_generator.rb +37 -0
- data/lib/generators/boring/flipper/install/templates/initializer.rb.tt +19 -0
- data/lib/generators/boring/overcommit/base_generator.rb +45 -0
- data/lib/generators/boring/overcommit/pre_commit/rubocop/install/install_generator.rb +62 -0
- data/lib/generators/boring/rspec/install/install_generator.rb +50 -0
- data/lib/generators/boring/rubocop/install/install_generator.rb +32 -6
- data/lib/generators/boring/rubocop/install/templates/.rubocop.yml.tt +6 -3
- data/tmp/templates/app_template/yarn.lock +61 -91
- metadata +12 -4
- data/tmp/templates/app_template/log/development.log +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 359acba051da88cd0afd42b265845dd57da2ac688e57466cfca79a87fdba8dec
|
4
|
+
data.tar.gz: cf6b4543e010b57774ce160a49e02c962b4c90b1764cd6ff504725dffeced453
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0895d2a677ff5c80e2249a0f5dca86f6f1ab1b74b0d53e2d08d5c2f8f437daef054511e4b6a6c15854e40721e5a21e81a41dec74267a072031628ecb86332fa
|
7
|
+
data.tar.gz: 5e31f9a9804338af68046deb67f081e5754a9a09b2b61c651eb0191e259936878af814ff67241234ea802a4311887a8ed81cf7e5354514ba88333f8c585d6674
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
2
|
+
# to commit it to your repository.
|
3
|
+
#
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
5
|
+
# or to provide custom queries or build logic.
|
6
|
+
#
|
7
|
+
# ******** NOTE ********
|
8
|
+
# We have attempted to detect the languages in your repository. Please check
|
9
|
+
# the `language` matrix defined below to confirm you have the correct set of
|
10
|
+
# supported CodeQL languages.
|
11
|
+
#
|
12
|
+
name: "CodeQL"
|
13
|
+
|
14
|
+
on:
|
15
|
+
push:
|
16
|
+
branches: [ main ]
|
17
|
+
pull_request:
|
18
|
+
# The branches below must be a subset of the branches above
|
19
|
+
branches: [ main ]
|
20
|
+
schedule:
|
21
|
+
- cron: '41 1 * * 3'
|
22
|
+
|
23
|
+
jobs:
|
24
|
+
analyze:
|
25
|
+
name: Analyze
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
permissions:
|
28
|
+
actions: read
|
29
|
+
contents: read
|
30
|
+
security-events: write
|
31
|
+
|
32
|
+
strategy:
|
33
|
+
fail-fast: false
|
34
|
+
matrix:
|
35
|
+
language: [ 'javascript', 'ruby' ]
|
36
|
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
37
|
+
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
38
|
+
|
39
|
+
steps:
|
40
|
+
- name: Checkout repository
|
41
|
+
uses: actions/checkout@v2
|
42
|
+
|
43
|
+
# Initializes the CodeQL tools for scanning.
|
44
|
+
- name: Initialize CodeQL
|
45
|
+
uses: github/codeql-action/init@v1
|
46
|
+
with:
|
47
|
+
languages: ${{ matrix.language }}
|
48
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
49
|
+
# By default, queries listed here will override any specified in a config file.
|
50
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
51
|
+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
52
|
+
|
53
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
54
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
55
|
+
- name: Autobuild
|
56
|
+
uses: github/codeql-action/autobuild@v1
|
57
|
+
|
58
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
59
|
+
# 📚 https://git.io/JvXDl
|
60
|
+
|
61
|
+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
62
|
+
# and modify them (or add more) to build your code if your project
|
63
|
+
# uses a compiled language
|
64
|
+
|
65
|
+
#- run: |
|
66
|
+
# make bootstrap
|
67
|
+
# make release
|
68
|
+
|
69
|
+
- name: Perform CodeQL Analysis
|
70
|
+
uses: github/codeql-action/analyze@v1
|
data/CHANGELOG.md
CHANGED
@@ -2,11 +2,20 @@
|
|
2
2
|
|
3
3
|
## master (unreleased)
|
4
4
|
|
5
|
+
## 0.12.0 (May 8th, 2023)
|
6
|
+
* Adds Flipper generator. ([@abhaynikam][])
|
7
|
+
* Adds FactoryBot generator. ([@abhaynikam][])
|
8
|
+
* Adds Faker generator. ([@abhaynikam][])
|
9
|
+
* Adds RSpec generator. ([@abhaynikam][])
|
10
|
+
* Update default node-version for GitHub Action generator and fixes PG setup issues. ([@abhaynikam][])
|
11
|
+
* Updates Bootstrap generator for supporting Bootstrap 5 with popper.js. ([@abhaynikam][])
|
12
|
+
* Adds Overcommit generator for RuboCop. ([@coolprobn][])
|
13
|
+
* Updates RuboCop generator to add rubocop-rake extension and support test frameworks ([@coolprobn][])
|
14
|
+
|
5
15
|
## 0.11.0 (June 23rd, 2021)
|
6
16
|
* Adds Stimulus generator. ([@abhaynikam][])
|
7
17
|
* Adds Rails Admin generator. ([@abhaynikam][])
|
8
18
|
* Adds Paper Trail generator. ([@abhaynikam][])
|
9
|
-
* Update default node-version for GitHub Action generator and fixes PG setup issues. ([@abhaynikam][])
|
10
19
|
|
11
20
|
## 0.10.0 (May 26th, 2021)
|
12
21
|
* Updates Stripe payment generator. ([@abhaynikam][])
|
@@ -67,3 +76,4 @@
|
|
67
76
|
[@CiTroNaK]: https://github.com/CiTroNaK
|
68
77
|
[@jamesglover]: https://github.com/JamesGlover
|
69
78
|
[@luathn]: https://github.com/luathn
|
79
|
+
[@coolprobn]: https://github.com/coolprobn
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
boring_generators (0.
|
4
|
+
boring_generators (0.11.0)
|
5
5
|
railties
|
6
6
|
|
7
7
|
GEM
|
@@ -71,7 +71,7 @@ GEM
|
|
71
71
|
activesupport (>= 4.2.0)
|
72
72
|
i18n (1.8.10)
|
73
73
|
concurrent-ruby (~> 1.0)
|
74
|
-
loofah (2.
|
74
|
+
loofah (2.20.0)
|
75
75
|
crass (~> 1.0.2)
|
76
76
|
nokogiri (>= 1.5.9)
|
77
77
|
mail (2.7.1)
|
@@ -79,14 +79,12 @@ GEM
|
|
79
79
|
marcel (1.0.1)
|
80
80
|
method_source (1.0.0)
|
81
81
|
mini_mime (1.1.0)
|
82
|
-
mini_portile2 (2.
|
82
|
+
mini_portile2 (2.4.0)
|
83
83
|
minitest (5.14.4)
|
84
84
|
nio4r (2.5.7)
|
85
|
-
nokogiri (1.
|
86
|
-
mini_portile2 (~> 2.
|
87
|
-
|
88
|
-
racc (1.5.2)
|
89
|
-
rack (2.2.3)
|
85
|
+
nokogiri (1.10.10)
|
86
|
+
mini_portile2 (~> 2.4.0)
|
87
|
+
rack (2.2.6.4)
|
90
88
|
rack-test (1.1.0)
|
91
89
|
rack (>= 1.0, < 3)
|
92
90
|
rails (6.0.3.6)
|
@@ -107,8 +105,8 @@ GEM
|
|
107
105
|
rails-dom-testing (2.0.3)
|
108
106
|
activesupport (>= 4.2.0)
|
109
107
|
nokogiri (>= 1.6)
|
110
|
-
rails-html-sanitizer (1.
|
111
|
-
loofah (~> 2.
|
108
|
+
rails-html-sanitizer (1.5.0)
|
109
|
+
loofah (~> 2.19, >= 2.19.1)
|
112
110
|
railties (6.0.3.6)
|
113
111
|
actionpack (= 6.0.3.6)
|
114
112
|
activesupport (= 6.0.3.6)
|
@@ -126,7 +124,7 @@ GEM
|
|
126
124
|
sqlite3 (1.4.2)
|
127
125
|
thor (1.1.0)
|
128
126
|
thread_safe (0.3.6)
|
129
|
-
tzinfo (1.2.
|
127
|
+
tzinfo (1.2.10)
|
130
128
|
thread_safe (~> 0.1)
|
131
129
|
websocket-driver (0.7.3)
|
132
130
|
websocket-extensions (>= 0.1.0)
|
@@ -145,4 +143,4 @@ DEPENDENCIES
|
|
145
143
|
sqlite3 (~> 1.4)
|
146
144
|
|
147
145
|
BUNDLED WITH
|
148
|
-
2.
|
146
|
+
2.3.12
|
data/README.md
CHANGED
@@ -54,7 +54,7 @@ The boring generator introduces following generators:
|
|
54
54
|
- [Install CircleCI](https://www.boringgenerators.com/blog/2021-01-02-configure-circleci/): `rails generate boring:ci:circleci:install --repository_name=<name> --ruby_version=<version>`
|
55
55
|
- [Install GitHub Actions](https://www.boringgenerators.com/blog/2020-12-17-configure-github-actions/): `rails generate boring:ci:github_action:install --repository_name=<name> --ruby_version=<version>`
|
56
56
|
- Install Travis CI: `rails generate boring:ci:travisci:install --ruby_version=<version>`
|
57
|
-
- Install Rubocop: `rails generate boring:rubocop:install --ruby_version=<version>`
|
57
|
+
- Install Rubocop: `rails generate boring:rubocop:install --ruby_version=<version> --test_gem=<test_framework_name>`
|
58
58
|
- Build Favicon: `rails generate boring:favicon:build --application_name=<application_name> --favico_letter=<favico_letter> --primary_color=<color>`
|
59
59
|
- Install Pundit: `rails generate boring:pundit:install`
|
60
60
|
- Install GraphQL: `rails generate boring:graphql:install`
|
@@ -70,6 +70,11 @@ The boring generator introduces following generators:
|
|
70
70
|
- Install Stimulus: `rails generate boring:stimulus:install`
|
71
71
|
- Install Rails Admin: `rails generate boring:rails_admin:install`
|
72
72
|
- Install Paper Trail: `rails generate boring:paper_trail:install`
|
73
|
+
- Install Flipper: `rails generate boring:flipper:install`
|
74
|
+
- Install RSpec: `rails generate boring:rspec:install`
|
75
|
+
- Install FactoryBot: `rails generate boring:factory_bot:install`
|
76
|
+
- Install Faker: `rails generate boring:faker:install`
|
77
|
+
- Install Overcommit with RuboCop: `rails generate boring:overcommit:pre_commit:rubocop:install`
|
73
78
|
|
74
79
|
## Screencasts
|
75
80
|
|
@@ -8,7 +8,7 @@ module Boring
|
|
8
8
|
|
9
9
|
def add_bootstrap_package
|
10
10
|
say "Adding bootstrap packages", :green
|
11
|
-
run "yarn add bootstrap jquery
|
11
|
+
run "yarn add bootstrap jquery @popperjs/core"
|
12
12
|
end
|
13
13
|
|
14
14
|
def add_jquery_plugin_provider_to_webpack_environment
|
@@ -48,6 +48,20 @@ module Boring
|
|
48
48
|
\n
|
49
49
|
import "bootstrap"
|
50
50
|
import "stylesheets/application"
|
51
|
+
import { Tooltip, Popover } from "bootstrap"
|
52
|
+
|
53
|
+
document.addEventListener("turbolinks:load", () => {
|
54
|
+
// Both of these are from the Bootstrap 5 docs
|
55
|
+
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
56
|
+
var tooltipList = tooltipTriggerList.map(function(tooltipTriggerEl) {
|
57
|
+
return new Tooltip(tooltipTriggerEl)
|
58
|
+
})
|
59
|
+
|
60
|
+
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
|
61
|
+
var popoverList = popoverTriggerList.map(function(popoverTriggerEl) {
|
62
|
+
return new Popover(popoverTriggerEl)
|
63
|
+
})
|
64
|
+
})
|
51
65
|
RUBY
|
52
66
|
append_to_file "app/javascript/packs/application.js", application_js_content
|
53
67
|
else
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Boring
|
4
|
+
module FactoryBot
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
desc "Adds FactoryBot to the application"
|
7
|
+
source_root File.expand_path("templates", __dir__)
|
8
|
+
|
9
|
+
class_option :skip_factory, type: :boolean, aliases: "-s",
|
10
|
+
desc: "Skips adding sample factory"
|
11
|
+
class_option :skip_faker, type: :boolean, aliases: "-s",
|
12
|
+
desc: "Skips faker install"
|
13
|
+
|
14
|
+
def add_factory_bot_gem
|
15
|
+
log :adding, "FactoryBot"
|
16
|
+
Bundler.with_unbundled_env do
|
17
|
+
run "bundle add factory_bot_rails --group='developement,test'"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def add_sample_factory
|
22
|
+
return if options[:skip_factory]
|
23
|
+
|
24
|
+
log :adding, "Sample users factory"
|
25
|
+
copy_file "users.rb", "test/factories/users.rb"
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_factory_bot_helper_method
|
29
|
+
log :adding, "factory_bot helper"
|
30
|
+
data = <<~RUBY
|
31
|
+
include FactoryBot::Syntax::Methods
|
32
|
+
RUBY
|
33
|
+
|
34
|
+
inject_into_file "test/test_helper.rb", optimize_indentation(data, 2),
|
35
|
+
after: /ActiveSupport::TestCase*\n/,
|
36
|
+
verbose: false
|
37
|
+
end
|
38
|
+
|
39
|
+
def add_faker_gem
|
40
|
+
return if options[:skip_faker]
|
41
|
+
|
42
|
+
Rails::Command.invoke :generate, ["boring:faker:install"]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Boring
|
4
|
+
module Faker
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
desc "Adds Faker to the application"
|
7
|
+
source_root File.expand_path("templates", __dir__)
|
8
|
+
|
9
|
+
def add_faker_gem
|
10
|
+
log :adding, "faker"
|
11
|
+
Bundler.with_unbundled_env do
|
12
|
+
run "bundle add faker --group='developement,test'"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Boring
|
4
|
+
module Flipper
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
desc "Adds Active Record Flipper to the application"
|
7
|
+
source_root File.expand_path("templates", __dir__)
|
8
|
+
|
9
|
+
def add_flipper_gem
|
10
|
+
say "Adding Flipper gem", :green
|
11
|
+
Bundler.with_unbundled_env do
|
12
|
+
run "bundle add flipper-active_record flipper-ui"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def run_flipper_active_record_generator
|
17
|
+
say "Running Active Record Flipper generator", :green
|
18
|
+
Bundler.with_unbundled_env do
|
19
|
+
run "bundle exec rails generate flipper:active_record"
|
20
|
+
run "bundle exec rails db:migrate"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def add_flipper_initializer
|
25
|
+
say "Adding Flipper initializer", :green
|
26
|
+
copy_file "initializer.rb", "config/initializers/flipper.rb"
|
27
|
+
end
|
28
|
+
|
29
|
+
def add_flipper_routes
|
30
|
+
say "Adding Flipper UI routes", :green
|
31
|
+
route <<~ROUTE
|
32
|
+
mount Flipper::UI.app(Flipper) => '/admins/flipper'
|
33
|
+
ROUTE
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'flipper/ui'
|
2
|
+
require "flipper/adapters/active_record"
|
3
|
+
|
4
|
+
Flipper::UI.configure do |config|
|
5
|
+
if Rails.env.production?
|
6
|
+
config.banner_text = "Production Environment"
|
7
|
+
else
|
8
|
+
config.banner_text = "Non-Production Environment"
|
9
|
+
config.banner_class = "primary"
|
10
|
+
end
|
11
|
+
|
12
|
+
config.fun = false
|
13
|
+
config.cloud_recommendation = false
|
14
|
+
end
|
15
|
+
|
16
|
+
# - Define All Actor here -
|
17
|
+
Flipper.register(:admins) do |actor, context|
|
18
|
+
actor.respond_to?(:admin?) && actor.admin?
|
19
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
|
5
|
+
module Boring
|
6
|
+
module Overcommit
|
7
|
+
class BaseGenerator < Rails::Generators::Base
|
8
|
+
desc "Adds and configures overcommit gem in the application"
|
9
|
+
|
10
|
+
class_option :skip_configuration,
|
11
|
+
type: :boolean, aliases: "-s",
|
12
|
+
desc: "Skips adding overcommit development configuration"
|
13
|
+
|
14
|
+
def add_overcommit_gem
|
15
|
+
say "Adding overcommit gem", :green
|
16
|
+
|
17
|
+
if overcommit_gem_exists?
|
18
|
+
say "Overcommit gem is already installed!", :yellow
|
19
|
+
else
|
20
|
+
Bundler.with_unbundled_env do
|
21
|
+
run "bundle add overcommit --group development,test"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def add_git_hooks_with_overcommit
|
27
|
+
return if options[:skip_configuration]
|
28
|
+
|
29
|
+
say "\nInstalling git hooks to your project", :green
|
30
|
+
|
31
|
+
Bundler.with_unbundled_env do
|
32
|
+
run "bundle exec overcommit --install"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def overcommit_gem_exists?
|
39
|
+
gem_file_content_array = File.readlines("Gemfile")
|
40
|
+
|
41
|
+
gem_file_content_array.any? { |line| line.include?("overcommit") }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "generators/boring/overcommit/base_generator"
|
4
|
+
|
5
|
+
module Boring
|
6
|
+
module Overcommit
|
7
|
+
module PreCommit
|
8
|
+
module Rubocop
|
9
|
+
class InstallGenerator < Boring::Overcommit::BaseGenerator
|
10
|
+
DEFAULT_RUBY_VERSION = "2.7.1"
|
11
|
+
|
12
|
+
class_option :ruby_version, type: :string, aliases: "-v",
|
13
|
+
desc: "Tell us the ruby version you use for the application. Defaults to Ruby #{DEFAULT_RUBY_VERSION}"
|
14
|
+
|
15
|
+
def check_and_install_rubocop
|
16
|
+
return if rubocop_gem_exists?
|
17
|
+
|
18
|
+
say "\nRuboCop gem is not installed. Running the generator to install it!\n", :red
|
19
|
+
|
20
|
+
ruby_version = options[:ruby_version].presence || DEFAULT_RUBY_VERSION
|
21
|
+
|
22
|
+
run "bundle exec rails generate boring:rubocop:install --ruby_version=#{ruby_version}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def configure_rubocop
|
26
|
+
say "\nAdding configurations for running RuboCop on pre-commit", :green
|
27
|
+
|
28
|
+
uncomment_lines(".overcommit.yml", /PreCommit:/)
|
29
|
+
|
30
|
+
gsub_file(".overcommit.yml", /PreCommit:/) do
|
31
|
+
<<~YAML
|
32
|
+
PreCommit:
|
33
|
+
RuboCop:
|
34
|
+
enabled: true
|
35
|
+
on_warn: fail # Treat all warnings as failures
|
36
|
+
problem_on_unmodified_line: ignore # run RuboCop only on modified code'
|
37
|
+
YAML
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def enable_overcommit_configurations
|
42
|
+
say "\nEnabling new configurations", :green
|
43
|
+
|
44
|
+
run "git add .overcommit.yml"
|
45
|
+
|
46
|
+
Bundler.with_unbundled_env do
|
47
|
+
run "bundle exec overcommit --sign"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def rubocop_gem_exists?
|
54
|
+
gem_file_content_array = File.readlines("Gemfile")
|
55
|
+
|
56
|
+
gem_file_content_array.any? { |line| line.include?("rubocop") }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Boring
|
4
|
+
module Rspec
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
desc "Adds RSpec to the application"
|
7
|
+
source_root File.expand_path("templates", __dir__)
|
8
|
+
|
9
|
+
class_option :skip_factory_bot, type: :boolean, aliases: "-sfb",
|
10
|
+
desc: "Skips installing factory bot"
|
11
|
+
class_option :skip_faker, type: :boolean, aliases: "-sf",
|
12
|
+
desc: "Skips faker install"
|
13
|
+
|
14
|
+
def add_rspec_gem
|
15
|
+
log :adding, "rspec-rails"
|
16
|
+
Bundler.with_unbundled_env do
|
17
|
+
run "bundle add rspec-rails --group='developement,test'"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def run_rspec_active_record_generator
|
22
|
+
log :running, "rspec generator"
|
23
|
+
Bundler.with_unbundled_env do
|
24
|
+
run "rails generate rspec:install"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_rspec_initializer
|
29
|
+
log :override, "test_framework to rspec"
|
30
|
+
environment <<~end_of_config
|
31
|
+
config.generators do |g|
|
32
|
+
g.test_framework :rspec
|
33
|
+
end
|
34
|
+
end_of_config
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_factory_bot
|
38
|
+
return if options[:skip_factory_bot]
|
39
|
+
|
40
|
+
Rails::Command.invoke :generate, ["boring:factory_bot:install"]
|
41
|
+
end
|
42
|
+
|
43
|
+
def add_faker_gem
|
44
|
+
return if options[:skip_faker]
|
45
|
+
|
46
|
+
Rails::Command.invoke :generate, ["boring:faker:install"]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -9,20 +9,24 @@ module Boring
|
|
9
9
|
DEFAULT_RUBY_VERSION = "2.7.1"
|
10
10
|
|
11
11
|
class_option :skip_adding_rubocop_rules, type: :boolean, aliases: "-s",
|
12
|
-
|
13
|
-
class_option :ruby_version,
|
14
|
-
|
12
|
+
desc: "Skip adding rubocop rules and add empty file."
|
13
|
+
class_option :ruby_version, type: :string, aliases: "-v",
|
14
|
+
desc: "Tell us the ruby version which you use for the application. Default to Ruby #{DEFAULT_RUBY_VERSION}", default: DEFAULT_RUBY_VERSION
|
15
|
+
class_option :test_gem, type: :string,
|
16
|
+
desc: "Tell us the framework you use for writing tests in your application. Supported options are ['rspec', 'minitest']"
|
15
17
|
|
16
18
|
def add_rubocop_gems
|
17
19
|
say "Adding rubocop gems", :green
|
18
|
-
|
20
|
+
rubocop_gem_content = <<~RUBY
|
19
21
|
\n
|
20
22
|
\t# A Ruby static code analyzer, based on the community Ruby style guide
|
21
23
|
\tgem "rubocop", require: false
|
22
24
|
\tgem "rubocop-rails", require: false
|
23
25
|
\tgem "rubocop-performance", require: false
|
26
|
+
\tgem "rubocop-rake", require: false
|
27
|
+
#{rubocop_test_gem_content}
|
24
28
|
RUBY
|
25
|
-
insert_into_file "Gemfile",
|
29
|
+
insert_into_file "Gemfile", rubocop_gem_content, after: /group :development do/
|
26
30
|
Bundler.with_unbundled_env do
|
27
31
|
run "bundle install"
|
28
32
|
end
|
@@ -31,9 +35,31 @@ module Boring
|
|
31
35
|
def add_rails_prefered_rubocop_rules
|
32
36
|
say "Adding rubocop style guides", :green
|
33
37
|
@skip_adding_rules = options[:skip_adding_rubocop_rules]
|
34
|
-
@target_ruby_version = options[:ruby_version]
|
38
|
+
@target_ruby_version = options[:ruby_version]
|
35
39
|
template(".rubocop.yml", ".rubocop.yml")
|
36
40
|
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def rubocop_test_gem_content
|
45
|
+
test_gem = options[:test_gem]
|
46
|
+
|
47
|
+
return if test_gem.blank?
|
48
|
+
|
49
|
+
if %w[rspec minitest].exclude?(test_gem)
|
50
|
+
raise(NotImplementedError, "#{test_gem} is not supported as a test_gem option! Supported options are ['rspec', 'minitest']")
|
51
|
+
end
|
52
|
+
|
53
|
+
if test_gem.eql?('rspec')
|
54
|
+
@test_gem_extension = 'rubocop-rspec'
|
55
|
+
|
56
|
+
"\tgem \"rubocop-rspec\", require: false"
|
57
|
+
else
|
58
|
+
@test_gem_extension = 'rubocop-minitest'
|
59
|
+
|
60
|
+
"\tgem \"rubocop-minitest\", require: false"
|
61
|
+
end
|
62
|
+
end
|
37
63
|
end
|
38
64
|
end
|
39
65
|
end
|
@@ -1,8 +1,12 @@
|
|
1
1
|
require:
|
2
2
|
- rubocop-performance
|
3
3
|
- rubocop-rails
|
4
|
+
- rubocop-rake
|
5
|
+
<%- if @test_gem_extension -%>
|
6
|
+
- <%= @test_gem_extension %>
|
7
|
+
<%- end -%>
|
4
8
|
|
5
|
-
<%- unless @skip_adding_rules
|
9
|
+
<%- unless @skip_adding_rules -%>
|
6
10
|
AllCops:
|
7
11
|
TargetRubyVersion: <%= @target_ruby_version %>
|
8
12
|
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
|
@@ -258,5 +262,4 @@ Performance/DeletePrefix:
|
|
258
262
|
|
259
263
|
Performance/DeleteSuffix:
|
260
264
|
Enabled: true
|
261
|
-
|
262
|
-
<% end %>
|
265
|
+
<%- end -%>
|
@@ -1295,9 +1295,9 @@ babel-plugin-macros@^2.8.0:
|
|
1295
1295
|
resolve "^1.12.0"
|
1296
1296
|
|
1297
1297
|
balanced-match@^1.0.0:
|
1298
|
-
version "1.0.
|
1299
|
-
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.
|
1300
|
-
integrity
|
1298
|
+
version "1.0.2"
|
1299
|
+
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
1300
|
+
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
1301
1301
|
|
1302
1302
|
base64-js@^1.0.2:
|
1303
1303
|
version "1.5.1"
|
@@ -1470,31 +1470,21 @@ browserify-zlib@^0.2.0:
|
|
1470
1470
|
dependencies:
|
1471
1471
|
pako "~1.0.5"
|
1472
1472
|
|
1473
|
-
browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.6.4:
|
1474
|
-
version "4.16.
|
1475
|
-
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.
|
1476
|
-
integrity sha512-
|
1473
|
+
browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.6.4:
|
1474
|
+
version "4.16.6"
|
1475
|
+
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
|
1476
|
+
integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
|
1477
1477
|
dependencies:
|
1478
|
-
caniuse-lite "^1.0.
|
1479
|
-
colorette "^1.2.
|
1480
|
-
electron-to-chromium "^1.3.
|
1478
|
+
caniuse-lite "^1.0.30001219"
|
1479
|
+
colorette "^1.2.2"
|
1480
|
+
electron-to-chromium "^1.3.723"
|
1481
1481
|
escalade "^3.1.1"
|
1482
|
-
node-releases "^1.1.
|
1483
|
-
|
1484
|
-
browserslist@^4.12.0:
|
1485
|
-
version "4.14.0"
|
1486
|
-
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000"
|
1487
|
-
integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==
|
1488
|
-
dependencies:
|
1489
|
-
caniuse-lite "^1.0.30001111"
|
1490
|
-
electron-to-chromium "^1.3.523"
|
1491
|
-
escalade "^3.0.2"
|
1492
|
-
node-releases "^1.1.60"
|
1482
|
+
node-releases "^1.1.71"
|
1493
1483
|
|
1494
1484
|
buffer-from@^1.0.0:
|
1495
|
-
version "1.1.
|
1496
|
-
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.
|
1497
|
-
integrity sha512-
|
1485
|
+
version "1.1.2"
|
1486
|
+
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
1487
|
+
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
1498
1488
|
|
1499
1489
|
buffer-xor@^1.0.3:
|
1500
1490
|
version "1.0.3"
|
@@ -1634,15 +1624,10 @@ caniuse-api@^3.0.0:
|
|
1634
1624
|
lodash.memoize "^4.1.2"
|
1635
1625
|
lodash.uniq "^4.5.0"
|
1636
1626
|
|
1637
|
-
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.
|
1638
|
-
version "1.0.
|
1639
|
-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.
|
1640
|
-
integrity sha512-
|
1641
|
-
|
1642
|
-
caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111:
|
1643
|
-
version "1.0.30001116"
|
1644
|
-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001116.tgz#f3a3dea347f9294a3bdc4292309039cc84117fb8"
|
1645
|
-
integrity sha512-f2lcYnmAI5Mst9+g0nkMIznFGsArRmZ0qU+dnq8l91hymdc2J3SFbiPhOJEeDqC1vtE8nc1qNQyklzB8veJefQ==
|
1627
|
+
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
|
1628
|
+
version "1.0.30001230"
|
1629
|
+
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71"
|
1630
|
+
integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==
|
1646
1631
|
|
1647
1632
|
case-sensitive-paths-webpack-plugin@^2.3.0:
|
1648
1633
|
version "2.3.0"
|
@@ -1806,9 +1791,9 @@ color-name@^1.0.0:
|
|
1806
1791
|
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
1807
1792
|
|
1808
1793
|
color-string@^1.5.4:
|
1809
|
-
version "1.
|
1810
|
-
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.
|
1811
|
-
integrity sha512-
|
1794
|
+
version "1.9.0"
|
1795
|
+
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa"
|
1796
|
+
integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
|
1812
1797
|
dependencies:
|
1813
1798
|
color-name "^1.0.0"
|
1814
1799
|
simple-swizzle "^0.2.2"
|
@@ -1821,10 +1806,10 @@ color@^3.0.0:
|
|
1821
1806
|
color-convert "^1.9.1"
|
1822
1807
|
color-string "^1.5.4"
|
1823
1808
|
|
1824
|
-
colorette@^1.2.1:
|
1825
|
-
version "1.2.
|
1826
|
-
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.
|
1827
|
-
integrity sha512-
|
1809
|
+
colorette@^1.2.1, colorette@^1.2.2:
|
1810
|
+
version "1.2.2"
|
1811
|
+
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
|
1812
|
+
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
|
1828
1813
|
|
1829
1814
|
combined-stream@^1.0.6, combined-stream@~1.0.6:
|
1830
1815
|
version "1.0.8"
|
@@ -1862,7 +1847,7 @@ compression-webpack-plugin@^4.0.0:
|
|
1862
1847
|
concat-map@0.0.1:
|
1863
1848
|
version "0.0.1"
|
1864
1849
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
1865
|
-
integrity
|
1850
|
+
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
1866
1851
|
|
1867
1852
|
concat-stream@^1.5.0:
|
1868
1853
|
version "1.6.2"
|
@@ -2238,9 +2223,9 @@ decamelize@^1.1.2, decamelize@^1.2.0:
|
|
2238
2223
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
2239
2224
|
|
2240
2225
|
decode-uri-component@^0.2.0:
|
2241
|
-
version "0.2.
|
2242
|
-
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.
|
2243
|
-
integrity
|
2226
|
+
version "0.2.2"
|
2227
|
+
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
2228
|
+
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
2244
2229
|
|
2245
2230
|
define-properties@^1.1.3:
|
2246
2231
|
version "1.1.3"
|
@@ -2359,15 +2344,10 @@ ecc-jsbn@~0.1.1:
|
|
2359
2344
|
jsbn "~0.1.0"
|
2360
2345
|
safer-buffer "^2.1.0"
|
2361
2346
|
|
2362
|
-
electron-to-chromium@^1.3.
|
2363
|
-
version "1.3.
|
2364
|
-
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.
|
2365
|
-
integrity sha512
|
2366
|
-
|
2367
|
-
electron-to-chromium@^1.3.634:
|
2368
|
-
version "1.3.635"
|
2369
|
-
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.635.tgz#8d1591eeca6b257d380061a2c04f0b3cc6c9e33b"
|
2370
|
-
integrity sha512-RRriZOLs9CpW6KTLmgBqyUdnY0QNqqWs0HOtuQGGEMizOTNNn1P7sGRBxARnUeLejOsgwjDyRqT3E/CSst02ZQ==
|
2347
|
+
electron-to-chromium@^1.3.723:
|
2348
|
+
version "1.3.739"
|
2349
|
+
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz#f07756aa92cabd5a6eec6f491525a64fe62f98b9"
|
2350
|
+
integrity sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A==
|
2371
2351
|
|
2372
2352
|
elliptic@^6.5.3:
|
2373
2353
|
version "6.5.4"
|
@@ -2471,11 +2451,6 @@ es-to-primitive@^1.2.1:
|
|
2471
2451
|
is-date-object "^1.0.1"
|
2472
2452
|
is-symbol "^1.0.2"
|
2473
2453
|
|
2474
|
-
escalade@^3.0.2:
|
2475
|
-
version "3.0.2"
|
2476
|
-
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4"
|
2477
|
-
integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==
|
2478
|
-
|
2479
2454
|
escalade@^3.1.1:
|
2480
2455
|
version "3.1.1"
|
2481
2456
|
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
@@ -3542,9 +3517,9 @@ json-stringify-safe@~5.0.1:
|
|
3542
3517
|
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
|
3543
3518
|
|
3544
3519
|
json5@^1.0.1:
|
3545
|
-
version "1.0.
|
3546
|
-
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.
|
3547
|
-
integrity sha512-
|
3520
|
+
version "1.0.2"
|
3521
|
+
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
|
3522
|
+
integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
|
3548
3523
|
dependencies:
|
3549
3524
|
minimist "^1.2.0"
|
3550
3525
|
|
@@ -3619,9 +3594,9 @@ loader-runner@^2.4.0:
|
|
3619
3594
|
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
|
3620
3595
|
|
3621
3596
|
loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
|
3622
|
-
version "1.4.
|
3623
|
-
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.
|
3624
|
-
integrity sha512-
|
3597
|
+
version "1.4.2"
|
3598
|
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
|
3599
|
+
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
|
3625
3600
|
dependencies:
|
3626
3601
|
big.js "^5.2.2"
|
3627
3602
|
emojis-list "^3.0.0"
|
@@ -3874,16 +3849,16 @@ minimalistic-crypto-utils@^1.0.1:
|
|
3874
3849
|
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
|
3875
3850
|
|
3876
3851
|
minimatch@^3.0.4, minimatch@~3.0.2:
|
3877
|
-
version "3.0.
|
3878
|
-
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.
|
3879
|
-
integrity sha512-
|
3852
|
+
version "3.0.8"
|
3853
|
+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1"
|
3854
|
+
integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==
|
3880
3855
|
dependencies:
|
3881
3856
|
brace-expansion "^1.1.7"
|
3882
3857
|
|
3883
3858
|
minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
|
3884
|
-
version "1.2.
|
3885
|
-
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.
|
3886
|
-
integrity sha512-
|
3859
|
+
version "1.2.7"
|
3860
|
+
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
3861
|
+
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
3887
3862
|
|
3888
3863
|
minipass-collect@^1.0.2:
|
3889
3864
|
version "1.0.2"
|
@@ -4058,15 +4033,10 @@ node-libs-browser@^2.2.1:
|
|
4058
4033
|
util "^0.11.0"
|
4059
4034
|
vm-browserify "^1.0.1"
|
4060
4035
|
|
4061
|
-
node-releases@^1.1.
|
4062
|
-
version "1.1.
|
4063
|
-
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.
|
4064
|
-
integrity sha512-
|
4065
|
-
|
4066
|
-
node-releases@^1.1.69:
|
4067
|
-
version "1.1.69"
|
4068
|
-
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6"
|
4069
|
-
integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==
|
4036
|
+
node-releases@^1.1.71:
|
4037
|
+
version "1.1.72"
|
4038
|
+
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
|
4039
|
+
integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
|
4070
4040
|
|
4071
4041
|
node-sass@^4.14.1:
|
4072
4042
|
version "4.14.1"
|
@@ -4427,9 +4397,9 @@ path-key@^2.0.1:
|
|
4427
4397
|
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
|
4428
4398
|
|
4429
4399
|
path-parse@^1.0.6:
|
4430
|
-
version "1.0.
|
4431
|
-
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.
|
4432
|
-
integrity sha512-
|
4400
|
+
version "1.0.7"
|
4401
|
+
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
4402
|
+
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
4433
4403
|
|
4434
4404
|
path-type@^1.0.0:
|
4435
4405
|
version "1.1.0"
|
@@ -5251,9 +5221,9 @@ q@^1.1.2:
|
|
5251
5221
|
integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
|
5252
5222
|
|
5253
5223
|
qs@~6.5.2:
|
5254
|
-
version "6.5.
|
5255
|
-
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.
|
5256
|
-
integrity sha512-
|
5224
|
+
version "6.5.3"
|
5225
|
+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
|
5226
|
+
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
|
5257
5227
|
|
5258
5228
|
query-string@^4.1.0:
|
5259
5229
|
version "4.3.4"
|
@@ -5784,9 +5754,9 @@ source-map-resolve@^0.5.0:
|
|
5784
5754
|
urix "^0.1.0"
|
5785
5755
|
|
5786
5756
|
source-map-support@~0.5.12, source-map-support@~0.5.19:
|
5787
|
-
version "0.5.
|
5788
|
-
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.
|
5789
|
-
integrity sha512-
|
5757
|
+
version "0.5.21"
|
5758
|
+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
|
5759
|
+
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
|
5790
5760
|
dependencies:
|
5791
5761
|
buffer-from "^1.0.0"
|
5792
5762
|
source-map "^0.6.0"
|
@@ -6152,9 +6122,9 @@ terser-webpack-plugin@^4.0.0:
|
|
6152
6122
|
webpack-sources "^1.4.3"
|
6153
6123
|
|
6154
6124
|
terser@^4.1.2:
|
6155
|
-
version "4.8.
|
6156
|
-
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.
|
6157
|
-
integrity sha512-
|
6125
|
+
version "4.8.1"
|
6126
|
+
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f"
|
6127
|
+
integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==
|
6158
6128
|
dependencies:
|
6159
6129
|
commander "^2.20.0"
|
6160
6130
|
source-map "~0.6.1"
|
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.12.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: 2023-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -37,6 +37,7 @@ files:
|
|
37
37
|
- ".github/FUNDING.yml"
|
38
38
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
39
39
|
- ".github/workflows/ci.yml"
|
40
|
+
- ".github/workflows/codeql-analysis.yml"
|
40
41
|
- ".gitignore"
|
41
42
|
- CHANGELOG.md
|
42
43
|
- CODE_OF_CONDUCT.md
|
@@ -72,8 +73,13 @@ files:
|
|
72
73
|
- lib/generators/boring/ci/travisci/install/install_generator.rb
|
73
74
|
- lib/generators/boring/ci/travisci/install/templates/.travis.yml.tt
|
74
75
|
- lib/generators/boring/devise/install/install_generator.rb
|
76
|
+
- lib/generators/boring/factory_bot/install/install_generator.rb
|
77
|
+
- lib/generators/boring/factory_bot/install/templates/users.rb
|
78
|
+
- lib/generators/boring/faker/install/install_generator.rb
|
75
79
|
- lib/generators/boring/favicon/build/build_generator.rb
|
76
80
|
- lib/generators/boring/favicon/build/templates/favicon.html.erb.tt
|
81
|
+
- lib/generators/boring/flipper/install/install_generator.rb
|
82
|
+
- lib/generators/boring/flipper/install/templates/initializer.rb.tt
|
77
83
|
- lib/generators/boring/font_awesome/ruby_gem/install/install_generator.rb
|
78
84
|
- lib/generators/boring/font_awesome/yarn/install/install_generator.rb
|
79
85
|
- lib/generators/boring/font_awesome/yarn/install/templates/application.scss
|
@@ -95,6 +101,8 @@ files:
|
|
95
101
|
- lib/generators/boring/oauth/twitter/install/install_generator.rb
|
96
102
|
- lib/generators/boring/oauth/twitter/install/templates/README
|
97
103
|
- lib/generators/boring/oauth/twitter/install/templates/omniauth_callbacks_controller.rb
|
104
|
+
- lib/generators/boring/overcommit/base_generator.rb
|
105
|
+
- lib/generators/boring/overcommit/pre_commit/rubocop/install/install_generator.rb
|
98
106
|
- lib/generators/boring/paper_trail/install/install_generator.rb
|
99
107
|
- lib/generators/boring/payments/stripe/install/install_generator.rb
|
100
108
|
- lib/generators/boring/payments/stripe/install/templates/README
|
@@ -106,6 +114,7 @@ files:
|
|
106
114
|
- lib/generators/boring/pry/install/templates/pryrc
|
107
115
|
- lib/generators/boring/pundit/install/install_generator.rb
|
108
116
|
- lib/generators/boring/rails_admin/install/install_generator.rb
|
117
|
+
- lib/generators/boring/rspec/install/install_generator.rb
|
109
118
|
- lib/generators/boring/rubocop/install/install_generator.rb
|
110
119
|
- lib/generators/boring/rubocop/install/templates/.rubocop.yml.tt
|
111
120
|
- lib/generators/boring/simple_form/install/install_generator.rb
|
@@ -182,7 +191,6 @@ files:
|
|
182
191
|
- tmp/templates/app_template/lib/assets/.keep
|
183
192
|
- tmp/templates/app_template/lib/tasks/.keep
|
184
193
|
- tmp/templates/app_template/log/.keep
|
185
|
-
- tmp/templates/app_template/log/development.log
|
186
194
|
- tmp/templates/app_template/node_modules/.bin/acorn
|
187
195
|
- tmp/templates/app_template/node_modules/.bin/autoprefixer
|
188
196
|
- tmp/templates/app_template/node_modules/.bin/browserslist
|
@@ -2603,7 +2611,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2603
2611
|
- !ruby/object:Gem::Version
|
2604
2612
|
version: '0'
|
2605
2613
|
requirements: []
|
2606
|
-
rubygems_version: 3.
|
2614
|
+
rubygems_version: 3.2.33
|
2607
2615
|
signing_key:
|
2608
2616
|
specification_version: 4
|
2609
2617
|
summary: Boring generators aims to make your development faster by delegating boring
|
@@ -1,72 +0,0 @@
|
|
1
|
-
[1m[35m (1.6ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
2
|
-
↳ test/generators/devise_install_generator_test.rb:3:in `require'
|
3
|
-
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
4
|
-
-------------------------------------------------------------------
|
5
|
-
DeviseInstallGeneratorTest: test_should_install_devise_successfully
|
6
|
-
-------------------------------------------------------------------
|
7
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
8
|
-
[1m[35m (2.0ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
9
|
-
↳ test/generators/devise_install_generator_test.rb:3:in `require'
|
10
|
-
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
11
|
-
-------------------------------------------------------------------
|
12
|
-
DeviseInstallGeneratorTest: test_should_install_devise_successfully
|
13
|
-
-------------------------------------------------------------------
|
14
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
15
|
-
[1m[35m (1.5ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
16
|
-
↳ test/generators/devise_install_generator_test.rb:3:in `require'
|
17
|
-
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
18
|
-
-------------------------------------------------------------------
|
19
|
-
DeviseInstallGeneratorTest: test_should_install_devise_successfully
|
20
|
-
-------------------------------------------------------------------
|
21
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
22
|
-
[1m[35m (0.9ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
23
|
-
↳ test/generators/devise_install_generator_test.rb:3:in `require'
|
24
|
-
[1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m
|
25
|
-
---------------------------------------------------------
|
26
|
-
DeviseInstallGeneratorTest: test_should_skip_devise_model
|
27
|
-
---------------------------------------------------------
|
28
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
29
|
-
[1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m
|
30
|
-
-------------------------------------------------------------------
|
31
|
-
DeviseInstallGeneratorTest: test_should_install_devise_successfully
|
32
|
-
-------------------------------------------------------------------
|
33
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
34
|
-
[1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m
|
35
|
-
---------------------------------------------------------
|
36
|
-
DeviseInstallGeneratorTest: test_should_skip_devise_views
|
37
|
-
---------------------------------------------------------
|
38
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
39
|
-
[1m[35m (1.3ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
40
|
-
↳ test/generators/devise_install_generator_test.rb:3:in `require'
|
41
|
-
[1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m
|
42
|
-
---------------------------------------------------------
|
43
|
-
DeviseInstallGeneratorTest: test_should_skip_devise_model
|
44
|
-
---------------------------------------------------------
|
45
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
46
|
-
[1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m
|
47
|
-
-------------------------------------------------------------------
|
48
|
-
DeviseInstallGeneratorTest: test_should_install_devise_successfully
|
49
|
-
-------------------------------------------------------------------
|
50
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
51
|
-
[1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m
|
52
|
-
---------------------------------------------------------
|
53
|
-
DeviseInstallGeneratorTest: test_should_skip_devise_views
|
54
|
-
---------------------------------------------------------
|
55
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
56
|
-
[1m[35m (0.9ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
57
|
-
↳ test/generators/devise_install_generator_test.rb:3:in `require'
|
58
|
-
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
59
|
-
-------------------------------------------------------------------
|
60
|
-
DeviseInstallGeneratorTest: test_should_install_devise_successfully
|
61
|
-
-------------------------------------------------------------------
|
62
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
63
|
-
[1m[35m (0.0ms)[0m [1m[36mbegin transaction[0m
|
64
|
-
---------------------------------------------------------
|
65
|
-
DeviseInstallGeneratorTest: test_should_skip_devise_views
|
66
|
-
---------------------------------------------------------
|
67
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
68
|
-
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
69
|
-
---------------------------------------------------------
|
70
|
-
DeviseInstallGeneratorTest: test_should_skip_devise_model
|
71
|
-
---------------------------------------------------------
|
72
|
-
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|