makara 0.4.1 → 0.5.1

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.
Files changed (88) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +11 -0
  3. data/.github/workflows/CI.yml +88 -0
  4. data/.github/workflows/gem-publish-public.yml +36 -0
  5. data/.rspec +1 -1
  6. data/.rubocop.yml +15 -0
  7. data/.rubocop_todo.yml +670 -0
  8. data/CHANGELOG.md +69 -48
  9. data/Gemfile +1 -16
  10. data/README.md +8 -9
  11. data/Rakefile +1 -1
  12. data/gemfiles/activerecord_5.2.gemfile +8 -0
  13. data/gemfiles/activerecord_6.0.gemfile +8 -0
  14. data/gemfiles/activerecord_6.1.gemfile +8 -0
  15. data/gemfiles/activerecord_head.gemfile +6 -0
  16. data/lib/active_record/connection_adapters/jdbcmysql_makara_adapter.rb +4 -18
  17. data/lib/active_record/connection_adapters/jdbcpostgresql_makara_adapter.rb +4 -18
  18. data/lib/active_record/connection_adapters/makara_abstract_adapter.rb +107 -30
  19. data/lib/active_record/connection_adapters/makara_jdbcmysql_adapter.rb +4 -18
  20. data/lib/active_record/connection_adapters/makara_jdbcpostgresql_adapter.rb +4 -18
  21. data/lib/active_record/connection_adapters/makara_mysql2_adapter.rb +4 -20
  22. data/lib/active_record/connection_adapters/makara_postgis_adapter.rb +4 -19
  23. data/lib/active_record/connection_adapters/makara_postgresql_adapter.rb +4 -20
  24. data/lib/active_record/connection_adapters/mysql2_makara_adapter.rb +4 -20
  25. data/lib/active_record/connection_adapters/postgresql_makara_adapter.rb +4 -20
  26. data/lib/makara/cache.rb +0 -2
  27. data/lib/makara/config_parser.rb +7 -15
  28. data/lib/makara/connection_wrapper.rb +43 -22
  29. data/lib/makara/context.rb +1 -0
  30. data/lib/makara/cookie.rb +1 -0
  31. data/lib/makara/error_handler.rb +0 -9
  32. data/lib/makara/errors/all_connections_blacklisted.rb +0 -2
  33. data/lib/makara/errors/blacklist_connection.rb +0 -2
  34. data/lib/makara/errors/blacklisted_while_in_transaction.rb +12 -0
  35. data/lib/makara/errors/invalid_shard.rb +14 -0
  36. data/lib/makara/errors/makara_error.rb +0 -1
  37. data/lib/makara/errors/no_connections_available.rb +0 -2
  38. data/lib/makara/logging/logger.rb +0 -4
  39. data/lib/makara/logging/subscriber.rb +0 -2
  40. data/lib/makara/middleware.rb +1 -2
  41. data/lib/makara/pool.rb +49 -31
  42. data/lib/makara/proxy.rb +56 -30
  43. data/lib/makara/railtie.rb +0 -2
  44. data/lib/makara/strategies/abstract.rb +1 -0
  45. data/lib/makara/strategies/priority_failover.rb +2 -0
  46. data/lib/makara/strategies/round_robin.rb +1 -3
  47. data/lib/makara/strategies/shard_aware.rb +45 -0
  48. data/lib/makara/version.rb +1 -3
  49. data/lib/makara.rb +7 -6
  50. data/makara.gemspec +26 -3
  51. data/spec/active_record/connection_adapters/makara_abstract_adapter_error_handling_spec.rb +1 -6
  52. data/spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb +0 -9
  53. data/spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb +9 -22
  54. data/spec/active_record/connection_adapters/makara_postgis_adapter_spec.rb +2 -10
  55. data/spec/active_record/connection_adapters/makara_postgresql_adapter_spec.rb +62 -18
  56. data/spec/cache_spec.rb +0 -1
  57. data/spec/config_parser_spec.rb +54 -56
  58. data/spec/connection_wrapper_spec.rb +1 -2
  59. data/spec/cookie_spec.rb +4 -4
  60. data/spec/middleware_spec.rb +2 -2
  61. data/spec/pool_spec.rb +25 -14
  62. data/spec/proxy_spec.rb +0 -4
  63. data/spec/spec_helper.rb +6 -1
  64. data/spec/strategies/priority_failover_spec.rb +3 -4
  65. data/spec/strategies/round_robin_spec.rb +4 -8
  66. data/spec/strategies/shard_aware_spec.rb +218 -0
  67. data/spec/support/deep_dup.rb +1 -1
  68. data/spec/support/helpers.rb +5 -5
  69. data/spec/support/mock_objects.rb +5 -4
  70. data/spec/support/mysql2_database.yml +2 -2
  71. data/spec/support/mysql2_database_with_custom_errors.yml +2 -2
  72. data/spec/support/pool_extensions.rb +0 -3
  73. data/spec/support/postgis_schema.rb +1 -1
  74. data/spec/support/postgresql_database.yml +0 -2
  75. data/spec/support/proxy_extensions.rb +1 -3
  76. data/spec/support/schema.rb +1 -1
  77. data/spec/support/user.rb +1 -2
  78. metadata +165 -20
  79. data/.travis.yml +0 -105
  80. data/gemfiles/ar-head.gemfile +0 -24
  81. data/gemfiles/ar30.gemfile +0 -36
  82. data/gemfiles/ar31.gemfile +0 -36
  83. data/gemfiles/ar32.gemfile +0 -36
  84. data/gemfiles/ar40.gemfile +0 -24
  85. data/gemfiles/ar41.gemfile +0 -24
  86. data/gemfiles/ar42.gemfile +0 -24
  87. data/gemfiles/ar50.gemfile +0 -24
  88. data/gemfiles/ar51.gemfile +0 -24
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,670 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2021-01-19 22:10:17 UTC using RuboCop version 1.8.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 2
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
12
+ # Include: **/*.gemspec
13
+ Gemspec/OrderedDependencies:
14
+ Exclude:
15
+ - 'makara.gemspec'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: Include.
19
+ # Include: **/*.gemspec
20
+ Gemspec/RequiredRubyVersion:
21
+ Exclude:
22
+ - 'makara.gemspec'
23
+
24
+ # Offense count: 1
25
+ # Cop supports --auto-correct.
26
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
27
+ # SupportedStyles: with_first_argument, with_fixed_indentation
28
+ Layout/ArgumentAlignment:
29
+ Exclude:
30
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
31
+
32
+ # Offense count: 4
33
+ # Cop supports --auto-correct.
34
+ Layout/BlockEndNewline:
35
+ Exclude:
36
+ - 'spec/strategies/shard_aware_spec.rb'
37
+
38
+ # Offense count: 1
39
+ # Cop supports --auto-correct.
40
+ Layout/CommentIndentation:
41
+ Exclude:
42
+ - 'lib/makara/strategies/round_robin.rb'
43
+
44
+ # Offense count: 1
45
+ # Cop supports --auto-correct.
46
+ Layout/ElseAlignment:
47
+ Exclude:
48
+ - 'lib/makara/cookie.rb'
49
+
50
+ # Offense count: 1
51
+ # Cop supports --auto-correct.
52
+ # Configuration parameters: EnforcedStyleAlignWith, Severity.
53
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
54
+ Layout/EndAlignment:
55
+ Exclude:
56
+ - 'lib/makara/cookie.rb'
57
+
58
+ # Offense count: 8
59
+ # Cop supports --auto-correct.
60
+ # Configuration parameters: IndentationWidth.
61
+ # SupportedStyles: special_inside_parentheses, consistent, align_brackets
62
+ Layout/FirstArrayElementIndentation:
63
+ EnforcedStyle: consistent
64
+
65
+ # Offense count: 10
66
+ # Cop supports --auto-correct.
67
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
68
+ # SupportedStyles: special_inside_parentheses, consistent, align_braces
69
+ Layout/FirstHashElementIndentation:
70
+ Exclude:
71
+ - 'lib/makara/config_parser.rb'
72
+ - 'spec/strategies/shard_aware_spec.rb'
73
+
74
+ # Offense count: 4
75
+ # Cop supports --auto-correct.
76
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
77
+ # SupportedHashRocketStyles: key, separator, table
78
+ # SupportedColonStyles: key, separator, table
79
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
80
+ Layout/HashAlignment:
81
+ Exclude:
82
+ - 'lib/makara/config_parser.rb'
83
+
84
+ # Offense count: 1
85
+ # Cop supports --auto-correct.
86
+ # Configuration parameters: Width, IgnoredPatterns.
87
+ Layout/IndentationWidth:
88
+ Exclude:
89
+ - 'lib/makara/cookie.rb'
90
+
91
+ # Offense count: 4
92
+ # Cop supports --auto-correct.
93
+ Layout/MultilineBlockLayout:
94
+ Exclude:
95
+ - 'spec/strategies/shard_aware_spec.rb'
96
+
97
+ # Offense count: 2
98
+ # Cop supports --auto-correct.
99
+ # Configuration parameters: EnforcedStyle.
100
+ # SupportedStyles: symmetrical, new_line, same_line
101
+ Layout/MultilineHashBraceLayout:
102
+ Exclude:
103
+ - 'lib/makara/config_parser.rb'
104
+
105
+ # Offense count: 2
106
+ # Cop supports --auto-correct.
107
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
108
+ # SupportedStyles: aligned, indented
109
+ Layout/MultilineOperationIndentation:
110
+ Exclude:
111
+ - 'spec/active_record/connection_adapters/makara_postgis_adapter_spec.rb'
112
+
113
+ # Offense count: 10
114
+ # Cop supports --auto-correct.
115
+ Layout/SpaceAfterComma:
116
+ Exclude:
117
+ - 'lib/makara/config_parser.rb'
118
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_error_handling_spec.rb'
119
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb'
120
+ - 'spec/middleware_spec.rb'
121
+ - 'spec/proxy_spec.rb'
122
+ - 'spec/support/deep_dup.rb'
123
+
124
+ # Offense count: 4
125
+ # Cop supports --auto-correct.
126
+ # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
127
+ # SupportedStylesForExponentOperator: space, no_space
128
+ Layout/SpaceAroundOperators:
129
+ Exclude:
130
+ - 'lib/makara/context.rb'
131
+ - 'lib/makara/proxy.rb'
132
+ - 'spec/active_record/connection_adapters/makara_postgresql_adapter_spec.rb'
133
+ - 'spec/context_spec.rb'
134
+
135
+ # Offense count: 144
136
+ # Cop supports --auto-correct.
137
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
138
+ # SupportedStyles: space, no_space
139
+ # SupportedStylesForEmptyBraces: space, no_space
140
+ Layout/SpaceBeforeBlockBraces:
141
+ Enabled: false
142
+
143
+ # Offense count: 2
144
+ # Cop supports --auto-correct.
145
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBrackets.
146
+ # SupportedStyles: space, no_space, compact
147
+ # SupportedStylesForEmptyBrackets: space, no_space
148
+ Layout/SpaceInsideArrayLiteralBrackets:
149
+ Exclude:
150
+ - 'lib/makara/proxy.rb'
151
+
152
+ # Offense count: 33
153
+ # Cop supports --auto-correct.
154
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
155
+ # SupportedStyles: space, no_space
156
+ # SupportedStylesForEmptyBraces: space, no_space
157
+ Layout/SpaceInsideBlockBraces:
158
+ Exclude:
159
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
160
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb'
161
+ - 'spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb'
162
+ - 'spec/active_record/connection_adapters/makara_postgis_adapter_spec.rb'
163
+ - 'spec/active_record/connection_adapters/makara_postgresql_adapter_spec.rb'
164
+ - 'spec/middleware_spec.rb'
165
+ - 'spec/pool_spec.rb'
166
+ - 'spec/proxy_spec.rb'
167
+ - 'spec/strategies/shard_aware_spec.rb'
168
+
169
+ # Offense count: 40
170
+ # Cop supports --auto-correct.
171
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
172
+ # SupportedStyles: space, no_space, compact
173
+ # SupportedStylesForEmptyBraces: space, no_space
174
+ Layout/SpaceInsideHashLiteralBraces:
175
+ Exclude:
176
+ - 'lib/makara/connection_wrapper.rb'
177
+ - 'spec/connection_wrapper_spec.rb'
178
+ - 'spec/pool_spec.rb'
179
+ - 'spec/strategies/priority_failover_spec.rb'
180
+ - 'spec/strategies/round_robin_spec.rb'
181
+ - 'spec/strategies/shard_aware_spec.rb'
182
+ - 'spec/support/helpers.rb'
183
+
184
+ # Offense count: 2
185
+ # Configuration parameters: AllowedMethods.
186
+ # AllowedMethods: enums
187
+ Lint/ConstantDefinitionInBlock:
188
+ Exclude:
189
+ - 'spec/active_record/connection_adapters/makara_postgresql_adapter_spec.rb'
190
+
191
+ # Offense count: 2
192
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
193
+ Lint/DuplicateBranch:
194
+ Exclude:
195
+ - 'lib/makara/proxy.rb'
196
+
197
+ # Offense count: 1
198
+ # Cop supports --auto-correct.
199
+ Lint/IdentityComparison:
200
+ Exclude:
201
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
202
+
203
+ # Offense count: 1
204
+ # Cop supports --auto-correct.
205
+ Lint/Loop:
206
+ Exclude:
207
+ - 'lib/makara/strategies/round_robin.rb'
208
+
209
+ # Offense count: 1
210
+ Lint/NonLocalExitFromIterator:
211
+ Exclude:
212
+ - 'lib/makara/strategies/priority_failover.rb'
213
+
214
+ # Offense count: 2
215
+ Lint/RescueException:
216
+ Exclude:
217
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
218
+ - 'lib/makara/error_handler.rb'
219
+
220
+ # Offense count: 1
221
+ # Cop supports --auto-correct.
222
+ Lint/ScriptPermission:
223
+ Exclude:
224
+ - 'Rakefile'
225
+
226
+ # Offense count: 2
227
+ # Cop supports --auto-correct.
228
+ Lint/SendWithMixinArgument:
229
+ Exclude:
230
+ - 'spec/support/pool_extensions.rb'
231
+ - 'spec/support/proxy_extensions.rb'
232
+
233
+ # Offense count: 2
234
+ # Configuration parameters: AllowComments.
235
+ Lint/SuppressedException:
236
+ Exclude:
237
+ - 'spec/spec_helper.rb'
238
+
239
+ # Offense count: 1
240
+ # Cop supports --auto-correct.
241
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
242
+ Lint/UnusedBlockArgument:
243
+ Exclude:
244
+ - 'lib/makara/strategies/priority_failover.rb'
245
+
246
+ # Offense count: 28
247
+ # Cop supports --auto-correct.
248
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
249
+ Lint/UnusedMethodArgument:
250
+ Exclude:
251
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
252
+ - 'lib/makara/cache.rb'
253
+ - 'lib/makara/connection_wrapper.rb'
254
+ - 'lib/makara/proxy.rb'
255
+ - 'spec/support/mock_objects.rb'
256
+
257
+ # Offense count: 29
258
+ Lint/UselessAssignment:
259
+ Exclude:
260
+ - 'spec/pool_spec.rb'
261
+ - 'spec/proxy_spec.rb'
262
+ - 'spec/strategies/priority_failover_spec.rb'
263
+ - 'spec/strategies/round_robin_spec.rb'
264
+ - 'spec/strategies/shard_aware_spec.rb'
265
+ - 'spec/support/helpers.rb'
266
+
267
+ # Offense count: 5
268
+ # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
269
+ Metrics/AbcSize:
270
+ Max: 28
271
+
272
+ # Offense count: 36
273
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
274
+ # IgnoredMethods: refine
275
+ Metrics/BlockLength:
276
+ Max: 191
277
+
278
+ # Offense count: 3
279
+ # Configuration parameters: CountBlocks.
280
+ Metrics/BlockNesting:
281
+ Max: 4
282
+
283
+ # Offense count: 4
284
+ # Configuration parameters: CountComments, CountAsOne.
285
+ Metrics/ClassLength:
286
+ Max: 240
287
+
288
+ # Offense count: 3
289
+ # Configuration parameters: IgnoredMethods.
290
+ Metrics/CyclomaticComplexity:
291
+ Max: 10
292
+
293
+ # Offense count: 16
294
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
295
+ Metrics/MethodLength:
296
+ Max: 48
297
+
298
+ # Offense count: 3
299
+ # Configuration parameters: IgnoredMethods.
300
+ Metrics/PerceivedComplexity:
301
+ Max: 12
302
+
303
+ # Offense count: 2
304
+ Naming/AccessorMethodName:
305
+ Exclude:
306
+ - 'lib/makara/context.rb'
307
+ - 'lib/makara/middleware.rb'
308
+
309
+ # Offense count: 1
310
+ # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, Regex, IgnoreExecutableScripts, AllowedAcronyms.
311
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
312
+ Naming/FileName:
313
+ Exclude:
314
+ - 'gemfiles/ar-head.gemfile'
315
+
316
+ # Offense count: 2
317
+ # Configuration parameters: EnforcedStyleForLeadingUnderscores.
318
+ # SupportedStylesForLeadingUnderscores: disallowed, required, optional
319
+ Naming/MemoizedInstanceVariableName:
320
+ Exclude:
321
+ - 'lib/makara/connection_wrapper.rb'
322
+ - 'lib/makara/context.rb'
323
+
324
+ # Offense count: 8
325
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
326
+ # AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
327
+ Naming/MethodParameterName:
328
+ Exclude:
329
+ - 'lib/makara/connection_wrapper.rb'
330
+ - 'lib/makara/error_handler.rb'
331
+ - 'lib/makara/logging/logger.rb'
332
+ - 'lib/makara/proxy.rb'
333
+ - 'spec/support/proxy_extensions.rb'
334
+
335
+ # Offense count: 2
336
+ # Cop supports --auto-correct.
337
+ Security/YAMLLoad:
338
+ Exclude:
339
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_error_handling_spec.rb'
340
+ - 'spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb'
341
+
342
+ # Offense count: 12
343
+ # Cop supports --auto-correct.
344
+ # Configuration parameters: EnforcedStyle.
345
+ # SupportedStyles: separated, grouped
346
+ Style/AccessorGrouping:
347
+ Exclude:
348
+ - 'lib/makara/errors/invalid_shard.rb'
349
+ - 'lib/makara/pool.rb'
350
+ - 'lib/makara/proxy.rb'
351
+
352
+ # Offense count: 1
353
+ # Cop supports --auto-correct.
354
+ # Configuration parameters: EnforcedStyle.
355
+ # SupportedStyles: prefer_alias, prefer_alias_method
356
+ Style/Alias:
357
+ Exclude:
358
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
359
+
360
+ # Offense count: 2
361
+ # Cop supports --auto-correct.
362
+ # Configuration parameters: EnforcedStyle.
363
+ # SupportedStyles: percent_q, bare_percent
364
+ Style/BarePercentLiterals:
365
+ Exclude:
366
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb'
367
+
368
+ # Offense count: 16
369
+ # Cop supports --auto-correct.
370
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
371
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
372
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
373
+ # FunctionalMethods: let, let!, subject, watch
374
+ # IgnoredMethods: lambda, proc, it
375
+ Style/BlockDelimiters:
376
+ Exclude:
377
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_error_handling_spec.rb'
378
+ - 'spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb'
379
+ - 'spec/active_record/connection_adapters/makara_postgresql_adapter_spec.rb'
380
+ - 'spec/config_parser_spec.rb'
381
+ - 'spec/middleware_spec.rb'
382
+ - 'spec/pool_spec.rb'
383
+ - 'spec/strategies/round_robin_spec.rb'
384
+ - 'spec/strategies/shard_aware_spec.rb'
385
+
386
+ # Offense count: 1
387
+ # Cop supports --auto-correct.
388
+ # Configuration parameters: AllowOnConstant.
389
+ Style/CaseEquality:
390
+ Exclude:
391
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
392
+
393
+ # Offense count: 1
394
+ # Cop supports --auto-correct.
395
+ # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
396
+ # SupportedStyles: assign_to_condition, assign_inside_condition
397
+ Style/ConditionalAssignment:
398
+ Exclude:
399
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
400
+
401
+ # Offense count: 41
402
+ Style/Documentation:
403
+ Enabled: false
404
+
405
+ # Offense count: 1
406
+ # Cop supports --auto-correct.
407
+ # Configuration parameters: EnforcedStyle.
408
+ # SupportedStyles: allowed_in_returns, forbidden
409
+ Style/DoubleNegation:
410
+ Exclude:
411
+ - 'lib/makara/context.rb'
412
+
413
+ # Offense count: 2
414
+ # Cop supports --auto-correct.
415
+ Style/ExpandPathArguments:
416
+ Exclude:
417
+ - 'makara.gemspec'
418
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_error_handling_spec.rb'
419
+
420
+ # Offense count: 4
421
+ # Cop supports --auto-correct.
422
+ Style/ExplicitBlockArgument:
423
+ Exclude:
424
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
425
+ - 'lib/makara/proxy.rb'
426
+
427
+ # Offense count: 66
428
+ # Cop supports --auto-correct.
429
+ # Configuration parameters: EnforcedStyle.
430
+ # SupportedStyles: always, always_true, never
431
+ Style/FrozenStringLiteralComment:
432
+ Enabled: false
433
+
434
+ # Offense count: 7
435
+ # Configuration parameters: MinBodyLength.
436
+ Style/GuardClause:
437
+ Exclude:
438
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
439
+ - 'lib/makara/context.rb'
440
+ - 'lib/makara/cookie.rb'
441
+ - 'lib/makara/pool.rb'
442
+ - 'lib/makara/strategies/round_robin.rb'
443
+ - 'spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb'
444
+
445
+ # Offense count: 16
446
+ # Cop supports --auto-correct.
447
+ Style/IfUnlessModifier:
448
+ Exclude:
449
+ - 'lib/makara/config_parser.rb'
450
+ - 'lib/makara/connection_wrapper.rb'
451
+ - 'lib/makara/context.rb'
452
+ - 'lib/makara/cookie.rb'
453
+ - 'lib/makara/middleware.rb'
454
+ - 'lib/makara/proxy.rb'
455
+ - 'lib/makara/strategies/round_robin.rb'
456
+ - 'spec/pool_spec.rb'
457
+ - 'spec/spec_helper.rb'
458
+ - 'spec/strategies/priority_failover_spec.rb'
459
+ - 'spec/strategies/round_robin_spec.rb'
460
+ - 'spec/strategies/shard_aware_spec.rb'
461
+
462
+ # Offense count: 2
463
+ Style/MultilineBlockChain:
464
+ Exclude:
465
+ - 'spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb'
466
+ - 'spec/active_record/connection_adapters/makara_postgresql_adapter_spec.rb'
467
+
468
+ # Offense count: 1
469
+ # Cop supports --auto-correct.
470
+ Style/MultilineIfModifier:
471
+ Exclude:
472
+ - 'lib/makara/version.rb'
473
+
474
+ # Offense count: 1
475
+ # Cop supports --auto-correct.
476
+ Style/MultilineTernaryOperator:
477
+ Exclude:
478
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
479
+
480
+ # Offense count: 4
481
+ # Cop supports --auto-correct.
482
+ # Configuration parameters: EnforcedStyle.
483
+ # SupportedStyles: literals, strict
484
+ Style/MutableConstant:
485
+ Exclude:
486
+ - 'lib/makara/config_parser.rb'
487
+ - 'lib/makara/cookie.rb'
488
+ - 'lib/makara/logging/subscriber.rb'
489
+ - 'lib/makara/proxy.rb'
490
+
491
+ # Offense count: 2
492
+ # Cop supports --auto-correct.
493
+ # Configuration parameters: EnforcedStyle.
494
+ # SupportedStyles: both, prefix, postfix
495
+ Style/NegatedIf:
496
+ Exclude:
497
+ - 'lib/makara/pool.rb'
498
+ - 'spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb'
499
+
500
+ # Offense count: 3
501
+ # Cop supports --auto-correct.
502
+ Style/NestedTernaryOperator:
503
+ Exclude:
504
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
505
+
506
+ # Offense count: 3
507
+ # Cop supports --auto-correct.
508
+ # Configuration parameters: EnforcedStyle, IgnoredMethods.
509
+ # SupportedStyles: predicate, comparison
510
+ Style/NumericPredicate:
511
+ Exclude:
512
+ - 'spec/**/*'
513
+ - 'lib/makara/connection_wrapper.rb'
514
+ - 'lib/makara/context.rb'
515
+ - 'lib/makara/proxy.rb'
516
+
517
+ # Offense count: 2
518
+ # Configuration parameters: AllowedMethods.
519
+ # AllowedMethods: respond_to_missing?
520
+ Style/OptionalBooleanParameter:
521
+ Exclude:
522
+ - 'lib/makara/proxy.rb'
523
+ - 'lib/makara/strategies/round_robin.rb'
524
+
525
+ # Offense count: 17
526
+ # Cop supports --auto-correct.
527
+ # Configuration parameters: PreferredDelimiters.
528
+ Style/PercentLiteralDelimiters:
529
+ Exclude:
530
+ - 'makara.gemspec'
531
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_error_handling_spec.rb'
532
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb'
533
+
534
+ # Offense count: 5
535
+ # Cop supports --auto-correct.
536
+ Style/PerlBackrefs:
537
+ Exclude:
538
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
539
+
540
+ # Offense count: 4
541
+ # Cop supports --auto-correct.
542
+ # Configuration parameters: EnforcedStyle, AllowedCompactTypes.
543
+ # SupportedStyles: compact, exploded
544
+ Style/RaiseArgs:
545
+ Exclude:
546
+ - 'lib/makara/pool.rb'
547
+
548
+ # Offense count: 1
549
+ # Cop supports --auto-correct.
550
+ Style/RedundantBegin:
551
+ Exclude:
552
+ - 'spec/strategies/shard_aware_spec.rb'
553
+
554
+ # Offense count: 4
555
+ # Cop supports --auto-correct.
556
+ Style/RedundantPercentQ:
557
+ Exclude:
558
+ - 'makara.gemspec'
559
+ - 'spec/active_record/connection_adapters/makara_abstract_adapter_spec.rb'
560
+
561
+ # Offense count: 1
562
+ # Cop supports --auto-correct.
563
+ Style/RedundantRegexpCharacterClass:
564
+ Exclude:
565
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
566
+
567
+ # Offense count: 3
568
+ # Cop supports --auto-correct.
569
+ Style/RedundantRegexpEscape:
570
+ Exclude:
571
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
572
+ - 'lib/makara/config_parser.rb'
573
+
574
+ # Offense count: 8
575
+ # Cop supports --auto-correct.
576
+ Style/RedundantSelf:
577
+ Exclude:
578
+ - 'lib/makara/context.rb'
579
+ - 'lib/makara/pool.rb'
580
+ - 'lib/makara/proxy.rb'
581
+ - 'spec/support/deep_dup.rb'
582
+
583
+ # Offense count: 1
584
+ # Cop supports --auto-correct.
585
+ # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
586
+ # SupportedStyles: slashes, percent_r, mixed
587
+ Style/RegexpLiteral:
588
+ Exclude:
589
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
590
+
591
+ # Offense count: 2
592
+ # Cop supports --auto-correct.
593
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
594
+ # AllowedMethods: present?, blank?, presence, try, try!
595
+ Style/SafeNavigation:
596
+ Exclude:
597
+ - 'lib/makara/connection_wrapper.rb'
598
+ - 'lib/makara/logging/logger.rb'
599
+
600
+ # Offense count: 1
601
+ # Cop supports --auto-correct.
602
+ Style/SelfAssignment:
603
+ Exclude:
604
+ - 'lib/makara/strategies/round_robin.rb'
605
+
606
+ # Offense count: 2
607
+ # Cop supports --auto-correct.
608
+ # Configuration parameters: AllowModifier.
609
+ Style/SoleNestedConditional:
610
+ Exclude:
611
+ - 'lib/active_record/connection_adapters/makara_abstract_adapter.rb'
612
+ - 'lib/makara/middleware.rb'
613
+
614
+ # Offense count: 1
615
+ # Cop supports --auto-correct.
616
+ # Configuration parameters: .
617
+ # SupportedStyles: use_perl_names, use_english_names
618
+ Style/SpecialGlobalVars:
619
+ EnforcedStyle: use_perl_names
620
+
621
+ # Offense count: 11
622
+ # Cop supports --auto-correct.
623
+ Style/StringConcatenation:
624
+ Exclude:
625
+ - 'spec/active_record/connection_adapters/makara_mysql2_adapter_spec.rb'
626
+ - 'spec/active_record/connection_adapters/makara_postgis_adapter_spec.rb'
627
+ - 'spec/active_record/connection_adapters/makara_postgresql_adapter_spec.rb'
628
+
629
+ # Offense count: 118
630
+ # Cop supports --auto-correct.
631
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
632
+ # SupportedStyles: single_quotes, double_quotes
633
+ Style/StringLiterals:
634
+ Enabled: false
635
+
636
+ # Offense count: 2
637
+ # Cop supports --auto-correct.
638
+ Style/StructInheritance:
639
+ Exclude:
640
+ - 'spec/support/mock_objects.rb'
641
+
642
+ # Offense count: 1
643
+ # Cop supports --auto-correct.
644
+ # Configuration parameters: MinSize.
645
+ # SupportedStyles: percent, brackets
646
+ Style/SymbolArray:
647
+ EnforcedStyle: brackets
648
+
649
+ # Offense count: 3
650
+ # Cop supports --auto-correct.
651
+ # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, AllowedMethods.
652
+ # AllowedMethods: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
653
+ Style/TrivialAccessors:
654
+ Exclude:
655
+ - 'lib/makara/config_parser.rb'
656
+ - 'lib/makara/logging/logger.rb'
657
+
658
+ # Offense count: 1
659
+ # Cop supports --auto-correct.
660
+ # Configuration parameters: MinSize, WordRegex.
661
+ # SupportedStyles: percent, brackets
662
+ Style/WordArray:
663
+ EnforcedStyle: brackets
664
+
665
+ # Offense count: 25
666
+ # Cop supports --auto-correct.
667
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
668
+ # URISchemes: http, https
669
+ Layout/LineLength:
670
+ Max: 225