rubocop 0.51.0 → 0.87.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.
Files changed (702) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +1 -1
  3. data/README.md +53 -42
  4. data/assets/output.html.erb +1 -1
  5. data/bin/console +10 -0
  6. data/bin/setup +7 -0
  7. data/config/default.yml +3137 -552
  8. data/lib/rubocop/ast_aliases.rb +8 -0
  9. data/lib/rubocop/cached_data.rb +2 -2
  10. data/lib/rubocop/cli/command/auto_genenerate_config.rb +140 -0
  11. data/lib/rubocop/cli/command/base.rb +33 -0
  12. data/lib/rubocop/cli/command/execute_runner.rb +76 -0
  13. data/lib/rubocop/cli/command/init_dotfile.rb +45 -0
  14. data/lib/rubocop/cli/command/show_cops.rb +76 -0
  15. data/lib/rubocop/cli/command/version.rb +17 -0
  16. data/lib/rubocop/cli/command.rb +21 -0
  17. data/lib/rubocop/cli/environment.rb +21 -0
  18. data/lib/rubocop/cli.rb +58 -131
  19. data/lib/rubocop/comment_config.rb +65 -14
  20. data/lib/rubocop/config.rb +106 -342
  21. data/lib/rubocop/config_loader.rb +122 -153
  22. data/lib/rubocop/config_loader_resolver.rb +198 -8
  23. data/lib/rubocop/config_obsoletion.rb +277 -0
  24. data/lib/rubocop/config_store.rb +12 -2
  25. data/lib/rubocop/config_validator.rb +223 -0
  26. data/lib/rubocop/cop/autocorrect_logic.rb +73 -4
  27. data/lib/rubocop/cop/badge.rb +6 -6
  28. data/lib/rubocop/cop/base.rb +399 -0
  29. data/lib/rubocop/cop/bundler/duplicated_gem.rb +12 -10
  30. data/lib/rubocop/cop/bundler/gem_comment.rb +133 -0
  31. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +21 -28
  32. data/lib/rubocop/cop/bundler/ordered_gems.rb +16 -5
  33. data/lib/rubocop/cop/commissioner.rb +68 -67
  34. data/lib/rubocop/cop/cop.rb +101 -208
  35. data/lib/rubocop/cop/corrector.rb +82 -98
  36. data/lib/rubocop/cop/correctors/alignment_corrector.rb +142 -0
  37. data/lib/rubocop/cop/correctors/condition_corrector.rb +27 -0
  38. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +53 -0
  39. data/lib/rubocop/cop/correctors/empty_line_corrector.rb +26 -0
  40. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +73 -0
  41. data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +136 -0
  42. data/lib/rubocop/cop/correctors/line_break_corrector.rb +61 -0
  43. data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +68 -0
  44. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +44 -0
  45. data/lib/rubocop/cop/correctors/parentheses_corrector.rb +31 -0
  46. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +117 -0
  47. data/lib/rubocop/cop/correctors/punctuation_corrector.rb +29 -0
  48. data/lib/rubocop/cop/correctors/space_corrector.rb +46 -0
  49. data/lib/rubocop/cop/correctors/string_literal_corrector.rb +25 -0
  50. data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +43 -0
  51. data/lib/rubocop/cop/force.rb +1 -0
  52. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +104 -0
  53. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +16 -8
  54. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +85 -0
  55. data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +55 -0
  56. data/lib/rubocop/cop/generator/configuration_injector.rb +66 -0
  57. data/lib/rubocop/cop/generator/require_file_injector.rb +78 -0
  58. data/lib/rubocop/cop/generator.rb +81 -99
  59. data/lib/rubocop/cop/ignored_node.rb +1 -3
  60. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +59 -0
  61. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +44 -0
  62. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +13 -16
  63. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +11 -10
  64. data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +7 -18
  65. data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +6 -4
  66. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +3 -3
  67. data/lib/rubocop/cop/internal_affairs.rb +2 -1
  68. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +22 -33
  69. data/lib/rubocop/cop/layout/{align_parameters.rb → argument_alignment.rb} +26 -24
  70. data/lib/rubocop/cop/layout/array_alignment.rb +82 -0
  71. data/lib/rubocop/cop/layout/{indent_assignment.rb → assignment_indentation.rb} +18 -5
  72. data/lib/rubocop/cop/{lint → layout}/block_alignment.rb +38 -32
  73. data/lib/rubocop/cop/layout/block_end_newline.rb +16 -13
  74. data/lib/rubocop/cop/layout/case_indentation.rb +26 -29
  75. data/lib/rubocop/cop/layout/class_structure.rb +343 -0
  76. data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +126 -0
  77. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +145 -30
  78. data/lib/rubocop/cop/layout/comment_indentation.rb +76 -8
  79. data/lib/rubocop/cop/{lint → layout}/condition_position.rb +15 -5
  80. data/lib/rubocop/cop/{lint → layout}/def_end_alignment.rb +10 -14
  81. data/lib/rubocop/cop/layout/dot_position.rb +34 -22
  82. data/lib/rubocop/cop/layout/else_alignment.rb +37 -20
  83. data/lib/rubocop/cop/layout/empty_comment.rb +151 -0
  84. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +157 -0
  85. data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +6 -5
  86. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +30 -25
  87. data/lib/rubocop/cop/layout/empty_lines.rb +20 -4
  88. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +138 -33
  89. data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +99 -0
  90. data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +121 -0
  91. data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +8 -5
  92. data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +13 -11
  93. data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +60 -11
  94. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +13 -4
  95. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +8 -4
  96. data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +29 -11
  97. data/lib/rubocop/cop/{lint → layout}/end_alignment.rb +53 -21
  98. data/lib/rubocop/cop/layout/end_of_line.rb +48 -8
  99. data/lib/rubocop/cop/layout/extra_spacing.rb +66 -102
  100. data/lib/rubocop/cop/layout/first_argument_indentation.rb +251 -0
  101. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +171 -0
  102. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +6 -2
  103. data/lib/rubocop/cop/layout/{indent_hash.rb → first_hash_element_indentation.rb} +83 -33
  104. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +5 -1
  105. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +8 -4
  106. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +5 -1
  107. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +61 -73
  108. data/lib/rubocop/cop/layout/hash_alignment.rb +365 -0
  109. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +285 -0
  110. data/lib/rubocop/cop/layout/heredoc_indentation.rb +173 -0
  111. data/lib/rubocop/cop/layout/indentation_consistency.rb +160 -8
  112. data/lib/rubocop/cop/layout/indentation_style.rb +117 -0
  113. data/lib/rubocop/cop/layout/indentation_width.rb +100 -45
  114. data/lib/rubocop/cop/layout/initial_indentation.rb +24 -8
  115. data/lib/rubocop/cop/layout/leading_comment_space.rb +67 -6
  116. data/lib/rubocop/cop/layout/leading_empty_lines.rb +53 -0
  117. data/lib/rubocop/cop/layout/line_length.rb +280 -0
  118. data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +61 -24
  119. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +39 -0
  120. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +21 -14
  121. data/lib/rubocop/cop/layout/multiline_block_layout.rb +63 -28
  122. data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +54 -21
  123. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +50 -0
  124. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +52 -0
  125. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +70 -33
  126. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +20 -18
  127. data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +82 -33
  128. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +34 -6
  129. data/lib/rubocop/cop/layout/parameter_alignment.rb +118 -0
  130. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +125 -22
  131. data/lib/rubocop/cop/layout/space_after_colon.rb +6 -6
  132. data/lib/rubocop/cop/layout/space_after_comma.rb +7 -3
  133. data/lib/rubocop/cop/layout/space_after_method_name.rb +10 -7
  134. data/lib/rubocop/cop/layout/space_after_not.rb +4 -2
  135. data/lib/rubocop/cop/layout/space_after_semicolon.rb +12 -1
  136. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +74 -49
  137. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +41 -17
  138. data/lib/rubocop/cop/layout/space_around_keyword.rb +36 -20
  139. data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +131 -0
  140. data/lib/rubocop/cop/layout/space_around_operators.rb +142 -46
  141. data/lib/rubocop/cop/layout/space_before_block_braces.rb +54 -11
  142. data/lib/rubocop/cop/layout/space_before_comma.rb +16 -1
  143. data/lib/rubocop/cop/layout/space_before_comment.rb +6 -7
  144. data/lib/rubocop/cop/layout/space_before_first_arg.rb +15 -4
  145. data/lib/rubocop/cop/layout/space_before_semicolon.rb +5 -1
  146. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +30 -39
  147. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +229 -0
  148. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +5 -5
  149. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +110 -19
  150. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +93 -46
  151. data/lib/rubocop/cop/layout/space_inside_parens.rb +92 -4
  152. data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +3 -3
  153. data/lib/rubocop/cop/layout/space_inside_range_literal.rb +17 -17
  154. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +148 -0
  155. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +37 -41
  156. data/lib/rubocop/cop/layout/{trailing_blank_lines.rb → trailing_empty_lines.rb} +54 -21
  157. data/lib/rubocop/cop/layout/trailing_whitespace.rb +51 -2
  158. data/lib/rubocop/cop/legacy/corrections_proxy.rb +49 -0
  159. data/lib/rubocop/cop/legacy/corrector.rb +29 -0
  160. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +16 -22
  161. data/lib/rubocop/cop/lint/ambiguous_operator.rb +42 -1
  162. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +15 -1
  163. data/lib/rubocop/cop/lint/assignment_in_condition.rb +29 -26
  164. data/lib/rubocop/cop/lint/big_decimal_new.rb +44 -0
  165. data/lib/rubocop/cop/lint/boolean_symbol.rb +14 -2
  166. data/lib/rubocop/cop/lint/circular_argument_reference.rb +2 -2
  167. data/lib/rubocop/cop/lint/constant_resolution.rb +89 -0
  168. data/lib/rubocop/cop/lint/debugger.rb +8 -10
  169. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +34 -13
  170. data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +137 -0
  171. data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +81 -0
  172. data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
  173. data/lib/rubocop/cop/lint/{duplicated_key.rb → duplicate_hash_key.rb} +2 -2
  174. data/lib/rubocop/cop/lint/duplicate_methods.rb +38 -25
  175. data/lib/rubocop/cop/lint/each_with_object_argument.rb +5 -2
  176. data/lib/rubocop/cop/lint/else_layout.rb +4 -3
  177. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
  178. data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
  179. data/lib/rubocop/cop/lint/empty_interpolation.rb +5 -5
  180. data/lib/rubocop/cop/lint/empty_when.rb +30 -7
  181. data/lib/rubocop/cop/lint/ensure_return.rb +23 -3
  182. data/lib/rubocop/cop/lint/erb_new_arguments.rb +162 -0
  183. data/lib/rubocop/cop/lint/flip_flop.rb +32 -0
  184. data/lib/rubocop/cop/lint/float_out_of_range.rb +2 -2
  185. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +62 -44
  186. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +156 -0
  187. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +21 -15
  188. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +37 -59
  189. data/lib/rubocop/cop/lint/inherit_exception.rb +32 -16
  190. data/lib/rubocop/cop/lint/interpolation_check.rb +19 -3
  191. data/lib/rubocop/cop/lint/literal_as_condition.rb +16 -22
  192. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +33 -11
  193. data/lib/rubocop/cop/lint/loop.rb +8 -6
  194. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +84 -0
  195. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +69 -0
  196. data/lib/rubocop/cop/lint/{multiple_compare.rb → multiple_comparison.rb} +4 -4
  197. data/lib/rubocop/cop/lint/nested_method_definition.rb +8 -7
  198. data/lib/rubocop/cop/lint/nested_percent_literal.rb +51 -0
  199. data/lib/rubocop/cop/lint/next_without_accumulator.rb +2 -2
  200. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +89 -0
  201. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +14 -16
  202. data/lib/rubocop/cop/lint/number_conversion.rb +81 -0
  203. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +86 -0
  204. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +45 -15
  205. data/lib/rubocop/cop/lint/percent_string_array.rb +18 -22
  206. data/lib/rubocop/cop/lint/percent_symbol_array.rb +18 -15
  207. data/lib/rubocop/cop/lint/raise_exception.rb +83 -0
  208. data/lib/rubocop/cop/lint/rand_one.rb +5 -5
  209. data/lib/rubocop/cop/lint/{unneeded_disable.rb → redundant_cop_disable_directive.rb} +87 -61
  210. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +119 -0
  211. data/lib/rubocop/cop/lint/{unneeded_require_statement.rb → redundant_require_statement.rb} +10 -10
  212. data/lib/rubocop/cop/lint/{unneeded_splat_expansion.rb → redundant_splat_expansion.rb} +58 -27
  213. data/lib/rubocop/cop/lint/{string_conversion_in_interpolation.rb → redundant_string_coercion.rb} +18 -17
  214. data/lib/rubocop/cop/lint/redundant_with_index.rb +13 -8
  215. data/lib/rubocop/cop/lint/redundant_with_object.rb +9 -7
  216. data/lib/rubocop/cop/lint/regexp_as_condition.rb +7 -1
  217. data/lib/rubocop/cop/lint/require_parentheses.rb +7 -2
  218. data/lib/rubocop/cop/lint/rescue_exception.rb +3 -2
  219. data/lib/rubocop/cop/lint/rescue_type.rb +10 -6
  220. data/lib/rubocop/cop/lint/return_in_void_context.rb +3 -3
  221. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +23 -28
  222. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +94 -0
  223. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +46 -0
  224. data/lib/rubocop/cop/lint/script_permission.rb +33 -11
  225. data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +91 -0
  226. data/lib/rubocop/cop/lint/shadowed_argument.rb +182 -0
  227. data/lib/rubocop/cop/lint/shadowed_exception.rb +42 -23
  228. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +2 -2
  229. data/lib/rubocop/cop/lint/struct_new_override.rb +58 -0
  230. data/lib/rubocop/cop/lint/suppressed_exception.rb +92 -0
  231. data/lib/rubocop/cop/lint/syntax.rb +12 -28
  232. data/lib/rubocop/cop/lint/to_json.rb +41 -0
  233. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +26 -6
  234. data/lib/rubocop/cop/lint/unified_integer.rb +3 -3
  235. data/lib/rubocop/cop/lint/unreachable_code.rb +9 -7
  236. data/lib/rubocop/cop/lint/unused_block_argument.rb +26 -6
  237. data/lib/rubocop/cop/lint/unused_method_argument.rb +62 -12
  238. data/lib/rubocop/cop/lint/uri_escape_unescape.rb +17 -15
  239. data/lib/rubocop/cop/lint/uri_regexp.rb +7 -7
  240. data/lib/rubocop/cop/lint/useless_access_modifier.rb +96 -37
  241. data/lib/rubocop/cop/lint/useless_assignment.rb +8 -10
  242. data/lib/rubocop/cop/lint/useless_comparison.rb +1 -1
  243. data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +9 -1
  244. data/lib/rubocop/cop/lint/useless_setter_call.rb +14 -11
  245. data/lib/rubocop/cop/lint/void.rb +62 -30
  246. data/lib/rubocop/cop/message_annotator.rb +26 -13
  247. data/lib/rubocop/cop/metrics/abc_size.rb +4 -19
  248. data/lib/rubocop/cop/metrics/block_length.rb +42 -2
  249. data/lib/rubocop/cop/metrics/block_nesting.rb +2 -1
  250. data/lib/rubocop/cop/metrics/class_length.rb +37 -2
  251. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +37 -4
  252. data/lib/rubocop/cop/metrics/method_length.rb +29 -2
  253. data/lib/rubocop/cop/metrics/module_length.rb +37 -2
  254. data/lib/rubocop/cop/metrics/parameter_lists.rb +9 -2
  255. data/lib/rubocop/cop/metrics/perceived_complexity.rb +5 -5
  256. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +84 -0
  257. data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +129 -0
  258. data/lib/rubocop/cop/metrics/utils/iterating_block.rb +61 -0
  259. data/lib/rubocop/cop/migration/department_name.rb +85 -0
  260. data/lib/rubocop/cop/mixin/alignment.rb +72 -0
  261. data/lib/rubocop/cop/mixin/allowed_methods.rb +19 -0
  262. data/lib/rubocop/cop/mixin/annotation_comment.rb +1 -0
  263. data/lib/rubocop/cop/mixin/array_min_size.rb +1 -3
  264. data/lib/rubocop/cop/mixin/array_syntax.rb +3 -1
  265. data/lib/rubocop/cop/mixin/auto_corrector.rb +12 -0
  266. data/lib/rubocop/cop/mixin/check_assignment.rb +13 -9
  267. data/lib/rubocop/cop/mixin/check_line_breakable.rb +184 -0
  268. data/lib/rubocop/cop/mixin/code_length.rb +11 -1
  269. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +8 -5
  270. data/lib/rubocop/cop/mixin/configurable_formatting.rb +4 -7
  271. data/lib/rubocop/cop/mixin/configurable_max.rb +6 -2
  272. data/lib/rubocop/cop/mixin/configurable_naming.rb +1 -1
  273. data/lib/rubocop/cop/mixin/def_node.rb +8 -2
  274. data/lib/rubocop/cop/mixin/documentation_comment.rb +13 -7
  275. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +34 -28
  276. data/lib/rubocop/cop/mixin/empty_parameter.rb +24 -0
  277. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +19 -32
  278. data/lib/rubocop/cop/mixin/enforce_superclass.rb +6 -10
  279. data/lib/rubocop/cop/mixin/first_element_line_break.rb +6 -10
  280. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +32 -7
  281. data/lib/rubocop/cop/mixin/{hash_alignment.rb → hash_alignment_styles.rb} +38 -7
  282. data/lib/rubocop/cop/mixin/hash_transform_method.rb +178 -0
  283. data/lib/rubocop/cop/mixin/heredoc.rb +22 -18
  284. data/lib/rubocop/cop/mixin/ignored_methods.rb +19 -0
  285. data/lib/rubocop/cop/mixin/ignored_pattern.rb +3 -1
  286. data/lib/rubocop/cop/mixin/integer_node.rb +3 -1
  287. data/lib/rubocop/cop/mixin/interpolation.rb +27 -0
  288. data/lib/rubocop/cop/mixin/line_length_help.rb +89 -0
  289. data/lib/rubocop/cop/mixin/match_range.rb +4 -0
  290. data/lib/rubocop/cop/mixin/method_complexity.rb +38 -8
  291. data/lib/rubocop/cop/mixin/method_preference.rb +2 -1
  292. data/lib/rubocop/cop/mixin/min_body_length.rb +3 -1
  293. data/lib/rubocop/cop/mixin/{array_hash_indentation.rb → multiline_element_indentation.rb} +5 -2
  294. data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +33 -0
  295. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +50 -15
  296. data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +15 -50
  297. data/lib/rubocop/cop/mixin/negative_conditional.rb +5 -16
  298. data/lib/rubocop/cop/mixin/nil_methods.rb +23 -0
  299. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +30 -32
  300. data/lib/rubocop/cop/mixin/parentheses.rb +3 -9
  301. data/lib/rubocop/cop/mixin/parser_diagnostic.rb +1 -1
  302. data/lib/rubocop/cop/mixin/percent_array.rb +2 -2
  303. data/lib/rubocop/cop/mixin/percent_literal.rb +3 -65
  304. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +98 -6
  305. data/lib/rubocop/cop/mixin/preferred_delimiters.rb +53 -0
  306. data/lib/rubocop/cop/mixin/range_help.rb +117 -0
  307. data/lib/rubocop/cop/mixin/rational_literal.rb +18 -0
  308. data/lib/rubocop/cop/mixin/regexp_literal_help.rb +43 -0
  309. data/lib/rubocop/cop/mixin/rescue_node.rb +4 -3
  310. data/lib/rubocop/cop/mixin/safe_assignment.rb +4 -1
  311. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +13 -14
  312. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +16 -16
  313. data/lib/rubocop/cop/mixin/statement_modifier.rb +20 -33
  314. data/lib/rubocop/cop/mixin/string_help.rb +2 -0
  315. data/lib/rubocop/cop/mixin/string_literals_help.rb +4 -14
  316. data/lib/rubocop/cop/mixin/surrounding_space.rb +120 -9
  317. data/lib/rubocop/cop/mixin/target_ruby_version.rb +5 -1
  318. data/lib/rubocop/cop/mixin/too_many_lines.rb +5 -19
  319. data/lib/rubocop/cop/mixin/trailing_body.rb +26 -0
  320. data/lib/rubocop/cop/mixin/trailing_comma.rb +96 -45
  321. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +113 -0
  322. data/lib/rubocop/cop/mixin/unused_argument.rb +3 -53
  323. data/lib/rubocop/cop/naming/accessor_method_name.rb +20 -10
  324. data/lib/rubocop/cop/naming/ascii_identifiers.rb +64 -5
  325. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +11 -9
  326. data/lib/rubocop/cop/naming/block_parameter_name.rb +49 -0
  327. data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +28 -14
  328. data/lib/rubocop/cop/naming/constant_name.rb +59 -6
  329. data/lib/rubocop/cop/naming/file_name.rb +72 -36
  330. data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +10 -16
  331. data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +8 -12
  332. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +171 -0
  333. data/lib/rubocop/cop/naming/method_name.rb +58 -13
  334. data/lib/rubocop/cop/naming/method_parameter_name.rb +58 -0
  335. data/lib/rubocop/cop/naming/predicate_name.rb +22 -13
  336. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +112 -0
  337. data/lib/rubocop/cop/naming/variable_name.rb +20 -3
  338. data/lib/rubocop/cop/naming/variable_number.rb +12 -29
  339. data/lib/rubocop/cop/offense.rb +55 -13
  340. data/lib/rubocop/cop/registry.rb +118 -14
  341. data/lib/rubocop/cop/security/eval.rb +3 -2
  342. data/lib/rubocop/cop/security/json_load.rb +7 -5
  343. data/lib/rubocop/cop/security/marshal_load.rb +5 -3
  344. data/lib/rubocop/cop/security/open.rb +71 -0
  345. data/lib/rubocop/cop/security/yaml_load.rb +2 -2
  346. data/lib/rubocop/cop/severity.rb +2 -3
  347. data/lib/rubocop/cop/style/access_modifier_declarations.rb +132 -0
  348. data/lib/rubocop/cop/style/accessor_grouping.rb +136 -0
  349. data/lib/rubocop/cop/style/alias.rb +41 -37
  350. data/lib/rubocop/cop/style/and_or.rb +44 -38
  351. data/lib/rubocop/cop/style/array_join.rb +12 -3
  352. data/lib/rubocop/cop/style/ascii_comments.rb +29 -6
  353. data/lib/rubocop/cop/style/attr.rb +26 -8
  354. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +14 -5
  355. data/lib/rubocop/cop/style/bare_percent_literals.rb +34 -13
  356. data/lib/rubocop/cop/style/begin_block.rb +7 -1
  357. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +121 -0
  358. data/lib/rubocop/cop/style/block_comments.rb +27 -5
  359. data/lib/rubocop/cop/style/block_delimiters.rb +189 -30
  360. data/lib/rubocop/cop/style/case_equality.rb +37 -2
  361. data/lib/rubocop/cop/style/character_literal.rb +13 -3
  362. data/lib/rubocop/cop/style/class_and_module_children.rb +92 -10
  363. data/lib/rubocop/cop/style/class_check.rb +28 -9
  364. data/lib/rubocop/cop/style/class_methods.rb +20 -28
  365. data/lib/rubocop/cop/style/class_vars.rb +49 -3
  366. data/lib/rubocop/cop/style/collection_methods.rb +32 -2
  367. data/lib/rubocop/cop/style/colon_method_call.rb +19 -4
  368. data/lib/rubocop/cop/style/colon_method_definition.rb +37 -0
  369. data/lib/rubocop/cop/style/command_literal.rb +85 -28
  370. data/lib/rubocop/cop/style/comment_annotation.rb +51 -19
  371. data/lib/rubocop/cop/style/commented_keyword.rb +22 -30
  372. data/lib/rubocop/cop/style/conditional_assignment.rb +62 -92
  373. data/lib/rubocop/cop/style/constant_visibility.rb +77 -0
  374. data/lib/rubocop/cop/style/copyright.rb +39 -29
  375. data/lib/rubocop/cop/style/date_time.rb +44 -11
  376. data/lib/rubocop/cop/style/def_with_parentheses.rb +28 -3
  377. data/lib/rubocop/cop/style/dir.rb +7 -7
  378. data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +49 -0
  379. data/lib/rubocop/cop/style/documentation.rb +72 -16
  380. data/lib/rubocop/cop/style/documentation_method.rb +51 -2
  381. data/lib/rubocop/cop/style/double_cop_disable_directive.rb +55 -0
  382. data/lib/rubocop/cop/style/double_negation.rb +43 -6
  383. data/lib/rubocop/cop/style/each_for_simple_loop.rb +9 -9
  384. data/lib/rubocop/cop/style/each_with_object.rb +25 -11
  385. data/lib/rubocop/cop/style/empty_block_parameter.rb +48 -0
  386. data/lib/rubocop/cop/style/empty_case_condition.rb +30 -5
  387. data/lib/rubocop/cop/style/empty_else.rb +62 -26
  388. data/lib/rubocop/cop/style/empty_lambda_parameter.rb +45 -0
  389. data/lib/rubocop/cop/style/empty_literal.rb +32 -18
  390. data/lib/rubocop/cop/style/empty_method.rb +14 -21
  391. data/lib/rubocop/cop/style/encoding.rb +13 -5
  392. data/lib/rubocop/cop/style/end_block.rb +15 -1
  393. data/lib/rubocop/cop/style/eval_with_location.rb +148 -0
  394. data/lib/rubocop/cop/style/even_odd.rb +9 -7
  395. data/lib/rubocop/cop/style/expand_path_arguments.rb +194 -0
  396. data/lib/rubocop/cop/style/exponential_notation.rb +119 -0
  397. data/lib/rubocop/cop/style/float_division.rb +94 -0
  398. data/lib/rubocop/cop/style/for.rb +54 -19
  399. data/lib/rubocop/cop/style/format_string.rb +63 -32
  400. data/lib/rubocop/cop/style/format_string_token.rb +45 -67
  401. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +170 -32
  402. data/lib/rubocop/cop/style/global_vars.rb +14 -4
  403. data/lib/rubocop/cop/style/guard_clause.rb +66 -13
  404. data/lib/rubocop/cop/style/hash_each_methods.rb +89 -0
  405. data/lib/rubocop/cop/style/hash_syntax.rb +69 -61
  406. data/lib/rubocop/cop/style/hash_transform_keys.rb +83 -0
  407. data/lib/rubocop/cop/style/hash_transform_values.rb +80 -0
  408. data/lib/rubocop/cop/style/identical_conditional_branches.rb +17 -21
  409. data/lib/rubocop/cop/style/if_inside_else.rb +52 -10
  410. data/lib/rubocop/cop/style/if_unless_modifier.rb +132 -24
  411. data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +14 -2
  412. data/lib/rubocop/cop/style/if_with_semicolon.rb +28 -2
  413. data/lib/rubocop/cop/style/implicit_runtime_error.rb +5 -5
  414. data/lib/rubocop/cop/style/infinite_loop.rb +51 -14
  415. data/lib/rubocop/cop/style/inline_comment.rb +5 -3
  416. data/lib/rubocop/cop/style/inverse_methods.rb +70 -22
  417. data/lib/rubocop/cop/style/ip_addresses.rb +76 -0
  418. data/lib/rubocop/cop/style/lambda.rb +25 -112
  419. data/lib/rubocop/cop/style/lambda_call.rb +13 -27
  420. data/lib/rubocop/cop/style/line_end_concatenation.rb +22 -16
  421. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +169 -0
  422. data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +52 -0
  423. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +134 -34
  424. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +12 -14
  425. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +5 -2
  426. data/lib/rubocop/cop/style/method_def_parentheses.rb +102 -13
  427. data/lib/rubocop/cop/style/method_missing_super.rb +34 -0
  428. data/lib/rubocop/cop/style/min_max.rb +14 -14
  429. data/lib/rubocop/cop/style/missing_else.rb +79 -12
  430. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +46 -0
  431. data/lib/rubocop/cop/style/mixin_grouping.rb +46 -33
  432. data/lib/rubocop/cop/style/mixin_usage.rb +32 -15
  433. data/lib/rubocop/cop/style/module_function.rb +102 -20
  434. data/lib/rubocop/cop/style/multiline_block_chain.rb +14 -3
  435. data/lib/rubocop/cop/style/multiline_if_modifier.rb +7 -7
  436. data/lib/rubocop/cop/style/multiline_if_then.rb +16 -14
  437. data/lib/rubocop/cop/style/multiline_memoization.rb +12 -17
  438. data/lib/rubocop/cop/style/multiline_method_signature.rb +61 -0
  439. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +31 -1
  440. data/lib/rubocop/cop/style/multiline_when_then.rb +74 -0
  441. data/lib/rubocop/cop/style/multiple_comparison.rb +19 -4
  442. data/lib/rubocop/cop/style/mutable_constant.rb +123 -15
  443. data/lib/rubocop/cop/style/negated_if.rb +26 -34
  444. data/lib/rubocop/cop/style/negated_unless.rb +89 -0
  445. data/lib/rubocop/cop/style/negated_while.rb +22 -6
  446. data/lib/rubocop/cop/style/nested_modifier.rb +28 -8
  447. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +25 -24
  448. data/lib/rubocop/cop/style/nested_ternary_operator.rb +39 -1
  449. data/lib/rubocop/cop/style/next.rb +64 -35
  450. data/lib/rubocop/cop/style/nil_comparison.rb +51 -11
  451. data/lib/rubocop/cop/style/non_nil_check.rb +42 -27
  452. data/lib/rubocop/cop/style/not.rb +21 -8
  453. data/lib/rubocop/cop/style/numeric_literal_prefix.rb +46 -23
  454. data/lib/rubocop/cop/style/numeric_literals.rb +31 -18
  455. data/lib/rubocop/cop/style/numeric_predicate.rb +26 -32
  456. data/lib/rubocop/cop/style/one_line_conditional.rb +36 -18
  457. data/lib/rubocop/cop/style/option_hash.rb +22 -14
  458. data/lib/rubocop/cop/style/optional_arguments.rb +3 -6
  459. data/lib/rubocop/cop/style/or_assignment.rb +17 -9
  460. data/lib/rubocop/cop/style/parallel_assignment.rb +16 -16
  461. data/lib/rubocop/cop/style/parentheses_around_condition.rb +65 -5
  462. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +33 -6
  463. data/lib/rubocop/cop/style/percent_q_literals.rb +29 -8
  464. data/lib/rubocop/cop/style/perl_backrefs.rb +10 -3
  465. data/lib/rubocop/cop/style/preferred_hash_methods.rb +7 -10
  466. data/lib/rubocop/cop/style/proc.rb +12 -4
  467. data/lib/rubocop/cop/style/raise_args.rb +27 -21
  468. data/lib/rubocop/cop/style/random_with_offset.rb +152 -0
  469. data/lib/rubocop/cop/style/redundant_assignment.rb +117 -0
  470. data/lib/rubocop/cop/style/redundant_begin.rb +48 -5
  471. data/lib/rubocop/cop/style/{unneeded_capital_w.rb → redundant_capital_w.rb} +19 -9
  472. data/lib/rubocop/cop/style/redundant_condition.rb +124 -0
  473. data/lib/rubocop/cop/style/redundant_conditional.rb +17 -14
  474. data/lib/rubocop/cop/style/redundant_exception.rb +26 -17
  475. data/lib/rubocop/cop/style/redundant_fetch_block.rb +122 -0
  476. data/lib/rubocop/cop/style/redundant_freeze.rb +24 -2
  477. data/lib/rubocop/cop/style/{unneeded_interpolation.rb → redundant_interpolation.rb} +20 -24
  478. data/lib/rubocop/cop/style/redundant_parentheses.rb +59 -27
  479. data/lib/rubocop/cop/style/{unneeded_percent_q.rb → redundant_percent_q.rb} +40 -24
  480. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +90 -0
  481. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +121 -0
  482. data/lib/rubocop/cop/style/redundant_return.rb +87 -51
  483. data/lib/rubocop/cop/style/redundant_self.rb +56 -41
  484. data/lib/rubocop/cop/style/redundant_sort.rb +165 -0
  485. data/lib/rubocop/cop/{performance → style}/redundant_sort_by.rb +9 -7
  486. data/lib/rubocop/cop/style/regexp_literal.rb +126 -20
  487. data/lib/rubocop/cop/style/rescue_modifier.rb +39 -3
  488. data/lib/rubocop/cop/style/rescue_standard_error.rb +124 -0
  489. data/lib/rubocop/cop/style/return_nil.rb +8 -12
  490. data/lib/rubocop/cop/style/safe_navigation.rb +123 -31
  491. data/lib/rubocop/cop/{performance → style}/sample.rb +17 -13
  492. data/lib/rubocop/cop/style/self_assignment.rb +14 -14
  493. data/lib/rubocop/cop/style/semicolon.rb +45 -14
  494. data/lib/rubocop/cop/style/send.rb +12 -2
  495. data/lib/rubocop/cop/style/signal_exception.rb +104 -3
  496. data/lib/rubocop/cop/style/single_line_block_params.rb +22 -2
  497. data/lib/rubocop/cop/style/single_line_methods.rb +41 -31
  498. data/lib/rubocop/cop/style/slicing_with_range.rb +39 -0
  499. data/lib/rubocop/cop/style/special_global_vars.rb +75 -24
  500. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +13 -21
  501. data/lib/rubocop/cop/style/stderr_puts.rb +14 -5
  502. data/lib/rubocop/cop/style/string_hash_keys.rb +50 -0
  503. data/lib/rubocop/cop/style/string_literals.rb +29 -3
  504. data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +7 -9
  505. data/lib/rubocop/cop/style/string_methods.rb +19 -7
  506. data/lib/rubocop/cop/{performance/lstrip_rstrip.rb → style/strip.rb} +10 -7
  507. data/lib/rubocop/cop/style/struct_inheritance.rb +36 -8
  508. data/lib/rubocop/cop/style/symbol_array.rb +51 -17
  509. data/lib/rubocop/cop/style/symbol_literal.rb +3 -3
  510. data/lib/rubocop/cop/style/symbol_proc.rb +32 -54
  511. data/lib/rubocop/cop/style/ternary_parentheses.rb +69 -53
  512. data/lib/rubocop/cop/style/trailing_body_on_class.rb +43 -0
  513. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +54 -0
  514. data/lib/rubocop/cop/style/trailing_body_on_module.rb +43 -0
  515. data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +69 -24
  516. data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +99 -0
  517. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +88 -0
  518. data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +100 -0
  519. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +91 -0
  520. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +19 -9
  521. data/lib/rubocop/cop/style/trivial_accessors.rb +51 -20
  522. data/lib/rubocop/cop/style/unless_else.rb +21 -5
  523. data/lib/rubocop/cop/style/unpack_first.rb +61 -0
  524. data/lib/rubocop/cop/style/variable_interpolation.rb +22 -21
  525. data/lib/rubocop/cop/style/when_then.rb +15 -2
  526. data/lib/rubocop/cop/style/while_until_do.rb +26 -4
  527. data/lib/rubocop/cop/style/while_until_modifier.rb +26 -7
  528. data/lib/rubocop/cop/style/word_array.rb +22 -18
  529. data/lib/rubocop/cop/style/yoda_condition.rb +96 -36
  530. data/lib/rubocop/cop/style/zero_length_predicate.rb +40 -20
  531. data/lib/rubocop/cop/team.rb +159 -91
  532. data/lib/rubocop/cop/util.rb +51 -209
  533. data/lib/rubocop/cop/utils/format_string.rb +137 -0
  534. data/lib/rubocop/cop/variable_force/assignment.rb +9 -2
  535. data/lib/rubocop/cop/variable_force/branch.rb +5 -3
  536. data/lib/rubocop/cop/variable_force/branchable.rb +2 -0
  537. data/lib/rubocop/cop/variable_force/scope.rb +8 -5
  538. data/lib/rubocop/cop/variable_force/variable.rb +21 -10
  539. data/lib/rubocop/cop/variable_force/variable_table.rb +4 -3
  540. data/lib/rubocop/cop/variable_force.rb +41 -36
  541. data/lib/rubocop/core_ext/string.rb +23 -0
  542. data/lib/rubocop/error.rb +23 -0
  543. data/lib/rubocop/ext/processed_source.rb +18 -0
  544. data/lib/rubocop/file_finder.rb +42 -0
  545. data/lib/rubocop/formatter/auto_gen_config_formatter.rb +16 -0
  546. data/lib/rubocop/formatter/base_formatter.rb +3 -7
  547. data/lib/rubocop/formatter/clang_style_formatter.rb +9 -6
  548. data/lib/rubocop/formatter/disabled_config_formatter.rb +84 -49
  549. data/lib/rubocop/formatter/emacs_style_formatter.rb +22 -9
  550. data/lib/rubocop/formatter/file_list_formatter.rb +2 -1
  551. data/lib/rubocop/formatter/formatter_set.rb +17 -16
  552. data/lib/rubocop/formatter/fuubar_style_formatter.rb +2 -2
  553. data/lib/rubocop/formatter/html_formatter.rb +13 -6
  554. data/lib/rubocop/formatter/json_formatter.rb +16 -9
  555. data/lib/rubocop/formatter/junit_formatter.rb +84 -0
  556. data/lib/rubocop/formatter/offense_count_formatter.rb +17 -0
  557. data/lib/rubocop/formatter/pacman_formatter.rb +80 -0
  558. data/lib/rubocop/formatter/progress_formatter.rb +1 -1
  559. data/lib/rubocop/formatter/quiet_formatter.rb +13 -0
  560. data/lib/rubocop/formatter/simple_text_formatter.rb +18 -5
  561. data/lib/rubocop/formatter/tap_formatter.rb +17 -6
  562. data/lib/rubocop/magic_comment.rb +15 -11
  563. data/lib/rubocop/name_similarity.rb +17 -10
  564. data/lib/rubocop/options.rb +267 -139
  565. data/lib/rubocop/path_util.rb +45 -7
  566. data/lib/rubocop/platform.rb +1 -1
  567. data/lib/rubocop/rake_task.rb +7 -9
  568. data/lib/rubocop/remote_config.rb +23 -9
  569. data/lib/rubocop/result_cache.rb +50 -23
  570. data/lib/rubocop/rspec/cop_helper.rb +10 -37
  571. data/lib/rubocop/rspec/expect_offense.rb +124 -12
  572. data/lib/rubocop/rspec/host_environment_simulation_helper.rb +1 -5
  573. data/lib/rubocop/rspec/shared_contexts.rb +78 -39
  574. data/lib/rubocop/rspec/support.rb +5 -1
  575. data/lib/rubocop/runner.rb +109 -59
  576. data/lib/rubocop/string_interpreter.rb +8 -8
  577. data/lib/rubocop/target_finder.rb +62 -68
  578. data/lib/rubocop/target_ruby.rb +154 -0
  579. data/lib/rubocop/version.rb +8 -4
  580. data/lib/rubocop/yaml_duplication_checker.rb +39 -0
  581. data/lib/rubocop.rb +188 -149
  582. metadata +257 -182
  583. data/config/disabled.yml +0 -118
  584. data/config/enabled.yml +0 -1892
  585. data/lib/rubocop/ast/builder.rb +0 -70
  586. data/lib/rubocop/ast/node/and_node.rb +0 -37
  587. data/lib/rubocop/ast/node/args_node.rb +0 -12
  588. data/lib/rubocop/ast/node/array_node.rb +0 -57
  589. data/lib/rubocop/ast/node/block_node.rb +0 -116
  590. data/lib/rubocop/ast/node/case_node.rb +0 -64
  591. data/lib/rubocop/ast/node/def_node.rb +0 -71
  592. data/lib/rubocop/ast/node/ensure_node.rb +0 -25
  593. data/lib/rubocop/ast/node/for_node.rb +0 -61
  594. data/lib/rubocop/ast/node/hash_node.rb +0 -109
  595. data/lib/rubocop/ast/node/if_node.rb +0 -146
  596. data/lib/rubocop/ast/node/keyword_splat_node.rb +0 -45
  597. data/lib/rubocop/ast/node/mixin/binary_operator_node.rb +0 -23
  598. data/lib/rubocop/ast/node/mixin/collection_node.rb +0 -15
  599. data/lib/rubocop/ast/node/mixin/conditional_node.rb +0 -45
  600. data/lib/rubocop/ast/node/mixin/hash_element_node.rb +0 -125
  601. data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +0 -174
  602. data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +0 -89
  603. data/lib/rubocop/ast/node/mixin/modifier_node.rb +0 -17
  604. data/lib/rubocop/ast/node/mixin/parameterized_node.rb +0 -61
  605. data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +0 -35
  606. data/lib/rubocop/ast/node/or_node.rb +0 -37
  607. data/lib/rubocop/ast/node/pair_node.rb +0 -64
  608. data/lib/rubocop/ast/node/regexp_node.rb +0 -35
  609. data/lib/rubocop/ast/node/resbody_node.rb +0 -25
  610. data/lib/rubocop/ast/node/send_node.rb +0 -25
  611. data/lib/rubocop/ast/node/super_node.rb +0 -21
  612. data/lib/rubocop/ast/node/until_node.rb +0 -43
  613. data/lib/rubocop/ast/node/when_node.rb +0 -61
  614. data/lib/rubocop/ast/node/while_node.rb +0 -43
  615. data/lib/rubocop/ast/node/yield_node.rb +0 -21
  616. data/lib/rubocop/ast/node.rb +0 -604
  617. data/lib/rubocop/ast/sexp.rb +0 -16
  618. data/lib/rubocop/ast/traversal.rb +0 -171
  619. data/lib/rubocop/cop/internal_affairs/deprecated_positional_arguments.rb +0 -81
  620. data/lib/rubocop/cop/layout/align_array.rb +0 -35
  621. data/lib/rubocop/cop/layout/align_hash.rb +0 -235
  622. data/lib/rubocop/cop/layout/indent_array.rb +0 -114
  623. data/lib/rubocop/cop/layout/indent_heredoc.rb +0 -168
  624. data/lib/rubocop/cop/layout/space_inside_brackets.rb +0 -20
  625. data/lib/rubocop/cop/layout/tab.rb +0 -60
  626. data/lib/rubocop/cop/lint/end_in_method.rb +0 -40
  627. data/lib/rubocop/cop/lint/handle_exceptions.rb +0 -56
  628. data/lib/rubocop/cop/lint/rescue_without_error_class.rb +0 -41
  629. data/lib/rubocop/cop/metrics/line_length.rb +0 -171
  630. data/lib/rubocop/cop/mixin/autocorrect_alignment.rb +0 -149
  631. data/lib/rubocop/cop/mixin/classish_length.rb +0 -36
  632. data/lib/rubocop/cop/mixin/safe_mode.rb +0 -22
  633. data/lib/rubocop/cop/mixin/space_inside.rb +0 -76
  634. data/lib/rubocop/cop/mixin/target_rails_version.rb +0 -16
  635. data/lib/rubocop/cop/performance/caller.rb +0 -69
  636. data/lib/rubocop/cop/performance/case_when_splat.rb +0 -176
  637. data/lib/rubocop/cop/performance/casecmp.rb +0 -107
  638. data/lib/rubocop/cop/performance/compare_with_block.rb +0 -111
  639. data/lib/rubocop/cop/performance/count.rb +0 -100
  640. data/lib/rubocop/cop/performance/detect.rb +0 -107
  641. data/lib/rubocop/cop/performance/double_start_end_with.rb +0 -99
  642. data/lib/rubocop/cop/performance/end_with.rb +0 -55
  643. data/lib/rubocop/cop/performance/fixed_size.rb +0 -56
  644. data/lib/rubocop/cop/performance/flat_map.rb +0 -75
  645. data/lib/rubocop/cop/performance/hash_each_methods.rb +0 -128
  646. data/lib/rubocop/cop/performance/range_include.rb +0 -41
  647. data/lib/rubocop/cop/performance/redundant_block_call.rb +0 -93
  648. data/lib/rubocop/cop/performance/redundant_match.rb +0 -56
  649. data/lib/rubocop/cop/performance/redundant_merge.rb +0 -167
  650. data/lib/rubocop/cop/performance/regexp_match.rb +0 -223
  651. data/lib/rubocop/cop/performance/reverse_each.rb +0 -40
  652. data/lib/rubocop/cop/performance/size.rb +0 -71
  653. data/lib/rubocop/cop/performance/start_with.rb +0 -58
  654. data/lib/rubocop/cop/performance/string_replacement.rb +0 -170
  655. data/lib/rubocop/cop/performance/times_map.rb +0 -72
  656. data/lib/rubocop/cop/performance/unfreeze_string.rb +0 -50
  657. data/lib/rubocop/cop/performance/uri_default_parser.rb +0 -47
  658. data/lib/rubocop/cop/rails/action_filter.rb +0 -94
  659. data/lib/rubocop/cop/rails/active_support_aliases.rb +0 -67
  660. data/lib/rubocop/cop/rails/application_job.rb +0 -32
  661. data/lib/rubocop/cop/rails/application_record.rb +0 -32
  662. data/lib/rubocop/cop/rails/blank.rb +0 -141
  663. data/lib/rubocop/cop/rails/date.rb +0 -128
  664. data/lib/rubocop/cop/rails/delegate.rb +0 -135
  665. data/lib/rubocop/cop/rails/delegate_allow_blank.rb +0 -51
  666. data/lib/rubocop/cop/rails/dynamic_find_by.rb +0 -81
  667. data/lib/rubocop/cop/rails/enum_uniqueness.rb +0 -43
  668. data/lib/rubocop/cop/rails/exit.rb +0 -61
  669. data/lib/rubocop/cop/rails/file_path.rb +0 -72
  670. data/lib/rubocop/cop/rails/find_by.rb +0 -52
  671. data/lib/rubocop/cop/rails/find_each.rb +0 -47
  672. data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +0 -18
  673. data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +0 -72
  674. data/lib/rubocop/cop/rails/http_positional_arguments.rb +0 -107
  675. data/lib/rubocop/cop/rails/not_null_column.rb +0 -67
  676. data/lib/rubocop/cop/rails/output.rb +0 -23
  677. data/lib/rubocop/cop/rails/output_safety.rb +0 -99
  678. data/lib/rubocop/cop/rails/pluralization_grammar.rb +0 -106
  679. data/lib/rubocop/cop/rails/present.rb +0 -140
  680. data/lib/rubocop/cop/rails/read_write_attribute.rb +0 -65
  681. data/lib/rubocop/cop/rails/relative_date_constant.rb +0 -88
  682. data/lib/rubocop/cop/rails/request_referer.rb +0 -56
  683. data/lib/rubocop/cop/rails/reversible_migration.rb +0 -282
  684. data/lib/rubocop/cop/rails/safe_navigation.rb +0 -91
  685. data/lib/rubocop/cop/rails/save_bang.rb +0 -162
  686. data/lib/rubocop/cop/rails/scope_args.rb +0 -29
  687. data/lib/rubocop/cop/rails/skips_model_validations.rb +0 -70
  688. data/lib/rubocop/cop/rails/time_zone.rb +0 -198
  689. data/lib/rubocop/cop/rails/uniq_before_pluck.rb +0 -95
  690. data/lib/rubocop/cop/rails/unknown_env.rb +0 -63
  691. data/lib/rubocop/cop/rails/validation.rb +0 -64
  692. data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +0 -141
  693. data/lib/rubocop/cop/style/flip_flop.rb +0 -20
  694. data/lib/rubocop/cop/style/method_missing.rb +0 -68
  695. data/lib/rubocop/cop/style/trailing_comma_in_literal.rb +0 -56
  696. data/lib/rubocop/formatter/disabled_lines_formatter.rb +0 -57
  697. data/lib/rubocop/node_pattern.rb +0 -561
  698. data/lib/rubocop/processed_source.rb +0 -147
  699. data/lib/rubocop/rspec/shared_examples.rb +0 -92
  700. data/lib/rubocop/string_util.rb +0 -158
  701. data/lib/rubocop/token.rb +0 -25
  702. /data/{bin → exe}/rubocop +0 -0
data/config/enabled.yml DELETED
@@ -1,1892 +0,0 @@
1
- # These are all the cops that are enabled in the default configuration.
2
-
3
- #################### Layout ###############################
4
-
5
- Layout/AccessModifierIndentation:
6
- Description: Check indentation of private/protected visibility modifiers.
7
- StyleGuide: '#indent-public-private-protected'
8
- Enabled: true
9
-
10
- Layout/AlignArray:
11
- Description: >-
12
- Align the elements of an array literal if they span more than
13
- one line.
14
- StyleGuide: '#align-multiline-arrays'
15
- Enabled: true
16
-
17
- Layout/AlignHash:
18
- Description: >-
19
- Align the elements of a hash literal if they span more than
20
- one line.
21
- Enabled: true
22
-
23
- Layout/AlignParameters:
24
- Description: >-
25
- Align the parameters of a method call if they span more
26
- than one line.
27
- StyleGuide: '#no-double-indent'
28
- Enabled: true
29
-
30
- Layout/BlockEndNewline:
31
- Description: 'Put end statement of multiline block on its own line.'
32
- Enabled: true
33
-
34
- Layout/CaseIndentation:
35
- Description: 'Indentation of when in a case/when/[else/]end.'
36
- StyleGuide: '#indent-when-to-case'
37
- Enabled: true
38
-
39
- Layout/ClosingParenthesisIndentation:
40
- Description: 'Checks the indentation of hanging closing parentheses.'
41
- Enabled: true
42
-
43
- Layout/CommentIndentation:
44
- Description: 'Indentation of comments.'
45
- Enabled: true
46
-
47
- Layout/DotPosition:
48
- Description: 'Checks the position of the dot in multi-line method calls.'
49
- StyleGuide: '#consistent-multi-line-chains'
50
- Enabled: true
51
-
52
- Layout/ElseAlignment:
53
- Description: 'Align elses and elsifs correctly.'
54
- Enabled: true
55
-
56
- Layout/EmptyLineBetweenDefs:
57
- Description: 'Use empty lines between defs.'
58
- StyleGuide: '#empty-lines-between-methods'
59
- Enabled: true
60
-
61
- Layout/EmptyLines:
62
- Description: "Don't use several empty lines in a row."
63
- StyleGuide: '#two-or-more-empty-lines'
64
- Enabled: true
65
-
66
- Layout/EmptyLinesAroundAccessModifier:
67
- Description: "Keep blank lines around access modifiers."
68
- StyleGuide: '#empty-lines-around-access-modifier'
69
- Enabled: true
70
-
71
- Layout/EmptyLinesAroundBeginBody:
72
- Description: "Keeps track of empty lines around begin-end bodies."
73
- StyleGuide: '#empty-lines-around-bodies'
74
- Enabled: true
75
-
76
- Layout/EmptyLinesAroundBlockBody:
77
- Description: "Keeps track of empty lines around block bodies."
78
- StyleGuide: '#empty-lines-around-bodies'
79
- Enabled: true
80
-
81
- Layout/EmptyLinesAroundClassBody:
82
- Description: "Keeps track of empty lines around class bodies."
83
- StyleGuide: '#empty-lines-around-bodies'
84
- Enabled: true
85
-
86
- Layout/EmptyLinesAroundExceptionHandlingKeywords:
87
- Description: "Keeps track of empty lines around exception handling keywords."
88
- StyleGuide: '#empty-lines-around-bodies'
89
- Enabled: true
90
-
91
- Layout/EmptyLinesAroundModuleBody:
92
- Description: "Keeps track of empty lines around module bodies."
93
- StyleGuide: '#empty-lines-around-bodies'
94
- Enabled: true
95
-
96
- Layout/EmptyLinesAroundMethodBody:
97
- Description: "Keeps track of empty lines around method bodies."
98
- StyleGuide: '#empty-lines-around-bodies'
99
- Enabled: true
100
-
101
- Layout/EndOfLine:
102
- Description: 'Use Unix-style line endings.'
103
- StyleGuide: '#crlf'
104
- Enabled: true
105
-
106
- Layout/ExtraSpacing:
107
- Description: 'Do not use unnecessary spacing.'
108
- Enabled: true
109
-
110
- Layout/InitialIndentation:
111
- Description: >-
112
- Checks the indentation of the first non-blank non-comment line in a file.
113
- Enabled: true
114
-
115
- Layout/FirstParameterIndentation:
116
- Description: 'Checks the indentation of the first parameter in a method call.'
117
- Enabled: true
118
-
119
- Layout/IndentationConsistency:
120
- Description: 'Keep indentation straight.'
121
- StyleGuide: '#spaces-indentation'
122
- Enabled: true
123
-
124
- Layout/IndentationWidth:
125
- Description: 'Use 2 spaces for indentation.'
126
- StyleGuide: '#spaces-indentation'
127
- Enabled: true
128
-
129
- Layout/IndentArray:
130
- Description: >-
131
- Checks the indentation of the first element in an array
132
- literal.
133
- Enabled: true
134
-
135
- Layout/IndentAssignment:
136
- Description: >-
137
- Checks the indentation of the first line of the
138
- right-hand-side of a multi-line assignment.
139
- Enabled: true
140
-
141
- Layout/IndentHash:
142
- Description: 'Checks the indentation of the first key in a hash literal.'
143
- Enabled: true
144
-
145
- Layout/IndentHeredoc:
146
- Description: 'This cops checks the indentation of the here document bodies.'
147
- StyleGuide: '#squiggly-heredocs'
148
- Enabled: true
149
-
150
- Layout/SpaceInLambdaLiteral:
151
- Description: 'Checks for spaces in lambda literals.'
152
- Enabled: true
153
-
154
- Layout/LeadingCommentSpace:
155
- Description: 'Comments should start with a space.'
156
- StyleGuide: '#hash-space'
157
- Enabled: true
158
-
159
- Layout/MultilineArrayBraceLayout:
160
- Description: >-
161
- Checks that the closing brace in an array literal is
162
- either on the same line as the last array element, or
163
- a new line.
164
- Enabled: true
165
-
166
- Layout/MultilineBlockLayout:
167
- Description: 'Ensures newlines after multiline block do statements.'
168
- Enabled: true
169
-
170
- Layout/MultilineHashBraceLayout:
171
- Description: >-
172
- Checks that the closing brace in a hash literal is
173
- either on the same line as the last hash element, or
174
- a new line.
175
- Enabled: true
176
-
177
- Layout/MultilineMethodCallBraceLayout:
178
- Description: >-
179
- Checks that the closing brace in a method call is
180
- either on the same line as the last method argument, or
181
- a new line.
182
- Enabled: true
183
-
184
- Layout/MultilineMethodCallIndentation:
185
- Description: >-
186
- Checks indentation of method calls with the dot operator
187
- that span more than one line.
188
- Enabled: true
189
-
190
- Layout/MultilineMethodDefinitionBraceLayout:
191
- Description: >-
192
- Checks that the closing brace in a method definition is
193
- either on the same line as the last method parameter, or
194
- a new line.
195
- Enabled: true
196
-
197
- Layout/MultilineOperationIndentation:
198
- Description: >-
199
- Checks indentation of binary operations that span more than
200
- one line.
201
- Enabled: true
202
-
203
- Layout/EmptyLineAfterMagicComment:
204
- Description: 'Add an empty line after magic comments to separate them from code.'
205
- StyleGuide: '#separate-magic-comments-from-code'
206
- Enabled: true
207
-
208
- Layout/RescueEnsureAlignment:
209
- Description: 'Align rescues and ensures correctly.'
210
- Enabled: true
211
-
212
- Layout/SpaceBeforeFirstArg:
213
- Description: >-
214
- Checks that exactly one space is used between a method name
215
- and the first argument for method calls without parentheses.
216
- Enabled: true
217
-
218
- Layout/SpaceAfterColon:
219
- Description: 'Use spaces after colons.'
220
- StyleGuide: '#spaces-operators'
221
- Enabled: true
222
-
223
- Layout/SpaceAfterComma:
224
- Description: 'Use spaces after commas.'
225
- StyleGuide: '#spaces-operators'
226
- Enabled: true
227
-
228
- Layout/SpaceAfterMethodName:
229
- Description: >-
230
- Do not put a space between a method name and the opening
231
- parenthesis in a method definition.
232
- StyleGuide: '#parens-no-spaces'
233
- Enabled: true
234
-
235
- Layout/SpaceAfterNot:
236
- Description: Tracks redundant space after the ! operator.
237
- StyleGuide: '#no-space-bang'
238
- Enabled: true
239
-
240
- Layout/SpaceAfterSemicolon:
241
- Description: 'Use spaces after semicolons.'
242
- StyleGuide: '#spaces-operators'
243
- Enabled: true
244
-
245
- Layout/SpaceBeforeBlockBraces:
246
- Description: >-
247
- Checks that the left block brace has or doesn't have space
248
- before it.
249
- Enabled: true
250
-
251
- Layout/SpaceBeforeComma:
252
- Description: 'No spaces before commas.'
253
- Enabled: true
254
-
255
- Layout/SpaceBeforeComment:
256
- Description: >-
257
- Checks for missing space between code and a comment on the
258
- same line.
259
- Enabled: true
260
-
261
- Layout/SpaceBeforeSemicolon:
262
- Description: 'No spaces before semicolons.'
263
- Enabled: true
264
-
265
- Layout/SpaceInsideBlockBraces:
266
- Description: >-
267
- Checks that block braces have or don't have surrounding space.
268
- For blocks taking parameters, checks that the left brace has
269
- or doesn't have trailing space.
270
- Enabled: true
271
-
272
- Layout/SpaceAroundBlockParameters:
273
- Description: 'Checks the spacing inside and after block parameters pipes.'
274
- Enabled: true
275
-
276
- Layout/SpaceAroundEqualsInParameterDefault:
277
- Description: >-
278
- Checks that the equals signs in parameter default assignments
279
- have or don't have surrounding space depending on
280
- configuration.
281
- StyleGuide: '#spaces-around-equals'
282
- Enabled: true
283
-
284
- Layout/SpaceAroundKeyword:
285
- Description: 'Use a space around keywords if appropriate.'
286
- Enabled: true
287
-
288
- Layout/SpaceAroundOperators:
289
- Description: 'Use a single space around operators.'
290
- StyleGuide: '#spaces-operators'
291
- Enabled: true
292
-
293
- Layout/SpaceInsideArrayPercentLiteral:
294
- Description: 'No unnecessary additional spaces between elements in %i/%w literals.'
295
- Enabled: true
296
-
297
- Layout/SpaceInsidePercentLiteralDelimiters:
298
- Description: 'No unnecessary spaces inside delimiters of %i/%w/%x literals.'
299
- Enabled: true
300
-
301
- Layout/SpaceInsideBrackets:
302
- Description: 'No spaces after [ or before ].'
303
- StyleGuide: '#no-spaces-braces'
304
- Enabled: true
305
-
306
- Layout/SpaceInsideHashLiteralBraces:
307
- Description: "Use spaces inside hash literal braces - or don't."
308
- StyleGuide: '#spaces-operators'
309
- Enabled: true
310
-
311
- Layout/SpaceInsideParens:
312
- Description: 'No spaces after ( or before ).'
313
- StyleGuide: '#no-spaces-braces'
314
- Enabled: true
315
-
316
- Layout/SpaceInsideRangeLiteral:
317
- Description: 'No spaces inside range literals.'
318
- StyleGuide: '#no-space-inside-range-literals'
319
- Enabled: true
320
-
321
- Layout/SpaceInsideStringInterpolation:
322
- Description: 'Checks for padding/surrounding spaces inside string interpolation.'
323
- StyleGuide: '#string-interpolation'
324
- Enabled: true
325
-
326
- Layout/Tab:
327
- Description: 'No hard tabs.'
328
- StyleGuide: '#spaces-indentation'
329
- Enabled: true
330
-
331
- Layout/TrailingBlankLines:
332
- Description: 'Checks trailing blank lines and final newline.'
333
- StyleGuide: '#newline-eof'
334
- Enabled: true
335
-
336
- Layout/TrailingWhitespace:
337
- Description: 'Avoid trailing whitespace.'
338
- StyleGuide: '#no-trailing-whitespace'
339
- Enabled: true
340
-
341
- #################### Naming ##############################
342
-
343
- Naming/AccessorMethodName:
344
- Description: Check the naming of accessor methods for get_/set_.
345
- StyleGuide: '#accessor_mutator_method_names'
346
- Enabled: true
347
-
348
- Naming/AsciiIdentifiers:
349
- Description: 'Use only ascii symbols in identifiers.'
350
- StyleGuide: '#english-identifiers'
351
- Enabled: true
352
-
353
- Naming/ClassAndModuleCamelCase:
354
- Description: 'Use CamelCase for classes and modules.'
355
- StyleGuide: '#camelcase-classes'
356
- Enabled: true
357
-
358
- Naming/ConstantName:
359
- Description: 'Constants should use SCREAMING_SNAKE_CASE.'
360
- StyleGuide: '#screaming-snake-case'
361
- Enabled: true
362
-
363
- Naming/FileName:
364
- Description: 'Use snake_case for source file names.'
365
- StyleGuide: '#snake-case-files'
366
- Enabled: true
367
-
368
- Naming/HeredocDelimiterCase:
369
- Description: 'Use configured case for heredoc delimiters.'
370
- StyleGuide: '#heredoc-delimiters'
371
- Enabled: true
372
-
373
- Naming/HeredocDelimiterNaming:
374
- Description: 'Use descriptive heredoc delimiters.'
375
- StyleGuide: '#heredoc-delimiters'
376
- Enabled: true
377
-
378
- Naming/MethodName:
379
- Description: 'Use the configured style when naming methods.'
380
- StyleGuide: '#snake-case-symbols-methods-vars'
381
- Enabled: true
382
-
383
- Naming/PredicateName:
384
- Description: 'Check the names of predicate methods.'
385
- StyleGuide: '#bool-methods-qmark'
386
- Enabled: true
387
-
388
- Naming/BinaryOperatorParameterName:
389
- Description: 'When defining binary operators, name the argument other.'
390
- StyleGuide: '#other-arg'
391
- Enabled: true
392
-
393
- Naming/VariableName:
394
- Description: 'Use the configured style when naming variables.'
395
- StyleGuide: '#snake-case-symbols-methods-vars'
396
- Enabled: true
397
-
398
- Naming/VariableNumber:
399
- Description: 'Use the configured style when numbering variables.'
400
- Enabled: true
401
-
402
- #################### Style ###############################
403
-
404
- Style/Alias:
405
- Description: 'Use alias instead of alias_method.'
406
- StyleGuide: '#alias-method'
407
- Enabled: true
408
-
409
- Style/AndOr:
410
- Description: 'Use &&/|| instead of and/or.'
411
- StyleGuide: '#no-and-or-or'
412
- Enabled: true
413
-
414
- Style/ArrayJoin:
415
- Description: 'Use Array#join instead of Array#*.'
416
- StyleGuide: '#array-join'
417
- Enabled: true
418
-
419
- Style/AsciiComments:
420
- Description: 'Use only ascii symbols in comments.'
421
- StyleGuide: '#english-comments'
422
- Enabled: true
423
-
424
- Style/Attr:
425
- Description: 'Checks for uses of Module#attr.'
426
- StyleGuide: '#attr'
427
- Enabled: true
428
-
429
- Style/BeginBlock:
430
- Description: 'Avoid the use of BEGIN blocks.'
431
- StyleGuide: '#no-BEGIN-blocks'
432
- Enabled: true
433
-
434
- Style/BarePercentLiterals:
435
- Description: 'Checks if usage of %() or %Q() matches configuration.'
436
- StyleGuide: '#percent-q-shorthand'
437
- Enabled: true
438
-
439
- Style/BlockComments:
440
- Description: 'Do not use block comments.'
441
- StyleGuide: '#no-block-comments'
442
- Enabled: true
443
-
444
- Style/BlockDelimiters:
445
- Description: >-
446
- Avoid using {...} for multi-line blocks (multiline chaining is
447
- always ugly).
448
- Prefer {...} over do...end for single-line blocks.
449
- StyleGuide: '#single-line-blocks'
450
- Enabled: true
451
-
452
- Style/BracesAroundHashParameters:
453
- Description: 'Enforce braces style around hash parameters.'
454
- Enabled: true
455
-
456
- Style/CaseEquality:
457
- Description: 'Avoid explicit use of the case equality operator(===).'
458
- StyleGuide: '#no-case-equality'
459
- Enabled: true
460
-
461
- Style/CharacterLiteral:
462
- Description: 'Checks for uses of character literals.'
463
- StyleGuide: '#no-character-literals'
464
- Enabled: true
465
-
466
- Style/ClassAndModuleChildren:
467
- Description: 'Checks style of children classes and modules.'
468
- StyleGuide: '#namespace-definition'
469
- Enabled: true
470
-
471
- Style/ClassCheck:
472
- Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
473
- Enabled: true
474
-
475
- Style/ClassMethods:
476
- Description: 'Use self when defining module/class methods.'
477
- StyleGuide: '#def-self-class-methods'
478
- Enabled: true
479
-
480
- Style/ClassVars:
481
- Description: 'Avoid the use of class variables.'
482
- StyleGuide: '#no-class-vars'
483
- Enabled: true
484
-
485
- Style/ColonMethodCall:
486
- Description: 'Do not use :: for method call.'
487
- StyleGuide: '#double-colons'
488
- Enabled: true
489
-
490
- Style/CommandLiteral:
491
- Description: 'Use `` or %x around command literals.'
492
- StyleGuide: '#percent-x'
493
- Enabled: true
494
-
495
- Style/CommentAnnotation:
496
- Description: >-
497
- Checks formatting of special comments
498
- (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
499
- StyleGuide: '#annotate-keywords'
500
- Enabled: true
501
-
502
- Style/CommentedKeyword:
503
- Description: 'Do not place comments on the same line as certain keywords.'
504
- Enabled: true
505
-
506
- Style/ConditionalAssignment:
507
- Description: >-
508
- Use the return value of `if` and `case` statements for
509
- assignment to a variable and variable comparison instead
510
- of assigning that variable inside of each branch.
511
- Enabled: true
512
-
513
- Style/DateTime:
514
- Description: 'Use Date or Time over DateTime.'
515
- StyleGuide: '#date--time'
516
- Enabled: true
517
-
518
- Style/DefWithParentheses:
519
- Description: 'Use def with parentheses when there are arguments.'
520
- StyleGuide: '#method-parens'
521
- Enabled: true
522
-
523
- Style/Dir:
524
- Description: >-
525
- Use the `__dir__` method to retrieve the canonicalized
526
- absolute path to the current file.
527
- Enabled: true
528
-
529
- Style/Documentation:
530
- Description: 'Document classes and non-namespace modules.'
531
- Enabled: true
532
- Exclude:
533
- - 'spec/**/*'
534
- - 'test/**/*'
535
-
536
- Style/DoubleNegation:
537
- Description: 'Checks for uses of double negation (!!).'
538
- StyleGuide: '#no-bang-bang'
539
- Enabled: true
540
-
541
- Style/EachForSimpleLoop:
542
- Description: >-
543
- Use `Integer#times` for a simple loop which iterates a fixed
544
- number of times.
545
- Enabled: true
546
-
547
- Style/EachWithObject:
548
- Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
549
- Enabled: true
550
-
551
- Style/EmptyElse:
552
- Description: 'Avoid empty else-clauses.'
553
- Enabled: true
554
-
555
- Style/EmptyCaseCondition:
556
- Description: 'Avoid empty condition in case statements.'
557
- Enabled: true
558
-
559
- Style/EmptyLiteral:
560
- Description: 'Prefer literals to Array.new/Hash.new/String.new.'
561
- StyleGuide: '#literal-array-hash'
562
- Enabled: true
563
-
564
- Style/EmptyMethod:
565
- Description: 'Checks the formatting of empty method definitions.'
566
- StyleGuide: '#no-single-line-methods'
567
- Enabled: true
568
-
569
- Style/EndBlock:
570
- Description: 'Avoid the use of END blocks.'
571
- StyleGuide: '#no-END-blocks'
572
- Enabled: true
573
-
574
- Style/Encoding:
575
- Description: 'Use UTF-8 as the source file encoding.'
576
- StyleGuide: '#utf-8'
577
- Enabled: true
578
-
579
- Style/EvenOdd:
580
- Description: 'Favor the use of Integer#even? && Integer#odd?'
581
- StyleGuide: '#predicate-methods'
582
- Enabled: true
583
-
584
- Style/FrozenStringLiteralComment:
585
- Description: >-
586
- Add the frozen_string_literal comment to the top of files
587
- to help transition from Ruby 2.3.0 to Ruby 3.0.
588
- Enabled: true
589
-
590
- Style/FlipFlop:
591
- Description: 'Checks for flip flops'
592
- StyleGuide: '#no-flip-flops'
593
- Enabled: true
594
-
595
- Style/For:
596
- Description: 'Checks use of for or each in multiline loops.'
597
- StyleGuide: '#no-for-loops'
598
- Enabled: true
599
-
600
- Style/FormatString:
601
- Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
602
- StyleGuide: '#sprintf'
603
- Enabled: true
604
-
605
- Style/FormatStringToken:
606
- Description: 'Use a consistent style for format string tokens.'
607
- Enabled: true
608
-
609
- Style/GlobalVars:
610
- Description: 'Do not introduce global variables.'
611
- StyleGuide: '#instance-vars'
612
- Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
613
- Enabled: true
614
-
615
- Style/GuardClause:
616
- Description: 'Check for conditionals that can be replaced with guard clauses'
617
- StyleGuide: '#no-nested-conditionals'
618
- Enabled: true
619
-
620
- Style/HashSyntax:
621
- Description: >-
622
- Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
623
- { :a => 1, :b => 2 }.
624
- StyleGuide: '#hash-literals'
625
- Enabled: true
626
-
627
- Style/IfInsideElse:
628
- Description: 'Finds if nodes inside else, which can be converted to elsif.'
629
- Enabled: true
630
-
631
- Style/IfUnlessModifier:
632
- Description: >-
633
- Favor modifier if/unless usage when you have a
634
- single-line body.
635
- StyleGuide: '#if-as-a-modifier'
636
- Enabled: true
637
-
638
- Style/IfUnlessModifierOfIfUnless:
639
- Description: >-
640
- Avoid modifier if/unless usage on conditionals.
641
- Enabled: true
642
-
643
- Style/IfWithSemicolon:
644
- Description: 'Do not use if x; .... Use the ternary operator instead.'
645
- StyleGuide: '#no-semicolon-ifs'
646
- Enabled: true
647
-
648
- Style/IdenticalConditionalBranches:
649
- Description: >-
650
- Checks that conditional statements do not have an identical
651
- line at the end of each branch, which can validly be moved
652
- out of the conditional.
653
- Enabled: true
654
-
655
- Style/InfiniteLoop:
656
- Description: 'Use Kernel#loop for infinite loops.'
657
- StyleGuide: '#infinite-loop'
658
- Enabled: true
659
-
660
- Style/InverseMethods:
661
- Description: >-
662
- Use the inverse method instead of `!.method`
663
- if an inverse method is defined.
664
- Enabled: true
665
-
666
- Style/Lambda:
667
- Description: 'Use the new lambda literal syntax for single-line blocks.'
668
- StyleGuide: '#lambda-multi-line'
669
- Enabled: true
670
-
671
- Style/LambdaCall:
672
- Description: 'Use lambda.call(...) instead of lambda.(...).'
673
- StyleGuide: '#proc-call'
674
- Enabled: true
675
-
676
- Style/LineEndConcatenation:
677
- Description: >-
678
- Use \ instead of + or << to concatenate two string literals at
679
- line end.
680
- Enabled: true
681
-
682
- Style/MethodCallWithoutArgsParentheses:
683
- Description: 'Do not use parentheses for method calls with no arguments.'
684
- StyleGuide: '#method-invocation-parens'
685
- Enabled: true
686
-
687
- Style/MethodDefParentheses:
688
- Description: >-
689
- Checks if the method definitions have or don't have
690
- parentheses.
691
- StyleGuide: '#method-parens'
692
- Enabled: true
693
-
694
- Style/MethodMissing:
695
- Description: 'Avoid using `method_missing`.'
696
- StyleGuide: '#no-method-missing'
697
- Enabled: true
698
-
699
- Style/MinMax:
700
- Description: >-
701
- Use `Enumerable#minmax` instead of `Enumerable#min`
702
- and `Enumerable#max` in conjunction.'
703
- Enabled: true
704
-
705
- Style/MixinGrouping:
706
- Description: 'Checks for grouping of mixins in `class` and `module` bodies.'
707
- StyleGuide: '#mixin-grouping'
708
- Enabled: true
709
-
710
- Style/ModuleFunction:
711
- Description: 'Checks for usage of `extend self` in modules.'
712
- StyleGuide: '#module-function'
713
- Enabled: true
714
-
715
- Style/MultilineBlockChain:
716
- Description: 'Avoid multi-line chains of blocks.'
717
- StyleGuide: '#single-line-blocks'
718
- Enabled: true
719
-
720
- Style/MultilineIfThen:
721
- Description: 'Do not use then for multi-line if/unless.'
722
- StyleGuide: '#no-then'
723
- Enabled: true
724
-
725
- Style/MultilineIfModifier:
726
- Description: 'Only use if/unless modifiers on single line statements.'
727
- StyleGuide: '#no-multiline-if-modifiers'
728
- Enabled: true
729
-
730
- Style/MultilineMemoization:
731
- Description: 'Wrap multiline memoizations in a `begin` and `end` block.'
732
- Enabled: true
733
-
734
- Style/MultilineTernaryOperator:
735
- Description: >-
736
- Avoid multi-line ?: (the ternary operator);
737
- use if/unless instead.
738
- StyleGuide: '#no-multiline-ternary'
739
- Enabled: true
740
-
741
- Style/MultipleComparison:
742
- Description: >-
743
- Avoid comparing a variable with multiple items in a conditional,
744
- use Array#include? instead.
745
- Enabled: true
746
-
747
- Style/MutableConstant:
748
- Description: 'Do not assign mutable objects to constants.'
749
- Enabled: true
750
-
751
- Style/NegatedIf:
752
- Description: >-
753
- Favor unless over if for negative conditions
754
- (or control flow or).
755
- StyleGuide: '#unless-for-negatives'
756
- Enabled: true
757
-
758
- Style/NegatedWhile:
759
- Description: 'Favor until over while for negative conditions.'
760
- StyleGuide: '#until-for-negatives'
761
- Enabled: true
762
-
763
- Style/NestedModifier:
764
- Description: 'Avoid using nested modifiers.'
765
- StyleGuide: '#no-nested-modifiers'
766
- Enabled: true
767
-
768
- Style/NestedParenthesizedCalls:
769
- Description: >-
770
- Parenthesize method calls which are nested inside the
771
- argument list of another parenthesized method call.
772
- Enabled: true
773
-
774
- Style/NestedTernaryOperator:
775
- Description: 'Use one expression per branch in a ternary operator.'
776
- StyleGuide: '#no-nested-ternary'
777
- Enabled: true
778
-
779
- Style/Next:
780
- Description: 'Use `next` to skip iteration instead of a condition at the end.'
781
- StyleGuide: '#no-nested-conditionals'
782
- Enabled: true
783
-
784
- Style/NilComparison:
785
- Description: 'Prefer x.nil? to x == nil.'
786
- StyleGuide: '#predicate-methods'
787
- Enabled: true
788
-
789
- Style/NonNilCheck:
790
- Description: 'Checks for redundant nil checks.'
791
- StyleGuide: '#no-non-nil-checks'
792
- Enabled: true
793
-
794
- Style/Not:
795
- Description: 'Use ! instead of not.'
796
- StyleGuide: '#bang-not-not'
797
- Enabled: true
798
-
799
- Style/NumericLiterals:
800
- Description: >-
801
- Add underscores to large numeric literals to improve their
802
- readability.
803
- StyleGuide: '#underscores-in-numerics'
804
- Enabled: true
805
-
806
- Style/NumericLiteralPrefix:
807
- Description: 'Use smallcase prefixes for numeric literals.'
808
- StyleGuide: '#numeric-literal-prefixes'
809
- Enabled: true
810
-
811
- Style/NumericPredicate:
812
- Description: >-
813
- Checks for the use of predicate- or comparison methods for
814
- numeric comparisons.
815
- StyleGuide: '#predicate-methods'
816
- # This will change to a new method call which isn't guaranteed to be on the
817
- # object. Switching these methods has to be done with knowledge of the types
818
- # of the variables which rubocop doesn't have.
819
- AutoCorrect: false
820
- Enabled: true
821
-
822
- Style/OneLineConditional:
823
- Description: >-
824
- Favor the ternary operator(?:) over
825
- if/then/else/end constructs.
826
- StyleGuide: '#ternary-operator'
827
- Enabled: true
828
-
829
- Style/OptionalArguments:
830
- Description: >-
831
- Checks for optional arguments that do not appear at the end
832
- of the argument list
833
- StyleGuide: '#optional-arguments'
834
- Enabled: true
835
-
836
- Style/OrAssignment:
837
- Description: 'Recommend usage of double pipe equals (||=) where applicable.'
838
- StyleGuide: '#double-pipe-for-uninit'
839
- Enabled: true
840
-
841
- Style/ParallelAssignment:
842
- Description: >-
843
- Check for simple usages of parallel assignment.
844
- It will only warn when the number of variables
845
- matches on both sides of the assignment.
846
- StyleGuide: '#parallel-assignment'
847
- Enabled: true
848
-
849
- Style/ParenthesesAroundCondition:
850
- Description: >-
851
- Don't use parentheses around the condition of an
852
- if/unless/while.
853
- StyleGuide: '#no-parens-around-condition'
854
- Enabled: true
855
-
856
- Style/PercentLiteralDelimiters:
857
- Description: 'Use `%`-literal delimiters consistently'
858
- StyleGuide: '#percent-literal-braces'
859
- Enabled: true
860
-
861
- Style/PercentQLiterals:
862
- Description: 'Checks if uses of %Q/%q match the configured preference.'
863
- Enabled: true
864
-
865
- Style/PerlBackrefs:
866
- Description: 'Avoid Perl-style regex back references.'
867
- StyleGuide: '#no-perl-regexp-last-matchers'
868
- Enabled: true
869
-
870
- Style/PreferredHashMethods:
871
- Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
872
- StyleGuide: '#hash-key'
873
- Enabled: true
874
-
875
- Style/Proc:
876
- Description: 'Use proc instead of Proc.new.'
877
- StyleGuide: '#proc'
878
- Enabled: true
879
-
880
- Style/RaiseArgs:
881
- Description: 'Checks the arguments passed to raise/fail.'
882
- StyleGuide: '#exception-class-messages'
883
- Enabled: true
884
-
885
- Style/RedundantBegin:
886
- Description: "Don't use begin blocks when they are not needed."
887
- StyleGuide: '#begin-implicit'
888
- Enabled: true
889
-
890
- Style/RedundantConditional:
891
- Description: "Don't return true/false from a conditional."
892
- Enabled: true
893
-
894
- Style/RedundantException:
895
- Description: "Checks for an obsolete RuntimeException argument in raise/fail."
896
- StyleGuide: '#no-explicit-runtimeerror'
897
- Enabled: true
898
-
899
- Style/RedundantFreeze:
900
- Description: "Checks usages of Object#freeze on immutable objects."
901
- Enabled: true
902
-
903
- Style/RedundantParentheses:
904
- Description: "Checks for parentheses that seem not to serve any purpose."
905
- Enabled: true
906
-
907
- Style/RedundantReturn:
908
- Description: "Don't use return where it's not required."
909
- StyleGuide: '#no-explicit-return'
910
- Enabled: true
911
-
912
- Style/RedundantSelf:
913
- Description: "Don't use self where it's not needed."
914
- StyleGuide: '#no-self-unless-required'
915
- Enabled: true
916
-
917
- Style/RegexpLiteral:
918
- Description: 'Use / or %r around regular expressions.'
919
- StyleGuide: '#percent-r'
920
- Enabled: true
921
-
922
- Style/RescueModifier:
923
- Description: 'Avoid using rescue in its modifier form.'
924
- StyleGuide: '#no-rescue-modifiers'
925
- Enabled: true
926
-
927
- Style/SafeNavigation:
928
- Description: >-
929
- This cop transforms usages of a method call safeguarded by
930
- a check for the existance of the object to
931
- safe navigation (`&.`).
932
- Enabled: true
933
-
934
- Style/SelfAssignment:
935
- Description: >-
936
- Checks for places where self-assignment shorthand should have
937
- been used.
938
- StyleGuide: '#self-assignment'
939
- Enabled: true
940
-
941
- Style/Semicolon:
942
- Description: "Don't use semicolons to terminate expressions."
943
- StyleGuide: '#no-semicolon'
944
- Enabled: true
945
-
946
- Style/SignalException:
947
- Description: 'Checks for proper usage of fail and raise.'
948
- StyleGuide: '#prefer-raise-over-fail'
949
- Enabled: true
950
-
951
- Style/SingleLineMethods:
952
- Description: 'Avoid single-line methods.'
953
- StyleGuide: '#no-single-line-methods'
954
- Enabled: true
955
-
956
- Style/SpecialGlobalVars:
957
- Description: 'Avoid Perl-style global variables.'
958
- StyleGuide: '#no-cryptic-perlisms'
959
- Enabled: true
960
-
961
- Style/StabbyLambdaParentheses:
962
- Description: 'Check for the usage of parentheses around stabby lambda arguments.'
963
- StyleGuide: '#stabby-lambda-with-args'
964
- Enabled: true
965
-
966
- Style/StderrPuts:
967
- Description: 'Use `warn` instead of `$stderr.puts`.'
968
- StyleGuide: '#warn'
969
- Enabled: true
970
-
971
- Style/StringLiterals:
972
- Description: 'Checks if uses of quotes match the configured preference.'
973
- StyleGuide: '#consistent-string-literals'
974
- Enabled: true
975
-
976
- Style/StringLiteralsInInterpolation:
977
- Description: >-
978
- Checks if uses of quotes inside expressions in interpolated
979
- strings match the configured preference.
980
- Enabled: true
981
-
982
- Style/StructInheritance:
983
- Description: 'Checks for inheritance from Struct.new.'
984
- StyleGuide: '#no-extend-struct-new'
985
- Enabled: true
986
-
987
- Style/SymbolArray:
988
- Description: 'Use %i or %I for arrays of symbols.'
989
- StyleGuide: '#percent-i'
990
- Enabled: true
991
-
992
- Style/SymbolLiteral:
993
- Description: 'Use plain symbols instead of string symbols when possible.'
994
- Enabled: true
995
-
996
- Style/SymbolProc:
997
- Description: 'Use symbols as procs instead of blocks when possible.'
998
- Enabled: true
999
-
1000
- Style/TernaryParentheses:
1001
- Description: 'Checks for use of parentheses around ternary conditions.'
1002
- Enabled: true
1003
-
1004
- Style/MixinUsage:
1005
- Description: 'Checks that `include`, `extend` and `prepend` exists at the top level.'
1006
- Enabled: true
1007
-
1008
- Style/TrailingCommaInArguments:
1009
- Description: 'Checks for trailing comma in argument lists.'
1010
- StyleGuide: '#no-trailing-params-comma'
1011
- Enabled: true
1012
-
1013
- Style/TrailingCommaInLiteral:
1014
- Description: 'Checks for trailing comma in array and hash literals.'
1015
- StyleGuide: '#no-trailing-array-commas'
1016
- Enabled: true
1017
-
1018
- Style/TrivialAccessors:
1019
- Description: 'Prefer attr_* methods to trivial readers/writers.'
1020
- StyleGuide: '#attr_family'
1021
- Enabled: true
1022
-
1023
- Style/UnlessElse:
1024
- Description: >-
1025
- Do not use unless with else. Rewrite these with the positive
1026
- case first.
1027
- StyleGuide: '#no-else-with-unless'
1028
- Enabled: true
1029
-
1030
- Style/UnneededCapitalW:
1031
- Description: 'Checks for %W when interpolation is not needed.'
1032
- Enabled: true
1033
-
1034
- Style/UnneededInterpolation:
1035
- Description: 'Checks for strings that are just an interpolated expression.'
1036
- Enabled: true
1037
-
1038
- Style/UnneededPercentQ:
1039
- Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
1040
- StyleGuide: '#percent-q'
1041
- Enabled: true
1042
-
1043
- Style/TrailingUnderscoreVariable:
1044
- Description: >-
1045
- Checks for the usage of unneeded trailing underscores at the
1046
- end of parallel variable assignment.
1047
- AllowNamedUnderscoreVariables: true
1048
- Enabled: true
1049
-
1050
- Style/VariableInterpolation:
1051
- Description: >-
1052
- Don't interpolate global, instance and class variables
1053
- directly in strings.
1054
- StyleGuide: '#curlies-interpolate'
1055
- Enabled: true
1056
-
1057
- Style/WhenThen:
1058
- Description: 'Use when x then ... for one-line cases.'
1059
- StyleGuide: '#one-line-cases'
1060
- Enabled: true
1061
-
1062
- Style/WhileUntilDo:
1063
- Description: 'Checks for redundant do after while or until.'
1064
- StyleGuide: '#no-multiline-while-do'
1065
- Enabled: true
1066
-
1067
- Style/WhileUntilModifier:
1068
- Description: >-
1069
- Favor modifier while/until usage when you have a
1070
- single-line body.
1071
- StyleGuide: '#while-as-a-modifier'
1072
- Enabled: true
1073
-
1074
- Style/WordArray:
1075
- Description: 'Use %w or %W for arrays of words.'
1076
- StyleGuide: '#percent-w'
1077
- Enabled: true
1078
-
1079
- Style/YodaCondition:
1080
- Description: 'Do not use literals as the first operand of a comparison.'
1081
- Reference: 'https://en.wikipedia.org/wiki/Yoda_conditions'
1082
- Enabled: true
1083
-
1084
- Style/ZeroLengthPredicate:
1085
- Description: 'Use #empty? when testing for objects of length 0.'
1086
- Enabled: true
1087
-
1088
- #################### Metrics ###############################
1089
-
1090
- Metrics/AbcSize:
1091
- Description: >-
1092
- A calculated magnitude based on number of assignments,
1093
- branches, and conditions.
1094
- Reference: 'http://c2.com/cgi/wiki?AbcMetric'
1095
- Enabled: true
1096
-
1097
- Metrics/BlockNesting:
1098
- Description: 'Avoid excessive block nesting'
1099
- StyleGuide: '#three-is-the-number-thou-shalt-count'
1100
- Enabled: true
1101
-
1102
- Metrics/ClassLength:
1103
- Description: 'Avoid classes longer than 100 lines of code.'
1104
- Enabled: true
1105
-
1106
- Metrics/ModuleLength:
1107
- Description: 'Avoid modules longer than 100 lines of code.'
1108
- Enabled: true
1109
-
1110
- Metrics/CyclomaticComplexity:
1111
- Description: >-
1112
- A complexity metric that is strongly correlated to the number
1113
- of test cases needed to validate a method.
1114
- Enabled: true
1115
-
1116
- Metrics/LineLength:
1117
- Description: 'Limit lines to 80 characters.'
1118
- StyleGuide: '#80-character-limits'
1119
- Enabled: true
1120
-
1121
- Metrics/MethodLength:
1122
- Description: 'Avoid methods longer than 10 lines of code.'
1123
- StyleGuide: '#short-methods'
1124
- Enabled: true
1125
-
1126
- Metrics/BlockLength:
1127
- Description: 'Avoid long blocks with many lines.'
1128
- Enabled: true
1129
-
1130
- Metrics/ParameterLists:
1131
- Description: 'Avoid parameter lists longer than three or four parameters.'
1132
- StyleGuide: '#too-many-params'
1133
- Enabled: true
1134
-
1135
- Metrics/PerceivedComplexity:
1136
- Description: >-
1137
- A complexity metric geared towards measuring complexity for a
1138
- human reader.
1139
- Enabled: true
1140
-
1141
- #################### Lint ##################################
1142
- ### Warnings
1143
-
1144
- Lint/AmbiguousBlockAssociation:
1145
- Description: >-
1146
- Checks for ambiguous block association with method when param passed without
1147
- parentheses.
1148
- StyleGuide: '#syntax'
1149
- Enabled: true
1150
-
1151
- Lint/AmbiguousOperator:
1152
- Description: >-
1153
- Checks for ambiguous operators in the first argument of a
1154
- method invocation without parentheses.
1155
- StyleGuide: '#method-invocation-parens'
1156
- Enabled: true
1157
-
1158
- Lint/AmbiguousRegexpLiteral:
1159
- Description: >-
1160
- Checks for ambiguous regexp literals in the first argument of
1161
- a method invocation without parentheses.
1162
- Enabled: true
1163
-
1164
- Lint/AssignmentInCondition:
1165
- Description: "Don't use assignment in conditions."
1166
- StyleGuide: '#safe-assignment-in-condition'
1167
- Enabled: true
1168
-
1169
- Lint/BlockAlignment:
1170
- Description: 'Align block ends correctly.'
1171
- Enabled: true
1172
-
1173
- Lint/BooleanSymbol:
1174
- Description: 'Check for `:true` and `:false` symbols.'
1175
- Enabled: true
1176
-
1177
- Lint/CircularArgumentReference:
1178
- Description: "Default values in optional keyword arguments and optional ordinal arguments should not refer back to the name of the argument."
1179
- Enabled: true
1180
-
1181
- Lint/ConditionPosition:
1182
- Description: >-
1183
- Checks for condition placed in a confusing position relative to
1184
- the keyword.
1185
- StyleGuide: '#same-line-condition'
1186
- Enabled: true
1187
-
1188
- Lint/Debugger:
1189
- Description: 'Check for debugger calls.'
1190
- Enabled: true
1191
-
1192
- Lint/DefEndAlignment:
1193
- Description: 'Align ends corresponding to defs correctly.'
1194
- Enabled: true
1195
-
1196
- Lint/DeprecatedClassMethods:
1197
- Description: 'Check for deprecated class method calls.'
1198
- Enabled: true
1199
-
1200
- Lint/DuplicateCaseCondition:
1201
- Description: 'Do not repeat values in case conditionals.'
1202
- Enabled: true
1203
-
1204
- Lint/DuplicateMethods:
1205
- Description: 'Check for duplicate method definitions.'
1206
- Enabled: true
1207
-
1208
- Lint/DuplicatedKey:
1209
- Description: 'Check for duplicate keys in hash literals.'
1210
- Enabled: true
1211
-
1212
- Lint/EachWithObjectArgument:
1213
- Description: 'Check for immutable argument given to each_with_object.'
1214
- Enabled: true
1215
-
1216
- Lint/ElseLayout:
1217
- Description: 'Check for odd code arrangement in an else block.'
1218
- Enabled: true
1219
-
1220
- Lint/EmptyEnsure:
1221
- Description: 'Checks for empty ensure block.'
1222
- Enabled: true
1223
- AutoCorrect: false
1224
-
1225
- Lint/EmptyExpression:
1226
- Description: 'Checks for empty expressions.'
1227
- Enabled: true
1228
-
1229
- Lint/EmptyInterpolation:
1230
- Description: 'Checks for empty string interpolation.'
1231
- Enabled: true
1232
-
1233
- Lint/EmptyWhen:
1234
- Description: 'Checks for `when` branches with empty bodies.'
1235
- Enabled: true
1236
-
1237
- Lint/EndAlignment:
1238
- Description: 'Align ends correctly.'
1239
- Enabled: true
1240
-
1241
- Lint/EndInMethod:
1242
- Description: 'END blocks should not be placed inside method definitions.'
1243
- Enabled: true
1244
-
1245
- Lint/EnsureReturn:
1246
- Description: 'Do not use return in an ensure block.'
1247
- StyleGuide: '#no-return-ensure'
1248
- Enabled: true
1249
-
1250
- Lint/FloatOutOfRange:
1251
- Description: >-
1252
- Catches floating-point literals too large or small for Ruby to
1253
- represent.
1254
- Enabled: true
1255
-
1256
- Lint/FormatParameterMismatch:
1257
- Description: 'The number of parameters to format/sprint must match the fields.'
1258
- Enabled: true
1259
-
1260
- Lint/HandleExceptions:
1261
- Description: "Don't suppress exception."
1262
- StyleGuide: '#dont-hide-exceptions'
1263
- Enabled: true
1264
-
1265
- Lint/ImplicitStringConcatenation:
1266
- Description: >-
1267
- Checks for adjacent string literals on the same line, which
1268
- could better be represented as a single string literal.
1269
- Enabled: true
1270
-
1271
- Lint/IneffectiveAccessModifier:
1272
- Description: >-
1273
- Checks for attempts to use `private` or `protected` to set
1274
- the visibility of a class method, which does not work.
1275
- Enabled: true
1276
-
1277
- Lint/InheritException:
1278
- Description: 'Avoid inheriting from the `Exception` class.'
1279
- Enabled: true
1280
-
1281
- Lint/InterpolationCheck:
1282
- Description: 'Raise warning for interpolation in single q strs'
1283
- Enabled: true
1284
-
1285
- Lint/LiteralAsCondition:
1286
- Description: 'Checks of literals used in conditions.'
1287
- Enabled: true
1288
-
1289
- Lint/LiteralInInterpolation:
1290
- Description: 'Checks for literals used in interpolation.'
1291
- Enabled: true
1292
-
1293
- Lint/Loop:
1294
- Description: >-
1295
- Use Kernel#loop with break rather than begin/end/until or
1296
- begin/end/while for post-loop tests.
1297
- StyleGuide: '#loop-with-break'
1298
- Enabled: true
1299
-
1300
- Lint/MultipleCompare:
1301
- Description: "Use `&&` operator to compare multiple value."
1302
- Enabled: true
1303
-
1304
- Lint/NestedMethodDefinition:
1305
- Description: 'Do not use nested method definitions.'
1306
- StyleGuide: '#no-nested-methods'
1307
- Enabled: true
1308
-
1309
- Lint/NextWithoutAccumulator:
1310
- Description: >-
1311
- Do not omit the accumulator when calling `next`
1312
- in a `reduce`/`inject` block.
1313
- Enabled: true
1314
-
1315
- Lint/NonLocalExitFromIterator:
1316
- Description: 'Do not use return in iterator to cause non-local exit.'
1317
- Enabled: true
1318
-
1319
- Lint/ParenthesesAsGroupedExpression:
1320
- Description: >-
1321
- Checks for method calls with a space before the opening
1322
- parenthesis.
1323
- StyleGuide: '#parens-no-spaces'
1324
- Enabled: true
1325
-
1326
- Lint/PercentStringArray:
1327
- Description: >-
1328
- Checks for unwanted commas and quotes in %w/%W literals.
1329
- Enabled: true
1330
-
1331
- Lint/PercentSymbolArray:
1332
- Description: >-
1333
- Checks for unwanted commas and colons in %i/%I literals.
1334
- Enabled: true
1335
-
1336
- Lint/RandOne:
1337
- Description: >-
1338
- Checks for `rand(1)` calls. Such calls always return `0`
1339
- and most likely a mistake.
1340
- Enabled: true
1341
-
1342
- Lint/RedundantWithIndex:
1343
- Description: 'Checks for redundant `with_index`.'
1344
- Enabled: true
1345
-
1346
- Lint/RedundantWithObject:
1347
- Description: 'Checks for redundant `with_object`.'
1348
- Enabled: true
1349
-
1350
- Lint/RegexpAsCondition:
1351
- Description: >-
1352
- Do not use regexp literal as a condition.
1353
- The regexp literal matches `$_` implicitly.
1354
- Enabled: true
1355
-
1356
- Lint/RequireParentheses:
1357
- Description: >-
1358
- Use parentheses in the method call to avoid confusion
1359
- about precedence.
1360
- Enabled: true
1361
-
1362
- Lint/RescueException:
1363
- Description: 'Avoid rescuing the Exception class.'
1364
- StyleGuide: '#no-blind-rescues'
1365
- Enabled: true
1366
-
1367
- Lint/RescueType:
1368
- Description: 'Avoid rescuing from non constants that could result in a `TypeError`.'
1369
- Enabled: true
1370
-
1371
- Lint/RescueWithoutErrorClass:
1372
- Description: 'Avoid rescuing without specifying an error class.'
1373
- StyleGuide: '#no-blind-rescues'
1374
- Enabled: true
1375
-
1376
- Lint/SafeNavigationChain:
1377
- Description: 'Do not chain ordinary method call after safe navigation operator.'
1378
- Enabled: true
1379
-
1380
- Lint/ScriptPermission:
1381
- Description: 'Grant script file execute permission.'
1382
- Enabled: true
1383
-
1384
- Lint/ShadowedException:
1385
- Description: >-
1386
- Avoid rescuing a higher level exception
1387
- before a lower level exception.
1388
- Enabled: true
1389
-
1390
- Lint/ShadowingOuterLocalVariable:
1391
- Description: >-
1392
- Do not use the same name as outer local variable
1393
- for block arguments or block local variables.
1394
- Enabled: true
1395
-
1396
- Lint/StringConversionInInterpolation:
1397
- Description: 'Checks for Object#to_s usage in string interpolation.'
1398
- StyleGuide: '#no-to-s'
1399
- Enabled: true
1400
-
1401
- Lint/Syntax:
1402
- Description: 'Checks syntax error'
1403
- Enabled: true
1404
-
1405
- Lint/UnderscorePrefixedVariableName:
1406
- Description: 'Do not use prefix `_` for a variable that is used.'
1407
- Enabled: true
1408
-
1409
- Lint/UnifiedInteger:
1410
- Description: 'Use Integer instead of Fixnum or Bignum'
1411
- Enabled: true
1412
-
1413
- Lint/UnneededDisable:
1414
- Description: >-
1415
- Checks for rubocop:disable comments that can be removed.
1416
- Note: this cop is not disabled when disabling all cops.
1417
- It must be explicitly disabled.
1418
- Enabled: true
1419
-
1420
- Lint/UnneededRequireStatement:
1421
- Description: 'Checks for unnecessary `require` statement.'
1422
- Enabled: true
1423
-
1424
- Lint/UnneededSplatExpansion:
1425
- Description: 'Checks for splat unnecessarily being called on literals'
1426
- Enabled: true
1427
-
1428
- Lint/UnusedBlockArgument:
1429
- Description: 'Checks for unused block arguments.'
1430
- StyleGuide: '#underscore-unused-vars'
1431
- Enabled: true
1432
-
1433
- Lint/UnusedMethodArgument:
1434
- Description: 'Checks for unused method arguments.'
1435
- StyleGuide: '#underscore-unused-vars'
1436
- Enabled: true
1437
-
1438
- Lint/UnreachableCode:
1439
- Description: 'Unreachable code.'
1440
- Enabled: true
1441
-
1442
- Lint/UriEscapeUnescape:
1443
- Description: >-
1444
- `URI.escape` method is obsolete and should not be used. Instead, use
1445
- `CGI.escape`, `URI.encode_www_form` or `URI.encode_www_form_component`
1446
- depending on your specific use case.
1447
- Also `URI.unescape` method is obsolete and should not be used. Instead, use
1448
- `CGI.unescape`, `URI.decode_www_form` or `URI.decode_www_form_component`
1449
- depending on your specific use case.
1450
- Enabled: true
1451
-
1452
- Lint/UriRegexp:
1453
- Description: 'Use `URI::DEFAULT_PARSER.make_regexp` instead of `URI.regexp`.'
1454
- Enabled: true
1455
-
1456
- Lint/UselessAccessModifier:
1457
- Description: 'Checks for useless access modifiers.'
1458
- Enabled: true
1459
- ContextCreatingMethods: []
1460
- MethodCreatingMethods: []
1461
-
1462
- Lint/UselessAssignment:
1463
- Description: 'Checks for useless assignment to a local variable.'
1464
- StyleGuide: '#underscore-unused-vars'
1465
- Enabled: true
1466
-
1467
- Lint/UselessComparison:
1468
- Description: 'Checks for comparison of something with itself.'
1469
- Enabled: true
1470
-
1471
- Lint/UselessElseWithoutRescue:
1472
- Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
1473
- Enabled: true
1474
-
1475
- Lint/ReturnInVoidContext:
1476
- Description: 'Checks for return in void context.'
1477
- Enabled: true
1478
-
1479
- Lint/UselessSetterCall:
1480
- Description: 'Checks for useless setter call to a local variable.'
1481
- Enabled: true
1482
-
1483
- Lint/Void:
1484
- Description: 'Possible use of operator/literal/variable in void context.'
1485
- Enabled: true
1486
-
1487
- #################### Performance ###########################
1488
-
1489
- Performance/Caller:
1490
- Description: >-
1491
- Use `caller(n..n)` instead of `caller`.
1492
- Enabled: true
1493
-
1494
- Performance/Casecmp:
1495
- Description: >-
1496
- Use `casecmp` rather than `downcase ==`, `upcase ==`, `== downcase`, or `== upcase`..
1497
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringcasecmp-vs-stringdowncase---code'
1498
- Enabled: true
1499
-
1500
- Performance/CaseWhenSplat:
1501
- Description: >-
1502
- Place `when` conditions that use splat at the end
1503
- of the list of `when` branches.
1504
- Enabled: true
1505
-
1506
- Performance/Count:
1507
- Description: >-
1508
- Use `count` instead of `select...size`, `reject...size`,
1509
- `select...count`, `reject...count`, `select...length`,
1510
- and `reject...length`.
1511
- # This cop has known compatibility issues with `ActiveRecord` and other
1512
- # frameworks. ActiveRecord's `count` ignores the block that is passed to it.
1513
- # For more information, see the documentation in the cop itself.
1514
- # If you understand the known risk, you can disable `SafeMode`.
1515
- SafeMode: true
1516
- Enabled: true
1517
-
1518
- Performance/Detect:
1519
- Description: >-
1520
- Use `detect` instead of `select.first`, `find_all.first`,
1521
- `select.last`, and `find_all.last`.
1522
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
1523
- # This cop has known compatibility issues with `ActiveRecord` and other
1524
- # frameworks. `ActiveRecord` does not implement a `detect` method and `find`
1525
- # has its own meaning. Correcting `ActiveRecord` methods with this cop
1526
- # should be considered unsafe.
1527
- SafeMode: true
1528
- Enabled: true
1529
-
1530
- Performance/DoubleStartEndWith:
1531
- Description: >-
1532
- Use `str.{start,end}_with?(x, ..., y, ...)`
1533
- instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
1534
- Enabled: true
1535
-
1536
- Performance/EndWith:
1537
- Description: 'Use `end_with?` instead of a regex match anchored to the end of a string.'
1538
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end'
1539
- # This will change to a new method call which isn't guaranteed to be on the
1540
- # object. Switching these methods has to be done with knowledge of the types
1541
- # of the variables which rubocop doesn't have.
1542
- AutoCorrect: false
1543
- Enabled: true
1544
-
1545
- Performance/FixedSize:
1546
- Description: 'Do not compute the size of statically sized objects except in constants'
1547
- Enabled: true
1548
-
1549
- Performance/FlatMap:
1550
- Description: >-
1551
- Use `Enumerable#flat_map`
1552
- instead of `Enumerable#map...Array#flatten(1)`
1553
- or `Enumberable#collect..Array#flatten(1)`
1554
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
1555
- Enabled: true
1556
- EnabledForFlattenWithoutParams: false
1557
- # If enabled, this cop will warn about usages of
1558
- # `flatten` being called without any parameters.
1559
- # This can be dangerous since `flat_map` will only flatten 1 level, and
1560
- # `flatten` without any parameters can flatten multiple levels.
1561
-
1562
- Performance/HashEachMethods:
1563
- Description: >-
1564
- Use `Hash#each_key` and `Hash#each_value` instead of
1565
- `Hash#keys.each` and `Hash#values.each`.
1566
- StyleGuide: '#hash-each'
1567
- Enabled: true
1568
- AutoCorrect: false
1569
-
1570
- Performance/LstripRstrip:
1571
- Description: 'Use `strip` instead of `lstrip.rstrip`.'
1572
- Enabled: true
1573
-
1574
- Performance/RangeInclude:
1575
- Description: 'Use `Range#cover?` instead of `Range#include?`.'
1576
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#cover-vs-include-code'
1577
- Enabled: true
1578
-
1579
- Performance/RedundantBlockCall:
1580
- Description: 'Use `yield` instead of `block.call`.'
1581
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#proccall-vs-yield-code'
1582
- Enabled: true
1583
-
1584
- Performance/RedundantMatch:
1585
- Description: >-
1586
- Use `=~` instead of `String#match` or `Regexp#match` in a context where the
1587
- returned `MatchData` is not needed.
1588
- Enabled: true
1589
-
1590
- Performance/RedundantMerge:
1591
- Description: 'Use Hash#[]=, rather than Hash#merge! with a single key-value pair.'
1592
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashmerge-vs-hash-code'
1593
- Enabled: true
1594
-
1595
- Performance/RedundantSortBy:
1596
- Description: 'Use `sort` instead of `sort_by { |x| x }`.'
1597
- Enabled: true
1598
-
1599
- Performance/RegexpMatch:
1600
- Description: >-
1601
- Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`,
1602
- `Regexp#===`, or `=~` when `MatchData` is not used.
1603
- Enabled: true
1604
-
1605
- Performance/ReverseEach:
1606
- Description: 'Use `reverse_each` instead of `reverse.each`.'
1607
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
1608
- Enabled: true
1609
-
1610
- Performance/Sample:
1611
- Description: >-
1612
- Use `sample` instead of `shuffle.first`,
1613
- `shuffle.last`, and `shuffle[Integer]`.
1614
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
1615
- Enabled: true
1616
-
1617
- Performance/Size:
1618
- Description: >-
1619
- Use `size` instead of `count` for counting
1620
- the number of elements in `Array` and `Hash`.
1621
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
1622
- Enabled: true
1623
-
1624
- Performance/CompareWithBlock:
1625
- Description: 'Use `sort_by(&:foo)` instead of `sort { |a, b| a.foo <=> b.foo }`.'
1626
- Enabled: true
1627
-
1628
- Performance/StartWith:
1629
- Description: 'Use `start_with?` instead of a regex match anchored to the beginning of a string.'
1630
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end'
1631
- # This will change to a new method call which isn't guaranteed to be on the
1632
- # object. Switching these methods has to be done with knowledge of the types
1633
- # of the variables which rubocop doesn't have.
1634
- AutoCorrect: false
1635
- Enabled: true
1636
-
1637
- Performance/StringReplacement:
1638
- Description: >-
1639
- Use `tr` instead of `gsub` when you are replacing the same
1640
- number of characters. Use `delete` instead of `gsub` when
1641
- you are deleting characters.
1642
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
1643
- Enabled: true
1644
-
1645
- Performance/TimesMap:
1646
- Description: 'Checks for .times.map calls.'
1647
- AutoCorrect: false
1648
- Enabled: true
1649
-
1650
- Performance/UnfreezeString:
1651
- Description: 'Use unary plus to get an unfrozen string literal.'
1652
- Enabled: true
1653
-
1654
- Performance/UriDefaultParser:
1655
- Description: 'Use `URI::DEFAULT_PARSER` instead of `URI::Parser.new`.'
1656
- Enabled: true
1657
-
1658
- #################### Rails #################################
1659
-
1660
- Rails/ActionFilter:
1661
- Description: 'Enforces consistent use of action filter methods.'
1662
- Enabled: true
1663
-
1664
- Rails/ApplicationJob:
1665
- Description: 'Check that jobs subclass ApplicationJob.'
1666
- Enabled: true
1667
-
1668
- Rails/ApplicationRecord:
1669
- Description: 'Check that models subclass ApplicationRecord.'
1670
- Enabled: true
1671
-
1672
- Rails/ActiveSupportAliases:
1673
- Description: >-
1674
- Avoid ActiveSupport aliases of standard ruby methods:
1675
- `String#starts_with?`, `String#ends_with?`,
1676
- `Array#append`, `Array#prepend`.
1677
- Enabled: true
1678
-
1679
- Rails/Blank:
1680
- Description: 'Enforce using `blank?` and `present?`.'
1681
- Enabled: true
1682
- # Convert checks for `nil` or `empty?` to `blank?`
1683
- NilOrEmpty: true
1684
- # Convert usages of not `present?` to `blank?`
1685
- NotPresent: true
1686
- # Convert usages of `unless` `present?` to `if` `blank?`
1687
- UnlessPresent: true
1688
-
1689
- Rails/Date:
1690
- Description: >-
1691
- Checks the correct usage of date aware methods,
1692
- such as Date.today, Date.current etc.
1693
- Enabled: true
1694
-
1695
- Rails/Delegate:
1696
- Description: 'Prefer delegate method for delegations.'
1697
- Enabled: true
1698
-
1699
- Rails/DelegateAllowBlank:
1700
- Description: 'Do not use allow_blank as an option to delegate.'
1701
- Enabled: true
1702
-
1703
- Rails/DynamicFindBy:
1704
- Description: 'Use `find_by` instead of dynamic `find_by_*`.'
1705
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#find_by'
1706
- Enabled: true
1707
-
1708
- Rails/EnumUniqueness:
1709
- Description: 'Avoid duplicate integers in hash-syntax `enum` declaration.'
1710
- Enabled: true
1711
-
1712
- Rails/Exit:
1713
- Description: >-
1714
- Favor `fail`, `break`, `return`, etc. over `exit` in
1715
- application or library code outside of Rake files to avoid
1716
- exits during unit testing or running in production.
1717
- Enabled: true
1718
-
1719
- Rails/FilePath:
1720
- Description: 'Use `Rails.root.join` for file path joining.'
1721
- Enabled: true
1722
-
1723
- Rails/FindBy:
1724
- Description: 'Prefer find_by over where.first.'
1725
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#find_by'
1726
- Enabled: true
1727
-
1728
- Rails/FindEach:
1729
- Description: 'Prefer all.find_each over all.find.'
1730
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#find-each'
1731
- Enabled: true
1732
-
1733
- Rails/HasAndBelongsToMany:
1734
- Description: 'Prefer has_many :through to has_and_belongs_to_many.'
1735
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has-many-through'
1736
- Enabled: true
1737
-
1738
- Rails/HasManyOrHasOneDependent:
1739
- Description: 'Define the dependent option to the has_many and has_one associations.'
1740
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has_many-has_one-dependent-option'
1741
- Enabled: true
1742
-
1743
- Rails/HttpPositionalArguments:
1744
- Description: 'Use keyword arguments instead of positional arguments in http method calls.'
1745
- Enabled: true
1746
- Include:
1747
- - 'spec/**/*'
1748
- - 'test/**/*'
1749
-
1750
- Rails/NotNullColumn:
1751
- Description: 'Do not add a NOT NULL column without a default value'
1752
- Enabled: true
1753
-
1754
- Rails/Output:
1755
- Description: 'Checks for calls to puts, print, etc.'
1756
- Enabled: true
1757
-
1758
- Rails/OutputSafety:
1759
- Description: 'The use of `html_safe` or `raw` may be a security risk.'
1760
- Enabled: true
1761
-
1762
- Rails/PluralizationGrammar:
1763
- Description: 'Checks for incorrect grammar when using methods like `3.day.ago`.'
1764
- Enabled: true
1765
-
1766
- Rails/Present:
1767
- Description: 'Enforce using `blank?` and `present?`.'
1768
- Enabled: true
1769
- NotNilAndNotEmpty: true
1770
- # Convert checks for not `nil` and not `empty?` to `present?`
1771
- NotBlank: true
1772
- # Convert usages of not `blank?` to `present?`
1773
- UnlessBlank: true
1774
- # Convert usages of `unless` `blank?` to `if` `present?`
1775
-
1776
- Rails/ReadWriteAttribute:
1777
- Description: >-
1778
- Checks for read_attribute(:attr) and
1779
- write_attribute(:attr, val).
1780
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#read-attribute'
1781
- Enabled: true
1782
-
1783
- Rails/RelativeDateConstant:
1784
- Description: 'Do not assign relative date to constants.'
1785
- Enabled: true
1786
-
1787
- Rails/RequestReferer:
1788
- Description: 'Use consistent syntax for request.referer.'
1789
- Enabled: true
1790
-
1791
- Rails/ReversibleMigration:
1792
- Description: 'Checks whether the change method of the migration file is reversible.'
1793
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#reversible-migration'
1794
- Reference: 'http://api.rubyonrails.org/classes/ActiveRecord/Migration/CommandRecorder.html'
1795
- Enabled: true
1796
-
1797
- Rails/SafeNavigation:
1798
- Description: "Use Ruby's safe navigation operator (`&.`) instead of `try!`"
1799
- Enabled: true
1800
-
1801
- Rails/ScopeArgs:
1802
- Description: 'Checks the arguments of ActiveRecord scopes.'
1803
- Enabled: true
1804
-
1805
- Rails/TimeZone:
1806
- Description: 'Checks the correct usage of time zone aware methods.'
1807
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
1808
- Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
1809
- Enabled: true
1810
-
1811
- Rails/UniqBeforePluck:
1812
- Description: 'Prefer the use of uniq or distinct before pluck.'
1813
- Enabled: true
1814
-
1815
- Rails/UnknownEnv:
1816
- Description: 'Use correct environment name.'
1817
- Enabled: true
1818
-
1819
- Rails/SkipsModelValidations:
1820
- Description: >-
1821
- Use methods that skips model validations with caution.
1822
- See reference for more information.
1823
- Reference: 'http://guides.rubyonrails.org/active_record_validations.html#skipping-validations'
1824
- Enabled: true
1825
-
1826
- Rails/Validation:
1827
- Description: 'Use validates :attribute, hash of validations.'
1828
- Enabled: true
1829
-
1830
- #################### Security ##############################
1831
-
1832
- Security/Eval:
1833
- Description: 'The use of eval represents a serious security risk.'
1834
- Enabled: true
1835
-
1836
- Security/JSONLoad:
1837
- Description: >-
1838
- Prefer usage of `JSON.parse` over `JSON.load` due to potential
1839
- security issues. See reference for more information.
1840
- Reference: 'http://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load'
1841
- Enabled: true
1842
- # Autocorrect here will change to a method that may cause crashes depending
1843
- # on the value of the argument.
1844
- AutoCorrect: false
1845
-
1846
- Security/MarshalLoad:
1847
- Description: >-
1848
- Avoid using of `Marshal.load` or `Marshal.restore` due to potential
1849
- security issues. See reference for more information.
1850
- Reference: 'http://ruby-doc.org/core-2.3.3/Marshal.html#module-Marshal-label-Security+considerations'
1851
- Enabled: true
1852
-
1853
- Security/YAMLLoad:
1854
- Description: >-
1855
- Prefer usage of `YAML.safe_load` over `YAML.load` due to potential
1856
- security issues. See reference for more information.
1857
- Reference: 'https://ruby-doc.org/stdlib-2.3.3/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security'
1858
- Enabled: true
1859
-
1860
- #################### Bundler ###############################
1861
-
1862
- Bundler/DuplicatedGem:
1863
- Description: 'Checks for duplicate gem entries in Gemfile.'
1864
- Enabled: true
1865
- Include:
1866
- - '**/Gemfile'
1867
- - '**/gems.rb'
1868
-
1869
- Bundler/InsecureProtocolSource:
1870
- Description: >-
1871
- The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated
1872
- because HTTP requests are insecure. Please change your source to
1873
- 'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
1874
- Enabled: true
1875
- Include:
1876
- - '**/Gemfile'
1877
- - '**/gems.rb'
1878
-
1879
- Bundler/OrderedGems:
1880
- Description: >-
1881
- Gems within groups in the Gemfile should be alphabetically sorted.
1882
- Enabled: true
1883
- Include:
1884
- - '**/Gemfile'
1885
- - '**/gems.rb'
1886
-
1887
- Gemspec/OrderedDependencies:
1888
- Description: >-
1889
- Dependencies in the gemspec should be alphabetically sorted.
1890
- Enabled: true
1891
- Include:
1892
- - '**/*.gemspec'