workarea-sezzle 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  3. data/.github/ISSUE_TEMPLATE/documentation-request.md +17 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. data/.gitignore +23 -0
  6. data/.rubocop.yml +405 -0
  7. data/.scss-lint.yml +204 -0
  8. data/Gemfile +17 -0
  9. data/LICENSE +7 -0
  10. data/README.md +95 -0
  11. data/Rakefile +56 -0
  12. data/Workarea +0 -0
  13. data/app/assets/images/workarea/admin/sezzle/.keep +0 -0
  14. data/app/assets/images/workarea/sezzle_logo_white.svg +1 -0
  15. data/app/assets/images/workarea/storefront/sezzle/.keep +0 -0
  16. data/app/assets/javascripts/workarea/admin/sezzle/.keep +0 -0
  17. data/app/assets/javascripts/workarea/storefront/sezzle/.keep +0 -0
  18. data/app/assets/stylesheets/workarea/admin/sezzle/.keep +0 -0
  19. data/app/assets/stylesheets/workarea/admin/sezzle/components/_payment_icon.scss +13 -0
  20. data/app/assets/stylesheets/workarea/storefront/sezzle/.keep +0 -0
  21. data/app/assets/stylesheets/workarea/storefront/sezzle/components/_payment_icon.scss +13 -0
  22. data/app/assets/stylesheets/workarea/storefront/sezzle/components/_sezzle.scss +13 -0
  23. data/app/controllers/.keep +0 -0
  24. data/app/controllers/workarea/storefront/checkout/place_order_controller.decorator +11 -0
  25. data/app/controllers/workarea/storefront/sezzle_controller.rb +109 -0
  26. data/app/helpers/.keep +0 -0
  27. data/app/mailers/.keep +0 -0
  28. data/app/models/.keep +0 -0
  29. data/app/models/workarea/payment/authorize/sezzle.rb +32 -0
  30. data/app/models/workarea/payment/capture/sezzle.rb +85 -0
  31. data/app/models/workarea/payment/purchase/sezzle.rb +30 -0
  32. data/app/models/workarea/payment/refund/sezzle.rb +47 -0
  33. data/app/models/workarea/payment/tender/sezzle.rb +15 -0
  34. data/app/models/workarea/paymentl.decorator +32 -0
  35. data/app/services/workarea/sezzle/order_builder.rb +135 -0
  36. data/app/view_models/workarea/storefront/checkout/payment_view_model.decorator +11 -0
  37. data/app/views/.keep +0 -0
  38. data/app/views/workarea/admin/orders/tenders/_sezzle.html.haml +3 -0
  39. data/app/views/workarea/storefront/carts/_sezzle_widget.html.haml +5 -0
  40. data/app/views/workarea/storefront/checkouts/_sezzle_payment.html.haml +8 -0
  41. data/app/views/workarea/storefront/order_mailer/tenders/_sezzle.html.haml +1 -0
  42. data/app/views/workarea/storefront/order_mailer/tenders/_sezzle.text.erb +1 -0
  43. data/app/views/workarea/storefront/orders/tenders/_sezzle.html.haml +4 -0
  44. data/app/views/workarea/storefront/products/_sezzle_widget.html.haml +10 -0
  45. data/app/views/workarea/storefront/sezzle/_script.html.haml +22 -0
  46. data/bin/rails +25 -0
  47. data/config/initializers/appends.rb +30 -0
  48. data/config/initializers/configurations.rb +41 -0
  49. data/config/initializers/workarea.rb +21 -0
  50. data/config/locales/en.yml +43 -0
  51. data/config/routes.rb +5 -0
  52. data/lib/workarea/sezzle.rb +53 -0
  53. data/lib/workarea/sezzle/authentication.rb +49 -0
  54. data/lib/workarea/sezzle/bogus_gateway.rb +128 -0
  55. data/lib/workarea/sezzle/engine.rb +10 -0
  56. data/lib/workarea/sezzle/gateway.rb +90 -0
  57. data/lib/workarea/sezzle/response.rb +27 -0
  58. data/lib/workarea/sezzle/version.rb +5 -0
  59. data/module +0 -0
  60. data/test/dummy/.ruby-version +1 -0
  61. data/test/dummy/Rakefile +6 -0
  62. data/test/dummy/app/assets/config/manifest.js +2 -0
  63. data/test/dummy/app/assets/images/.keep +0 -0
  64. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  65. data/test/dummy/app/controllers/application_controller.rb +2 -0
  66. data/test/dummy/app/controllers/concerns/.keep +0 -0
  67. data/test/dummy/app/helpers/application_helper.rb +2 -0
  68. data/test/dummy/app/javascript/packs/application.js +14 -0
  69. data/test/dummy/app/jobs/application_job.rb +7 -0
  70. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  71. data/test/dummy/app/models/concerns/.keep +0 -0
  72. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  73. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  74. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  75. data/test/dummy/bin/rails +4 -0
  76. data/test/dummy/bin/rake +4 -0
  77. data/test/dummy/bin/setup +25 -0
  78. data/test/dummy/config.ru +5 -0
  79. data/test/dummy/config/application.rb +34 -0
  80. data/test/dummy/config/boot.rb +5 -0
  81. data/test/dummy/config/environment.rb +5 -0
  82. data/test/dummy/config/environments/development.rb +53 -0
  83. data/test/dummy/config/environments/production.rb +101 -0
  84. data/test/dummy/config/environments/test.rb +47 -0
  85. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  86. data/test/dummy/config/initializers/assets.rb +12 -0
  87. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  88. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  89. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  90. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  91. data/test/dummy/config/initializers/inflections.rb +16 -0
  92. data/test/dummy/config/initializers/mime_types.rb +4 -0
  93. data/test/dummy/config/initializers/workarea.rb +5 -0
  94. data/test/dummy/config/initializers/wrap_parameters.rb +9 -0
  95. data/test/dummy/config/locales/en.yml +33 -0
  96. data/test/dummy/config/puma.rb +38 -0
  97. data/test/dummy/config/routes.rb +5 -0
  98. data/test/dummy/config/spring.rb +6 -0
  99. data/test/dummy/db/seeds.rb +2 -0
  100. data/test/dummy/lib/assets/.keep +0 -0
  101. data/test/dummy/log/.keep +0 -0
  102. data/test/integration/workarea/storefront/sezzle_integration_test.rb +205 -0
  103. data/test/models/workarea/payment/sezzle_payment_integration_test.rb +82 -0
  104. data/test/services/workarea/sezzle/order_builder_test.rb +116 -0
  105. data/test/teaspoon_env.rb +6 -0
  106. data/test/test_helper.rb +10 -0
  107. data/workarea-sezzle.gemspec +20 -0
  108. metadata +163 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b01482b4ee55ec93d7bc5522231e9ced6c616753b53fa121d3218ad69521a8b7
4
+ data.tar.gz: b83998b2ca6869dfe0fa803832a6f518f217f618936034f0858fb378b490ca43
5
+ SHA512:
6
+ metadata.gz: 34c76b5010f111b4090e9a7bd4c065cd19c3807dcb5def346f452d67979de50dab031cc7ff797dffa9c9ff68edd596d87b23720d5a00a15e8f03653e2b3209db
7
+ data.tar.gz: 4948b6c5c1683c9089fa2f57b5184c9868cdf327d1a6d62fc325ab2263ad6678681733297985be4f801e82d0a26b62404fee3cc1f850b67a8263e1843fb47621
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve Workarea Sezzle
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ⚠️**Before you create**⚠️
11
+ Please verify the issue you're experiencing is not part of your Workarea project customizations. The best way to do this is with a [vanilla Workarea installation](https://developer.workarea.com/articles/create-a-new-host-application.html). This will help us spend time on fixes/improvements for the whole community. Thank you!
12
+
13
+ **Describe the bug**
14
+ A clear and concise description of what the bug is.
15
+
16
+ **To Reproduce**
17
+ Steps to reproduce the behavior:
18
+ 1. Go to '...'
19
+ 2. Click on '....'
20
+ 3. Scroll down to '....'
21
+ 4. See error
22
+
23
+ **Expected behavior**
24
+ A clear and concise description of what you expected to happen.
25
+
26
+ **Workarea Setup (please complete the following information):**
27
+ - Workarea Sezzle Version
28
+ - Workarea Version: [e.g. v3.4.6]
29
+ - Plugins [e.g. workarea-blog, workarea-sitemaps]
30
+
31
+ **Attachments**
32
+ If applicable, add any attachments to help explain your problem, things like:
33
+ - screenshots
34
+ - Gemfile.lock
35
+ - test cases
36
+
37
+ **Additional context**
38
+ Add any other context about the problem here.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: Documentation request
3
+ about: Suggest documentation
4
+ title: ''
5
+ labels: documentation
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your documentation related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm confused by [...]
12
+
13
+ **Describe the documentation you'd like**
14
+ A clear and concise description of what would be in the documentation article.
15
+
16
+ **Additional context**
17
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for Workarea-Sezzle
4
+ title: ''
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,23 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ test/dummy/log/*.log
5
+ test/dummy/tmp/
6
+ .DS_Store
7
+ .byebug_history
8
+ .bundle/
9
+ .sass-cache/
10
+ Gemfile.lock
11
+ pkg/
12
+ test/dummy/tmp/
13
+ test/dummy/public/
14
+ log/*.log
15
+ test/dummy/log/*.log
16
+ test/dummy/db/*.sqlite3
17
+ test/dummy/db/*.sqlite3-journal
18
+ node_modules
19
+ yarn.lock
20
+ yarn-error.log
21
+ package-lock.json
22
+ test/dummy/config/master.key
23
+ test/dummy/config/credentials.yml.enc
@@ -0,0 +1,405 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5
3
+ # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
4
+ # to ignore them, so only the ones explicitly set in this file are enabled.
5
+ DisabledByDefault: true
6
+ Exclude:
7
+ - '.git/**/*'
8
+ - 'node_modules/**/*'
9
+ - 'scripts/*'
10
+ Include:
11
+ - '**/*.decorator'
12
+
13
+ inherit_mode:
14
+ merge:
15
+ - Include
16
+
17
+ Bundler/OrderedGems:
18
+ Description: Order gems alphabetically
19
+ Enabled: true
20
+
21
+ Layout/ArgumentAlignment:
22
+ Description: Here we check if the arguments on a multi-line method definition are aligned.
23
+ Enabled: true
24
+
25
+ # Supports --auto-correct
26
+ Layout/ArrayAlignment:
27
+ Description: Align the elements of an array literal if they span more than one line.
28
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#align-multiline-arrays
29
+ Enabled: true
30
+
31
+ # Supports --auto-correct
32
+ Layout/BlockAlignment:
33
+ Description: Align block ends correctly.
34
+ Enabled: true
35
+
36
+ Layout/BlockEndNewline:
37
+ Description: This cop checks whether the end statement of a do..end block is on its own line.
38
+ Enabled: true
39
+
40
+ Layout/CaseIndentation:
41
+ Description: Align `when` with `case`.
42
+ Enabled: true
43
+
44
+ # Align comments with method definitions.
45
+ Layout/CommentIndentation:
46
+ Description: Indentation of comments.
47
+ Enabled: true
48
+
49
+ Layout/ConditionPosition:
50
+ Description: Checks for condition placed in a confusing position relative to the keyword.
51
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#same-line-condition
52
+ Enabled: true
53
+
54
+ Layout/ClassStructure:
55
+ Enabled: false
56
+ Categories:
57
+ module_inclusion:
58
+ - include
59
+ - prepend
60
+ - extend
61
+ ExpectedOrder:
62
+ - module_inclusion
63
+ - constants
64
+ - public_class_methods
65
+ - initializer
66
+ - instance_methods
67
+ - protected_methods
68
+ - private_methods
69
+
70
+ Layout/ClosingParenthesisIndentation:
71
+ Description: This cop checks the indentation of hanging closing parentheses in method calls, method definitions, and grouped expressions. A hanging closing parenthesis means ) preceded by a line break.
72
+ Enabled: true
73
+
74
+ Layout/EmptyLineAfterMagicComment:
75
+ Enabled: true
76
+
77
+ Layout/EmptyLinesAroundClassBody:
78
+ Description: In a regular class definition, no empty lines around the body.
79
+ Enabled: true
80
+
81
+ Layout/EmptyLineAfterGuardClause:
82
+ Description: There should be an empty line after a guard clause.
83
+ Enabled: true
84
+
85
+ Layout/EmptyLinesAroundMethodBody:
86
+ Description: In a regular method definition, no empty lines around the body.
87
+ Enabled: true
88
+
89
+ Layout/EmptyLinesAroundModuleBody:
90
+ Description: In a regular module definition, no empty lines around the body.
91
+ Enabled: true
92
+
93
+ Layout/EmptyComment:
94
+ Description: Checks empty comment.
95
+ Enabled: true
96
+
97
+ Layout/EmptyLineBetweenDefs:
98
+ Description: Use empty lines between defs.
99
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#empty-lines-between-methods
100
+ Enabled: true
101
+ AllowAdjacentOneLineDefs: false
102
+
103
+ # Supports --auto-correct
104
+ Layout/EmptyLines:
105
+ Description: Don't use several empty lines in a row.
106
+ Enabled: true
107
+
108
+ # Supports --auto-correct
109
+ Layout/ElseAlignment:
110
+ Description: Align elses and elsifs correctly.
111
+ Enabled: true
112
+
113
+ Layout/DefEndAlignment:
114
+ Description: Align ends corresponding to defs correctly.
115
+ Enabled: true
116
+ EnforcedStyleAlignWith: start_of_line
117
+ AutoCorrect: false
118
+
119
+ # Supports --auto-correct
120
+ Layout/EndAlignment:
121
+ Description: Align ends correctly.
122
+ # The value `keyword` means that `end` should be aligned with the matching
123
+ # keyword (if, while, etc.).
124
+ # The value `variable` means that in assignments, `end` should be aligned
125
+ # with the start of the variable on the left hand side of `=`. In all other
126
+ # situations, `end` should still be aligned with the keyword.
127
+ # The value `start_of_line` means that `end` should be aligned with the start
128
+ # of the line which the matching keyword appears on.
129
+ Enabled: true
130
+ EnforcedStyleAlignWith: keyword
131
+ AutoCorrect: false
132
+
133
+ # Supports --auto-correct
134
+ Layout/ExtraSpacing:
135
+ Description: Do not use unnecessary spacing.
136
+ Enabled: true
137
+ AllowForAlignment: true
138
+
139
+ Layout/FirstArgumentIndentation:
140
+ Enabled: true
141
+
142
+ Layout/FirstArrayElementIndentation:
143
+ Description: Use 2 spaces for indentation in a array, relative to the start of the line where the left curly brace is.
144
+ Enabled: true
145
+
146
+ Layout/FirstHashElementIndentation:
147
+ Description: Use 2 spaces for indentation in a hash, relative to the start of the line where the left curly brace is.
148
+ Enabled: true
149
+
150
+ Layout/FirstHashElementLineBreak:
151
+ Description: Checks for a line break before the first element in a multi-line hash.
152
+ Enabled: true
153
+
154
+ Layout/HashAlignment:
155
+ Description: Align the elements of a hash literal if they span more than one line.
156
+ Enabled: true
157
+ EnforcedHashRocketStyle: key
158
+ EnforcedColonStyle: key
159
+ EnforcedLastArgumentHashStyle: always_inspect
160
+ SupportedLastArgumentHashStyles:
161
+ - always_inspect
162
+ - always_ignore
163
+ - ignore_implicit
164
+ - ignore_explicit
165
+
166
+ Layout/IndentationConsistency:
167
+ Description: Ensure all lines of code are indented consistently
168
+ Enabled: true
169
+
170
+ Layout/IndentationWidth:
171
+ Width: 2
172
+
173
+ Layout/LineLength:
174
+ Description: This cop checks that the line length is less than 100 characters
175
+ Enabled: true
176
+ IgnoredPatterns: ['(\A|\s)#']
177
+ Max: 100
178
+
179
+ Layout/MultilineHashBraceLayout:
180
+ Description: This cop checks that the closing brace in a hash literal is either on the same line as the last hash element, or a new line.
181
+ Enabled: true
182
+
183
+ Layout/MultilineMethodCallIndentation:
184
+ Description: This cop checks the indentation of the method name part in method calls that span more than one line.
185
+ EnforcedStyle: indented_relative_to_receiver
186
+ Enabled: true
187
+
188
+ Layout/MultilineMethodArgumentLineBreaks:
189
+ Description: This cop ensures that each argument in a multi-line method call starts on a separate line.
190
+ Enabled: true
191
+
192
+ # Supports --auto-correct
193
+ Layout/SpaceAfterColon:
194
+ Description: Use spaces after colons.
195
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#spaces-operators
196
+ Enabled: true
197
+
198
+ # Supports --auto-correct
199
+ Layout/SpaceAfterComma:
200
+ Description: Use spaces after commas.
201
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#spaces-operators
202
+ Enabled: true
203
+
204
+ # Supports --auto-correct
205
+ Layout/SpaceAfterMethodName:
206
+ Description: Do not put a space between a method name and the opening parenthesis
207
+ in a method definition.
208
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#parens-no-spaces
209
+ Enabled: true
210
+
211
+ # Supports --auto-correct
212
+ Layout/SpaceAfterNot:
213
+ Description: Tracks redundant space after the ! operator.
214
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#no-space-bang
215
+ Enabled: true
216
+
217
+ # Supports --auto-correct
218
+ Layout/SpaceAfterSemicolon:
219
+ Description: Use spaces after semicolons.
220
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#spaces-operators
221
+ Enabled: true
222
+
223
+ # Supports --auto-correct
224
+ Layout/SpaceAroundBlockParameters:
225
+ Description: Checks the spacing inside and after block parameters pipes.
226
+ Enabled: true
227
+ EnforcedStyleInsidePipes: no_space
228
+
229
+ Layout/SpaceAroundEqualsInParameterDefault:
230
+ Enabled: true
231
+
232
+ Layout/SpaceAroundKeyword:
233
+ Enabled: true
234
+
235
+ Layout/SpaceAroundOperators:
236
+ Enabled: true
237
+
238
+ Layout/SpaceBeforeFirstArg:
239
+ Enabled: true
240
+
241
+ Layout/SpaceBeforeBlockBraces:
242
+ Description: Use `foo {}` not `foo{}`.
243
+ Enabled: true
244
+
245
+ Layout/SpaceInsideBlockBraces:
246
+ Description: Use `foo { bar }` not `foo {bar}`.
247
+ Enabled: true
248
+
249
+ Layout/SpaceInsideHashLiteralBraces:
250
+ Description: "Use `{ a: 1 }` not `{a:1}`."
251
+ Enabled: true
252
+
253
+ Layout/SpaceInsideParens:
254
+ Enabled: true
255
+
256
+ Layout/IndentationStyle:
257
+ Description: Detect hard tabs, no hard tabs.
258
+ Enabled: true
259
+
260
+ Layout/TrailingEmptyLines:
261
+ Description: There must be an empty newline at the end of the file.
262
+ StyleGuide: https://rubystyle.guide/#newline-eof
263
+ Enabled: true
264
+ EnforcedStyle: final_newline
265
+
266
+ Layout/TrailingWhitespace:
267
+ Description: No trailing whitespace.
268
+ Enabled: true
269
+
270
+ Lint/AssignmentInCondition:
271
+ Description: Don't use assignment in conditions.
272
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#safe-assignment-in-condition
273
+ Enabled: true
274
+ AllowSafeAssignment: false
275
+
276
+ Lint/Debugger:
277
+ Description: Checks for debugger statements
278
+ Enabled: true
279
+
280
+ Lint/EmptyInterpolation:
281
+ Description: Checks for empty string interpolation.
282
+ Enabled: true
283
+
284
+ Lint/PercentStringArray:
285
+ Description: >-
286
+ Checks for unwanted commas and quotes in %w/%W literals.
287
+ Enabled: true
288
+
289
+ # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
290
+ Lint/RequireParentheses:
291
+ Description: Use parentheses in the method call to avoid confusion about precedence.
292
+ Enabled: true
293
+
294
+ Lint/UselessAssignment:
295
+ Description: Checks for useless assignment to a local variable.
296
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#underscore-unused-vars
297
+ Enabled: true
298
+
299
+ Naming/ClassAndModuleCamelCase:
300
+ Description: Use CamelCase for classes and modules.
301
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#camelcase-classes
302
+ Enabled: true
303
+
304
+ Naming/ConstantName:
305
+ Description: Constants should use SCREAMING_SNAKE_CASE.
306
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#screaming-snake-case
307
+ Enabled: false
308
+
309
+ Naming/FileName:
310
+ Description: Use snake_case for source file names.
311
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#snake-case-files
312
+ Enabled: false
313
+
314
+ Naming/MethodName:
315
+ Description: Use the configured style when naming methods.
316
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#snake-case-symbols-methods-vars
317
+ Enabled: false
318
+ EnforcedStyle: snake_case
319
+ SupportedStyles:
320
+ - snake_case
321
+ - camelCase
322
+
323
+ Naming/VariableName:
324
+ Description: Use the configured style when naming variables.
325
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#snake-case-symbols-methods-vars
326
+ Enabled: true
327
+ EnforcedStyle: snake_case
328
+ SupportedStyles:
329
+ - snake_case
330
+ - camelCase
331
+
332
+ # Supports --auto-correct
333
+ Style/AndOr:
334
+ Description: Use &&/|| instead of and/or.
335
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#no-and-or-or
336
+ Enabled: true
337
+ Exclude:
338
+ - 'app/controllers/**/*'
339
+
340
+ Style/BlockDelimiters:
341
+ Description: Check for uses of braces or do/end around single line or multi-line blocks.
342
+ Enabled: true
343
+
344
+ # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
345
+ Style/HashSyntax:
346
+ Enabled: true
347
+
348
+ # Defining a method with parameters needs parentheses.
349
+ Style/MethodDefParentheses:
350
+ Description: Checks if the method definitions have or don't have parentheses.
351
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#method-parens
352
+ Enabled: true
353
+ EnforcedStyle: require_parentheses
354
+
355
+ # Supports --auto-correct
356
+ Style/NilComparison:
357
+ Description: Prefer x.nil? to x == nil.
358
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#predicate-methods
359
+ Enabled: true
360
+
361
+ # Supports --auto-correct
362
+ Style/Not:
363
+ Description: Use ! instead of not.
364
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#bang-not-not
365
+ Enabled: true
366
+
367
+ Style/OptionalArguments:
368
+ Description: Checks for optional arguments that do not appear at the end of the argument
369
+ list
370
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#optional-arguments
371
+ Enabled: true
372
+
373
+ # Supports --auto-correct
374
+ Style/RedundantReturn:
375
+ Description: Don't use return where it's not required.
376
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#no-explicit-return
377
+ Enabled: true
378
+ AllowMultipleReturnValues: false
379
+
380
+ # Supports --auto-correct
381
+ Style/RegexpLiteral:
382
+ Description: Use / or %r around regular expressions.
383
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#percent-r
384
+ Enabled: false
385
+ EnforcedStyle: slashes
386
+ SupportedStyles:
387
+ - slashes
388
+ - percent_r
389
+ - mixed
390
+ AllowInnerSlashes: false
391
+
392
+ Style/StringLiterals:
393
+ EnforcedStyle: single_quotes
394
+ SupportedStyles:
395
+ - single_quotes
396
+ - double_quotes
397
+
398
+ Style/UnlessElse:
399
+ Description: Do not use unless with else. Rewrite these with the positive case first.
400
+ StyleGuide: https://github.com/rubocop-hq/ruby-style-guide#no-else-with-unless
401
+ Enabled: true
402
+
403
+ Style/ZeroLengthPredicate:
404
+ Description: 'Use #empty? when testing for objects of length 0.'
405
+ Enabled: false