solidus_dev_support 1.4.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +10 -17
  3. data/.github/PULL_REQUEST_TEMPLATE.md +0 -1
  4. data/.github_changelog_generator +4 -0
  5. data/.mergify.yml +33 -1
  6. data/.rubocop.yml +42 -0
  7. data/CHANGELOG.md +48 -5
  8. data/Gemfile +1 -1
  9. data/OLD_CHANGELOG.md +200 -0
  10. data/README.md +3 -1
  11. data/Rakefile +11 -1
  12. data/lib/solidus_dev_support/extension.rb +4 -1
  13. data/lib/solidus_dev_support/rake_tasks.rb +12 -0
  14. data/lib/solidus_dev_support/rspec/capybara.rb +18 -0
  15. data/lib/solidus_dev_support/rspec/feature_helper.rb +17 -18
  16. data/lib/solidus_dev_support/rspec/rails_helper.rb +8 -5
  17. data/lib/solidus_dev_support/rubocop/config.yml +82 -203
  18. data/lib/solidus_dev_support/solidus_command.rb +0 -1
  19. data/lib/solidus_dev_support/templates/extension/.circleci/config.yml +6 -0
  20. data/lib/solidus_dev_support/templates/extension/.github/stale.yml +4 -4
  21. data/lib/solidus_dev_support/templates/extension/README.md +28 -8
  22. data/lib/solidus_dev_support/templates/extension/bin/rails-sandbox +1 -1
  23. data/lib/solidus_dev_support/templates/extension/bin/sandbox.tt +2 -0
  24. data/lib/solidus_dev_support/templates/extension/extension.gemspec.tt +1 -1
  25. data/lib/solidus_dev_support/templates/extension/github_changelog_generator +2 -0
  26. data/lib/solidus_dev_support/templates/extension/lib/%file_name%.rb.tt +13 -0
  27. data/lib/solidus_dev_support/templates/extension/lib/%file_name%/configuration.rb.tt +8 -0
  28. data/lib/solidus_dev_support/templates/extension/lib/%file_name%/{factories.rb.tt → testing_support/factories.rb.tt} +0 -0
  29. data/lib/solidus_dev_support/templates/extension/lib/generators/%file_name%/install/install_generator.rb.tt +10 -5
  30. data/lib/solidus_dev_support/templates/extension/lib/generators/%file_name%/install/templates/initializer.rb.tt +6 -0
  31. data/lib/solidus_dev_support/templates/extension/rubocop.yml +3 -0
  32. data/lib/solidus_dev_support/templates/extension/spec/spec_helper.rb.tt +11 -7
  33. data/lib/solidus_dev_support/version.rb +5 -1
  34. data/solidus_dev_support.gemspec +16 -14
  35. data/spec/features/create_extension_spec.rb +171 -0
  36. data/spec/lib/extension_spec.rb +33 -0
  37. data/spec/spec_helper.rb +16 -0
  38. metadata +48 -37
  39. data/lib/solidus_dev_support/templates/extension/bin/r +0 -8
  40. data/lib/solidus_dev_support/templates/extension/bin/sandbox_rails +0 -8
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # solidus_dev_support
2
2
 
3
- [![CircleCI](https://circleci.com/gh/solidusio/solidus_dev_support.svg?style=svg)](https://circleci.com/gh/solidusio/solidus_dev_support)
3
+
4
+ [![CircleCI](https://circleci.com/gh/solidusio/solidus_dev_support.svg?style=shield)](https://circleci.com/gh/solidusio/solidus_dev_support)
5
+ [![codecov](https://codecov.io/gh/solidusio/solidus_dev_support/branch/master/graph/badge.svg)](https://codecov.io/gh/solidusio/solidus_dev_support)
4
6
 
5
7
  This gem contains common development functionality for Solidus extensions.
6
8
 
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
@@ -3,6 +3,8 @@
3
3
  require 'thor'
4
4
  require 'pathname'
5
5
 
6
+ require 'solidus_dev_support/version'
7
+
6
8
  module SolidusDevSupport
7
9
  class Extension < Thor
8
10
  include Thor::Actions
@@ -38,6 +40,7 @@ module SolidusDevSupport
38
40
  template 'rspec', "#{path}/.rspec"
39
41
  template 'spec/spec_helper.rb.tt', "#{path}/spec/spec_helper.rb"
40
42
  template 'rubocop.yml', "#{path}/.rubocop.yml"
43
+ template 'github_changelog_generator', "#{path}/.github_changelog_generator"
41
44
  end
42
45
 
43
46
  no_tasks do
@@ -89,7 +92,7 @@ module SolidusDevSupport
89
92
  'remote get-url origin',
90
93
  "git@github.com:#{github_user}/#{file_name}.git"
91
94
  ).sub(
92
- %r{^.*github\.com.([^/]+)/([^/\.]+).*$},
95
+ %r{^.*github\.com.([^/]+)/([^/.]+).*$},
93
96
  'https://github.com/\1/\2'
94
97
  )
95
98
  end
@@ -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/apparition'
13
+ require 'solidus_dev_support/rspec/capybara'
14
14
 
15
- Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :apparition).to_sym
16
- Capybara.default_max_wait_time = 10
17
- Capybara.server = :puma, { Silent: true } # A fix for rspec/rspec-rails#1897
18
-
19
- Capybara.register_driver :apparition do |app|
20
- Capybara::Apparition::Driver.new(app, window_size: [1920, 1080])
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
- # Preload assets
29
- if Rails.application.respond_to?(:precompiled_assets)
30
- Rails.application.precompiled_assets
31
- else
32
- # For older sprockets 2.x
33
- Rails.application.config.assets.precompile.each do |asset|
34
- Rails.application.assets.find_asset(asset)
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
@@ -67,14 +67,17 @@ RSpec.configure do |config|
67
67
  rescue NameError => e
68
68
  class ZeitwerkNameError < NameError; end
69
69
 
70
- message = <<~WARN
71
- Zeitwerk raised the following error when trying to eager load your extension:
72
-
73
- #{if e.message =~ /expected file .*? to define constant [\w:]+/
70
+ error_message =
71
+ if e.message =~ /expected file .*? to define constant [\w:]+/
74
72
  e.message.sub(/expected file #{Regexp.escape(File.expand_path('../..', Rails.root))}./, "expected file ")
75
73
  else
76
74
  e.message
77
- end}
75
+ end
76
+
77
+ message = <<~WARN
78
+ Zeitwerk raised the following error when trying to eager load your extension:
79
+
80
+ #{error_message}
78
81
 
79
82
  This most likely means that your extension's file structure is not
80
83
  compatible with the Zeitwerk autoloader.
@@ -1,203 +1,82 @@
1
- # Relaxed.Ruby.Style
2
- ## Version 2.4
3
-
4
- Style/Alias:
5
- Enabled: false
6
- StyleGuide: https://relaxed.ruby.style/#stylealias
7
-
8
- Style/AsciiComments:
9
- Enabled: false
10
- StyleGuide: https://relaxed.ruby.style/#styleasciicomments
11
-
12
- Style/BeginBlock:
13
- Enabled: false
14
- StyleGuide: https://relaxed.ruby.style/#stylebeginblock
15
-
16
- Style/BlockDelimiters:
17
- Enabled: false
18
- StyleGuide: https://relaxed.ruby.style/#styleblockdelimiters
19
-
20
- Style/CommentAnnotation:
21
- Enabled: false
22
- StyleGuide: https://relaxed.ruby.style/#stylecommentannotation
23
-
24
- Style/Documentation:
25
- Enabled: false
26
- StyleGuide: https://relaxed.ruby.style/#styledocumentation
27
-
28
- Layout/DotPosition:
29
- Enabled: false
30
- StyleGuide: https://relaxed.ruby.style/#layoutdotposition
31
-
32
- Style/DoubleNegation:
33
- Enabled: false
34
- StyleGuide: https://relaxed.ruby.style/#styledoublenegation
35
-
36
- Style/EndBlock:
37
- Enabled: false
38
- StyleGuide: https://relaxed.ruby.style/#styleendblock
39
-
40
- Style/FormatString:
41
- Enabled: false
42
- StyleGuide: https://relaxed.ruby.style/#styleformatstring
43
-
44
- Style/IfUnlessModifier:
45
- Enabled: false
46
- StyleGuide: https://relaxed.ruby.style/#styleifunlessmodifier
47
-
48
- Style/Lambda:
49
- Enabled: false
50
- StyleGuide: https://relaxed.ruby.style/#stylelambda
51
-
52
- Style/ModuleFunction:
53
- Enabled: false
54
- StyleGuide: https://relaxed.ruby.style/#stylemodulefunction
55
-
56
- Style/MultilineBlockChain:
57
- Enabled: false
58
- StyleGuide: https://relaxed.ruby.style/#stylemultilineblockchain
59
-
60
- Style/NegatedIf:
61
- Enabled: false
62
- StyleGuide: https://relaxed.ruby.style/#stylenegatedif
63
-
64
- Style/NegatedWhile:
65
- Enabled: false
66
- StyleGuide: https://relaxed.ruby.style/#stylenegatedwhile
67
-
68
- Style/NumericPredicate:
69
- Enabled: false
70
- StyleGuide: https://relaxed.ruby.style/#stylenumericpredicate
71
-
72
- Style/ParallelAssignment:
73
- Enabled: false
74
- StyleGuide: https://relaxed.ruby.style/#styleparallelassignment
75
-
76
- Style/PercentLiteralDelimiters:
77
- Enabled: false
78
- StyleGuide: https://relaxed.ruby.style/#stylepercentliteraldelimiters
79
-
80
- Style/PerlBackrefs:
81
- Enabled: false
82
- StyleGuide: https://relaxed.ruby.style/#styleperlbackrefs
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.5
184
- Exclude:
185
- - spec/dummy/**/*
186
- - sandbox/**/*
187
- - vendor/**/*
188
-
189
- Metrics/BlockLength:
190
- Enabled: false
191
-
192
- Metrics/LineLength:
193
- Enabled: true
194
- Max: 100
195
-
196
- RSpec/ExampleLength:
197
- Enabled: false
198
-
199
- Layout/AlignArguments:
200
- EnforcedStyle: with_fixed_indentation
201
-
202
- Layout/MultilineOperationIndentation:
203
- Enabled: false
1
+ require: ["rubocop-rspec", "rubocop-rails", "rubocop-performance"]
2
+
3
+ AllCops: {TargetRubyVersion: 2.5, Exclude: ["spec/dummy/**/*", "sandbox/**/*", "vendor/**/*"]}
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"}