solidus_dev_support 1.2.0 → 2.0.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/.circleci/config.yml +10 -17
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -1
- data/.github_changelog_generator +4 -0
- data/.mergify.yml +39 -0
- data/.rubocop.yml +42 -0
- data/CHANGELOG.md +85 -7
- data/Gemfile +1 -1
- data/OLD_CHANGELOG.md +200 -0
- data/README.md +13 -6
- data/Rakefile +11 -1
- data/lib/solidus_dev_support/extension.rb +1 -1
- data/lib/solidus_dev_support/rake_tasks.rb +12 -0
- data/lib/solidus_dev_support/rspec/capybara.rb +18 -0
- data/lib/solidus_dev_support/rspec/feature_helper.rb +17 -18
- data/lib/solidus_dev_support/rspec/rails_helper.rb +28 -0
- data/lib/solidus_dev_support/rubocop/config.yml +82 -202
- data/lib/solidus_dev_support/solidus_command.rb +0 -1
- data/lib/solidus_dev_support/templates/extension/.circleci/config.yml +6 -0
- data/lib/solidus_dev_support/templates/extension/.github/stale.yml +4 -4
- data/lib/solidus_dev_support/templates/extension/README.md +47 -22
- data/lib/solidus_dev_support/templates/extension/bin/rails +7 -0
- data/lib/solidus_dev_support/templates/extension/bin/{r.tt → rails-engine.tt} +0 -0
- data/lib/solidus_dev_support/templates/extension/bin/{sandbox_rails → rails-sandbox} +1 -3
- data/lib/solidus_dev_support/templates/extension/bin/sandbox.tt +2 -0
- data/lib/solidus_dev_support/templates/extension/extension.gemspec.tt +3 -3
- data/lib/solidus_dev_support/templates/extension/gitignore +3 -0
- data/lib/solidus_dev_support/templates/extension/lib/generators/%file_name%/install/install_generator.rb.tt +5 -5
- data/lib/solidus_dev_support/templates/extension/rubocop.yml +0 -5
- data/lib/solidus_dev_support/templates/extension/spec/spec_helper.rb.tt +9 -2
- data/lib/solidus_dev_support/version.rb +5 -1
- data/solidus_dev_support.gemspec +16 -14
- data/spec/features/create_extension_spec.rb +171 -0
- data/spec/lib/extension_spec.rb +33 -0
- data/spec/spec_helper.rb +16 -0
- metadata +52 -41
- data/.github/stale.yml +0 -17
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# solidus_dev_support
|
2
2
|
|
3
|
-
|
3
|
+
|
4
|
+
[](https://circleci.com/gh/solidusio/solidus_dev_support)
|
5
|
+
[](https://codecov.io/gh/solidusio/solidus_dev_support)
|
4
6
|
|
5
7
|
This gem contains common development functionality for Solidus extensions.
|
6
8
|
|
@@ -50,16 +52,16 @@ sense to you.
|
|
50
52
|
### Sandbox app
|
51
53
|
|
52
54
|
When developing an extension you will surely need to try it out within a Rails app with Solidus
|
53
|
-
installed. Using solidus_dev_support your extension will have a `bin/
|
55
|
+
installed. Using solidus_dev_support your extension will have a `bin/rails-sandbox` executable that will
|
54
56
|
operate on a _sandbox_ app (creating it if necessary).
|
55
57
|
|
56
|
-
The path for the sandbox app is `./sandbox` and `bin/
|
58
|
+
The path for the sandbox app is `./sandbox` and `bin/rails-sandbox` will forward any Rails command
|
57
59
|
to `sandbox/bin/rails`.
|
58
60
|
|
59
61
|
Example:
|
60
62
|
|
61
63
|
```bash
|
62
|
-
$ bin/
|
64
|
+
$ bin/rails-sandbox server
|
63
65
|
=> Booting Puma
|
64
66
|
=> Rails 6.0.2.1 application starting in development
|
65
67
|
* Listening on tcp://127.0.0.1:3000
|
@@ -80,15 +82,20 @@ By default we use sqlite3 and the master branch.
|
|
80
82
|
|
81
83
|
### Rails generators
|
82
84
|
|
83
|
-
Your extension will have a `bin/
|
85
|
+
Your extension will have a `bin/rails-engine` executable that you can use for generating models, migrations
|
84
86
|
etc. It's the same as the default `rails` command in Rails engines.
|
85
87
|
|
86
88
|
Example:
|
87
89
|
|
88
90
|
```bash
|
89
|
-
$ bin/
|
91
|
+
$ bin/rails-engine generate migration AddStoreIdToProducts
|
90
92
|
```
|
91
93
|
|
94
|
+
### The `bin/rails` shortcut
|
95
|
+
|
96
|
+
For convenience a `bin/rails` executable is also provided that will run everything but generators on the sandbox application. Generators will instead be processed in the context of the extension.
|
97
|
+
|
98
|
+
|
92
99
|
### RSpec helpers
|
93
100
|
|
94
101
|
This gem provides some useful helpers for RSpec to setup an extension's test environment easily.
|
data/Rakefile
CHANGED
@@ -1,8 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
|
-
require "rspec/core/rake_task"
|
5
4
|
|
5
|
+
require 'github_changelog_generator/task'
|
6
|
+
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
7
|
+
config.user = 'solidusio'
|
8
|
+
config.project = 'solidus_dev_support'
|
9
|
+
config.exclude_labels = %w[infrastructure]
|
10
|
+
config.issues = false
|
11
|
+
config.base = "#{__dir__}/OLD_CHANGELOG.md"
|
12
|
+
config.since_tag = 'v1.4.0'
|
13
|
+
end
|
14
|
+
|
15
|
+
require "rspec/core/rake_task"
|
6
16
|
RSpec::Core::RakeTask.new(:spec)
|
7
17
|
|
8
18
|
task default: :spec
|
@@ -23,6 +23,7 @@ module SolidusDevSupport
|
|
23
23
|
install_test_app_task
|
24
24
|
install_dev_app_task
|
25
25
|
install_rspec_task
|
26
|
+
install_changelog_task
|
26
27
|
end
|
27
28
|
|
28
29
|
def install_test_app_task
|
@@ -71,5 +72,16 @@ module SolidusDevSupport
|
|
71
72
|
end
|
72
73
|
end
|
73
74
|
end
|
75
|
+
|
76
|
+
def install_changelog_task
|
77
|
+
require 'github_changelog_generator/task'
|
78
|
+
|
79
|
+
user, project = gemspec.homepage.split("/")[3..5]
|
80
|
+
GitHubChangelogGenerator::RakeTask.new(:changelog) do |config|
|
81
|
+
config.user = user || 'solidus-contrib'
|
82
|
+
config.project = project || gemspec.name
|
83
|
+
config.future_release = "v#{gemspec.version}"
|
84
|
+
end
|
85
|
+
end
|
74
86
|
end
|
75
87
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Allow to override the initial windows size
|
4
|
+
CAPYBARA_WINDOW_SIZE = (ENV['CAPYBARA_WINDOW_SIZE'] || '1920x1080').split('x', 2).map(&:to_i)
|
5
|
+
|
6
|
+
Capybara.javascript_driver = (ENV['CAPYBARA_JAVASCRIPT_DRIVER'] || "solidus_chrome_headless").to_sym
|
7
|
+
Capybara.default_max_wait_time = 10
|
8
|
+
Capybara.server = :puma, { Silent: true } # A fix for rspec/rspec-rails#1897
|
9
|
+
|
10
|
+
Capybara.drivers[:selenium_chrome_headless].tap do |original_driver|
|
11
|
+
Capybara.register_driver :solidus_chrome_headless do |app|
|
12
|
+
original_driver.call(app).tap do |driver|
|
13
|
+
driver.options[:options].args << "--window-size=#{CAPYBARA_WINDOW_SIZE.join(',')}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
require 'spree/testing_support/capybara_ext'
|
@@ -10,30 +10,29 @@
|
|
10
10
|
require 'solidus_dev_support/rspec/rails_helper'
|
11
11
|
|
12
12
|
require 'capybara-screenshot/rspec'
|
13
|
-
require 'capybara
|
13
|
+
require 'solidus_dev_support/rspec/capybara'
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
def dev_support_assets_preload
|
16
|
+
if Rails.application.respond_to?(:precompiled_assets)
|
17
|
+
Rails.application.precompiled_assets
|
18
|
+
else
|
19
|
+
# For older sprockets 2.x
|
20
|
+
Rails.application.config.assets.precompile.each do |asset|
|
21
|
+
Rails.application.assets.find_asset(asset)
|
22
|
+
end
|
23
|
+
end
|
21
24
|
end
|
22
25
|
|
23
|
-
require 'spree/testing_support/capybara_ext'
|
24
|
-
|
25
26
|
RSpec.configure do |config|
|
26
27
|
config.when_first_matching_example_defined(type: :feature) do
|
27
28
|
config.before :suite do
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
29
|
+
dev_support_assets_preload
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
config.when_first_matching_example_defined(type: :system) do
|
34
|
+
config.before :suite do
|
35
|
+
dev_support_assets_preload
|
37
36
|
end
|
38
37
|
end
|
39
38
|
end
|
@@ -59,4 +59,32 @@ RSpec.configure do |config|
|
|
59
59
|
end
|
60
60
|
|
61
61
|
config.include ActiveJob::TestHelper
|
62
|
+
|
63
|
+
config.after(:suite) do
|
64
|
+
if Rails.respond_to?(:autoloaders) && Rails.autoloaders.zeitwerk_enabled?
|
65
|
+
Rails.autoloaders.main.class.eager_load_all
|
66
|
+
end
|
67
|
+
rescue NameError => e
|
68
|
+
class ZeitwerkNameError < NameError; end
|
69
|
+
|
70
|
+
error_message =
|
71
|
+
if e.message =~ /expected file .*? to define constant [\w:]+/
|
72
|
+
e.message.sub(/expected file #{Regexp.escape(File.expand_path('../..', Rails.root))}./, "expected file ")
|
73
|
+
else
|
74
|
+
e.message
|
75
|
+
end
|
76
|
+
|
77
|
+
message = <<~WARN
|
78
|
+
Zeitwerk raised the following error when trying to eager load your extension:
|
79
|
+
|
80
|
+
#{error_message}
|
81
|
+
|
82
|
+
This most likely means that your extension's file structure is not
|
83
|
+
compatible with the Zeitwerk autoloader.
|
84
|
+
Refer to https://github.com/solidusio/solidus_support#engine-extensions in
|
85
|
+
order to update the file structure to match Zeitwerk's expectations.
|
86
|
+
WARN
|
87
|
+
|
88
|
+
raise ZeitwerkNameError, message
|
89
|
+
end
|
62
90
|
end
|
@@ -1,202 +1,82 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
Style/
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
Style/
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
Style/
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
Style/
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
Style/
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
Style/NegatedIf:
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
Style/
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
Style/
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
Style/
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
Style/
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
Style/
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
Style/Semicolon:
|
85
|
-
Enabled: false
|
86
|
-
StyleGuide: https://relaxed.ruby.style/#stylesemicolon
|
87
|
-
|
88
|
-
Style/SignalException:
|
89
|
-
Enabled: false
|
90
|
-
StyleGuide: https://relaxed.ruby.style/#stylesignalexception
|
91
|
-
|
92
|
-
Style/SingleLineBlockParams:
|
93
|
-
Enabled: false
|
94
|
-
StyleGuide: https://relaxed.ruby.style/#stylesinglelineblockparams
|
95
|
-
|
96
|
-
Style/SingleLineMethods:
|
97
|
-
Enabled: false
|
98
|
-
StyleGuide: https://relaxed.ruby.style/#stylesinglelinemethods
|
99
|
-
|
100
|
-
Layout/SpaceBeforeBlockBraces:
|
101
|
-
Enabled: false
|
102
|
-
StyleGuide: https://relaxed.ruby.style/#layoutspacebeforeblockbraces
|
103
|
-
|
104
|
-
Layout/SpaceInsideParens:
|
105
|
-
Enabled: false
|
106
|
-
StyleGuide: https://relaxed.ruby.style/#layoutspaceinsideparens
|
107
|
-
|
108
|
-
Style/SpecialGlobalVars:
|
109
|
-
Enabled: false
|
110
|
-
StyleGuide: https://relaxed.ruby.style/#stylespecialglobalvars
|
111
|
-
|
112
|
-
Style/StringLiterals:
|
113
|
-
Enabled: false
|
114
|
-
StyleGuide: https://relaxed.ruby.style/#stylestringliterals
|
115
|
-
|
116
|
-
Style/TrailingCommaInArguments:
|
117
|
-
Enabled: false
|
118
|
-
StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarguments
|
119
|
-
|
120
|
-
Style/TrailingCommaInArrayLiteral:
|
121
|
-
Enabled: false
|
122
|
-
StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarrayliteral
|
123
|
-
|
124
|
-
Style/TrailingCommaInHashLiteral:
|
125
|
-
Enabled: false
|
126
|
-
StyleGuide: https://relaxed.ruby.style/#styletrailingcommainhashliteral
|
127
|
-
|
128
|
-
Style/SymbolArray:
|
129
|
-
Enabled: false
|
130
|
-
StyleGuide: http://relaxed.ruby.style/#stylesymbolarray
|
131
|
-
|
132
|
-
Style/WhileUntilModifier:
|
133
|
-
Enabled: false
|
134
|
-
StyleGuide: https://relaxed.ruby.style/#stylewhileuntilmodifier
|
135
|
-
|
136
|
-
Style/WordArray:
|
137
|
-
Enabled: false
|
138
|
-
StyleGuide: https://relaxed.ruby.style/#stylewordarray
|
139
|
-
|
140
|
-
Lint/AmbiguousRegexpLiteral:
|
141
|
-
Enabled: false
|
142
|
-
StyleGuide: https://relaxed.ruby.style/#lintambiguousregexpliteral
|
143
|
-
|
144
|
-
Lint/AssignmentInCondition:
|
145
|
-
Enabled: false
|
146
|
-
StyleGuide: https://relaxed.ruby.style/#lintassignmentincondition
|
147
|
-
|
148
|
-
Metrics/AbcSize:
|
149
|
-
Enabled: false
|
150
|
-
|
151
|
-
Metrics/BlockNesting:
|
152
|
-
Enabled: false
|
153
|
-
|
154
|
-
Metrics/ClassLength:
|
155
|
-
Enabled: false
|
156
|
-
|
157
|
-
Metrics/ModuleLength:
|
158
|
-
Enabled: false
|
159
|
-
|
160
|
-
Metrics/CyclomaticComplexity:
|
161
|
-
Enabled: false
|
162
|
-
|
163
|
-
# Metrics/LineLength:
|
164
|
-
# Enabled: false
|
165
|
-
|
166
|
-
Metrics/MethodLength:
|
167
|
-
Enabled: false
|
168
|
-
|
169
|
-
Metrics/ParameterLists:
|
170
|
-
Enabled: false
|
171
|
-
|
172
|
-
Metrics/PerceivedComplexity:
|
173
|
-
Enabled: false
|
174
|
-
|
175
|
-
# Our overrides after this point:
|
176
|
-
|
177
|
-
require:
|
178
|
-
- rubocop-rspec
|
179
|
-
- rubocop-rails
|
180
|
-
- rubocop-performance
|
181
|
-
|
182
|
-
AllCops:
|
183
|
-
TargetRubyVersion: 2.4
|
184
|
-
Exclude:
|
185
|
-
- spec/dummy/**/*
|
186
|
-
- vendor/**/*
|
187
|
-
|
188
|
-
Metrics/BlockLength:
|
189
|
-
Enabled: false
|
190
|
-
|
191
|
-
Metrics/LineLength:
|
192
|
-
Enabled: true
|
193
|
-
Max: 100
|
194
|
-
|
195
|
-
RSpec/ExampleLength:
|
196
|
-
Enabled: false
|
197
|
-
|
198
|
-
Layout/AlignArguments:
|
199
|
-
EnforcedStyle: with_fixed_indentation
|
200
|
-
|
201
|
-
Layout/MultilineOperationIndentation:
|
202
|
-
Enabled: false
|
1
|
+
require: ["rubocop-rspec", "rubocop-rails", "rubocop-performance"]
|
2
|
+
|
3
|
+
AllCops: {TargetRubyVersion: 2.5, Exclude: ["spec/dummy/**/*", "sandbox/**/*", "vendor/**/*"], NewCops: enable}
|
4
|
+
|
5
|
+
Layout/ArgumentAlignment: {EnforcedStyle: with_fixed_indentation}
|
6
|
+
Layout/DotPosition: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#layoutdotposition"}
|
7
|
+
Layout/EmptyLinesAroundAttributeAccessor: {Enabled: true}
|
8
|
+
Layout/FirstArgumentIndentation: {EnforcedStyle: "consistent"}
|
9
|
+
Layout/FirstArrayElementIndentation: {EnforcedStyle: "consistent"}
|
10
|
+
Layout/LineLength: {Enabled: true, Max: 120}
|
11
|
+
Layout/MultilineOperationIndentation: {Enabled: false}
|
12
|
+
Layout/SpaceAroundMethodCallOperator: {Enabled: true}
|
13
|
+
Layout/SpaceBeforeBlockBraces: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#layoutspacebeforeblockbraces"}
|
14
|
+
Layout/SpaceInsideParens: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#layoutspaceinsideparens"}
|
15
|
+
Lint/AmbiguousRegexpLiteral: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#lintambiguousregexpliteral"}
|
16
|
+
Lint/AssignmentInCondition: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#lintassignmentincondition"}
|
17
|
+
Lint/DeprecatedOpenSSLConstant: {Enabled: true}
|
18
|
+
Lint/MixedRegexpCaptureTypes: {Enabled: true}
|
19
|
+
Lint/RaiseException: {Enabled: true}
|
20
|
+
Lint/StructNewOverride: {Enabled: true}
|
21
|
+
Metrics/AbcSize: {Enabled: false}
|
22
|
+
Metrics/BlockLength: {Enabled: false}
|
23
|
+
Metrics/BlockNesting: {Enabled: false}
|
24
|
+
Metrics/ClassLength: {Enabled: false}
|
25
|
+
Metrics/CyclomaticComplexity: {Enabled: false}
|
26
|
+
Metrics/MethodLength: {Enabled: false}
|
27
|
+
Metrics/ModuleLength: {Enabled: false}
|
28
|
+
Metrics/ParameterLists: {Enabled: false}
|
29
|
+
Metrics/PerceivedComplexity: {Enabled: false}
|
30
|
+
Performance/AncestorsInclude: {Enabled: true}
|
31
|
+
Performance/BigDecimalWithNumericArgument: {Enabled: true}
|
32
|
+
Performance/RedundantSortBlock: {Enabled: true}
|
33
|
+
Performance/RedundantStringChars: {Enabled: true}
|
34
|
+
Performance/ReverseFirst: {Enabled: true}
|
35
|
+
Performance/SortReverse: {Enabled: true}
|
36
|
+
Performance/Squeeze: {Enabled: true}
|
37
|
+
Performance/StringInclude: {Enabled: true}
|
38
|
+
RSpec/DescribeClass: {Exclude: ["spec/features/**/*"]} # Feature specs are not describing any class or module.
|
39
|
+
RSpec/ExampleLength: {Enabled: false}
|
40
|
+
Style/AccessorGrouping: {Enabled: true}
|
41
|
+
Style/Alias: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylealias"}
|
42
|
+
Style/AsciiComments: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleasciicomments"}
|
43
|
+
Style/BeginBlock: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylebeginblock"}
|
44
|
+
Style/BisectedAttrAccessor: {Enabled: true}
|
45
|
+
Style/BlockDelimiters: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleblockdelimiters"}
|
46
|
+
Style/CommentAnnotation: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylecommentannotation"}
|
47
|
+
Style/Documentation: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styledocumentation"}
|
48
|
+
Style/DoubleNegation: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styledoublenegation"}
|
49
|
+
Style/EndBlock: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleendblock"}
|
50
|
+
Style/ExponentialNotation: {Enabled: true}
|
51
|
+
Style/FormatString: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleformatstring"}
|
52
|
+
Style/FrozenStringLiteralComment: {Exclude: ["spec/**/*", "db/migrate/**/*", "bin/**/*"]}
|
53
|
+
Style/HashEachMethods: {Enabled: true}
|
54
|
+
Style/HashTransformKeys: {Enabled: true}
|
55
|
+
Style/HashTransformValues: {Enabled: true}
|
56
|
+
Style/IfUnlessModifier: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleifunlessmodifier"}
|
57
|
+
Style/Lambda: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylelambda"}
|
58
|
+
Style/ModuleFunction: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylemodulefunction"}
|
59
|
+
Style/MultilineBlockChain: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylemultilineblockchain"}
|
60
|
+
Style/NegatedIf: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylenegatedif"}
|
61
|
+
Style/NegatedWhile: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylenegatedwhile"}
|
62
|
+
Style/NumericPredicate: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylenumericpredicate"}
|
63
|
+
Style/ParallelAssignment: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleparallelassignment"}
|
64
|
+
Style/PercentLiteralDelimiters: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylepercentliteraldelimiters"}
|
65
|
+
Style/PerlBackrefs: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleperlbackrefs"}
|
66
|
+
Style/RedundantAssignment: {Enabled: true}
|
67
|
+
Style/RedundantFetchBlock: {Enabled: true}
|
68
|
+
Style/RedundantRegexpCharacterClass: {Enabled: true}
|
69
|
+
Style/RedundantRegexpEscape: {Enabled: true}
|
70
|
+
Style/Semicolon: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesemicolon"}
|
71
|
+
Style/SignalException: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesignalexception"}
|
72
|
+
Style/SingleLineBlockParams: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesinglelineblockparams"}
|
73
|
+
Style/SingleLineMethods: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesinglelinemethods"}
|
74
|
+
Style/SlicingWithRange: {Enabled: true}
|
75
|
+
Style/SpecialGlobalVars: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylespecialglobalvars"}
|
76
|
+
Style/StringLiterals: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylestringliterals"}
|
77
|
+
Style/SymbolArray: {Enabled: false, StyleGuide: "http://relaxed.ruby.style/#stylesymbolarray"}
|
78
|
+
Style/TrailingCommaInArguments: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styletrailingcommainarguments"}
|
79
|
+
Style/TrailingCommaInArrayLiteral: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styletrailingcommainarrayliteral"}
|
80
|
+
Style/TrailingCommaInHashLiteral: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styletrailingcommainhashliteral"}
|
81
|
+
Style/WhileUntilModifier: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylewhileuntilmodifier"}
|
82
|
+
Style/WordArray: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylewordarray"}
|