rubocop 0.42.0 → 0.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +106 -20
- data/assets/output.html.erb +21 -10
- data/bin/rubocop +1 -2
- data/config/default.yml +914 -483
- data/config/disabled.yml +61 -41
- data/config/enabled.yml +1396 -878
- data/lib/rubocop/ast/builder.rb +72 -0
- data/lib/rubocop/ast/node/and_node.rb +37 -0
- data/lib/rubocop/ast/node/args_node.rb +29 -0
- data/lib/rubocop/ast/node/array_node.rb +57 -0
- data/lib/rubocop/ast/node/block_node.rb +116 -0
- data/lib/rubocop/ast/node/case_node.rb +64 -0
- data/lib/rubocop/ast/node/def_node.rb +71 -0
- data/lib/rubocop/ast/node/ensure_node.rb +25 -0
- data/lib/rubocop/ast/node/for_node.rb +61 -0
- data/lib/rubocop/ast/node/hash_node.rb +109 -0
- data/lib/rubocop/ast/node/if_node.rb +146 -0
- data/lib/rubocop/ast/node/keyword_splat_node.rb +45 -0
- data/lib/rubocop/ast/node/mixin/basic_literal_node.rb +16 -0
- data/lib/rubocop/ast/node/mixin/binary_operator_node.rb +23 -0
- data/lib/rubocop/ast/node/mixin/collection_node.rb +15 -0
- data/lib/rubocop/ast/node/mixin/conditional_node.rb +45 -0
- data/lib/rubocop/ast/node/mixin/hash_element_node.rb +125 -0
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +174 -0
- data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +89 -0
- data/lib/rubocop/ast/node/mixin/modifier_node.rb +17 -0
- data/lib/rubocop/ast/node/mixin/parameterized_node.rb +61 -0
- data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +35 -0
- data/lib/rubocop/ast/node/or_node.rb +37 -0
- data/lib/rubocop/ast/node/pair_node.rb +64 -0
- data/lib/rubocop/ast/node/regexp_node.rb +35 -0
- data/lib/rubocop/ast/node/resbody_node.rb +25 -0
- data/lib/rubocop/ast/node/send_node.rb +45 -0
- data/lib/rubocop/ast/node/str_node.rb +14 -0
- data/lib/rubocop/ast/node/super_node.rb +21 -0
- data/lib/rubocop/ast/node/symbol_node.rb +20 -0
- data/lib/rubocop/ast/node/until_node.rb +43 -0
- data/lib/rubocop/ast/node/when_node.rb +61 -0
- data/lib/rubocop/ast/node/while_node.rb +43 -0
- data/lib/rubocop/ast/node/yield_node.rb +21 -0
- data/lib/rubocop/ast/node.rb +634 -0
- data/lib/rubocop/ast/sexp.rb +16 -0
- data/lib/rubocop/{ast_node → ast}/traversal.rb +23 -24
- data/lib/rubocop/cached_data.rb +11 -31
- data/lib/rubocop/cli.rb +116 -33
- data/lib/rubocop/comment_config.rb +4 -10
- data/lib/rubocop/config.rb +355 -102
- data/lib/rubocop/config_loader.rb +93 -78
- data/lib/rubocop/config_loader_resolver.rb +106 -7
- data/lib/rubocop/config_store.rb +4 -1
- data/lib/rubocop/cop/autocorrect_logic.rb +1 -2
- data/lib/rubocop/cop/badge.rb +73 -0
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +71 -0
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +67 -0
- data/lib/rubocop/cop/bundler/ordered_gems.rb +71 -0
- data/lib/rubocop/cop/commissioner.rb +27 -10
- data/lib/rubocop/cop/cop.rb +62 -107
- data/lib/rubocop/cop/corrector.rb +0 -1
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +121 -0
- data/lib/rubocop/cop/correctors/condition_corrector.rb +28 -0
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +26 -0
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +62 -0
- data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +44 -0
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +31 -0
- data/lib/rubocop/cop/correctors/punctuation_corrector.rb +29 -0
- data/lib/rubocop/cop/correctors/space_corrector.rb +34 -0
- data/lib/rubocop/cop/correctors/string_literal_corrector.rb +25 -0
- data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +31 -0
- data/lib/rubocop/cop/force.rb +0 -1
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +102 -0
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +106 -0
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +87 -0
- data/lib/rubocop/cop/generator/require_file_injector.rb +78 -0
- data/lib/rubocop/cop/generator.rb +191 -0
- data/lib/rubocop/cop/ignored_node.rb +0 -1
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +46 -0
- data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +44 -0
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +54 -0
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +59 -0
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +71 -0
- data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +52 -0
- data/lib/rubocop/cop/internal_affairs.rb +8 -0
- data/lib/rubocop/cop/{style → layout}/access_modifier_indentation.rb +39 -10
- data/lib/rubocop/cop/layout/align_array.rb +39 -0
- data/lib/rubocop/cop/layout/align_hash.rb +235 -0
- data/lib/rubocop/cop/{style → layout}/align_parameters.rb +38 -19
- data/lib/rubocop/cop/{style → layout}/block_end_newline.rb +26 -8
- data/lib/rubocop/cop/layout/case_indentation.rb +160 -0
- data/lib/rubocop/cop/layout/class_structure.rb +306 -0
- data/lib/rubocop/cop/{style → layout}/closing_parenthesis_indentation.rb +18 -13
- data/lib/rubocop/cop/{style → layout}/comment_indentation.rb +48 -6
- data/lib/rubocop/cop/{style → layout}/dot_position.rb +34 -21
- data/lib/rubocop/cop/{style → layout}/else_alignment.rb +55 -37
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +63 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +147 -0
- data/lib/rubocop/cop/{style → layout}/empty_lines.rb +17 -4
- data/lib/rubocop/cop/{style → layout}/empty_lines_around_access_modifier.rb +40 -24
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +87 -0
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +46 -0
- data/lib/rubocop/cop/{style → layout}/empty_lines_around_block_body.rb +9 -12
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +68 -0
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +135 -0
- data/lib/rubocop/cop/{style → layout}/empty_lines_around_method_body.rb +10 -7
- data/lib/rubocop/cop/{style → layout}/empty_lines_around_module_body.rb +27 -9
- data/lib/rubocop/cop/layout/end_of_line.rb +52 -0
- data/lib/rubocop/cop/{style → layout}/extra_spacing.rb +63 -53
- data/lib/rubocop/cop/{style → layout}/first_array_element_line_break.rb +5 -2
- data/lib/rubocop/cop/{style → layout}/first_hash_element_line_break.rb +5 -2
- data/lib/rubocop/cop/{style → layout}/first_method_argument_line_break.rb +7 -4
- data/lib/rubocop/cop/{style → layout}/first_method_parameter_line_break.rb +8 -5
- data/lib/rubocop/cop/{style → layout}/first_parameter_indentation.rb +32 -26
- data/lib/rubocop/cop/{style → layout}/indent_array.rb +75 -25
- data/lib/rubocop/cop/{style → layout}/indent_assignment.rb +9 -6
- data/lib/rubocop/cop/{style → layout}/indent_hash.rb +80 -31
- data/lib/rubocop/cop/layout/indent_heredoc.rb +208 -0
- data/lib/rubocop/cop/{style → layout}/indentation_consistency.rb +7 -5
- data/lib/rubocop/cop/{style → layout}/indentation_width.rb +151 -117
- data/lib/rubocop/cop/layout/initial_indentation.rb +45 -0
- data/lib/rubocop/cop/layout/leading_comment_space.rb +58 -0
- data/lib/rubocop/cop/{style → layout}/multiline_array_brace_layout.rb +52 -16
- data/lib/rubocop/cop/{style → layout}/multiline_assignment_layout.rb +18 -21
- data/lib/rubocop/cop/{style → layout}/multiline_block_layout.rb +37 -43
- data/lib/rubocop/cop/{style → layout}/multiline_hash_brace_layout.rb +55 -15
- data/lib/rubocop/cop/{style → layout}/multiline_method_call_brace_layout.rb +15 -4
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +221 -0
- data/lib/rubocop/cop/{style → layout}/multiline_method_definition_brace_layout.rb +12 -5
- data/lib/rubocop/cop/{style → layout}/multiline_operation_indentation.rb +23 -13
- data/lib/rubocop/cop/{style → layout}/rescue_ensure_alignment.rb +24 -13
- data/lib/rubocop/cop/{style → layout}/space_after_colon.rb +17 -13
- data/lib/rubocop/cop/layout/space_after_comma.rb +35 -0
- data/lib/rubocop/cop/{style → layout}/space_after_method_name.rb +11 -11
- data/lib/rubocop/cop/layout/space_after_not.rb +38 -0
- data/lib/rubocop/cop/{style → layout}/space_after_semicolon.rb +14 -4
- data/lib/rubocop/cop/{style → layout}/space_around_block_parameters.rb +52 -28
- data/lib/rubocop/cop/{style → layout}/space_around_equals_in_parameter_default.rb +29 -21
- data/lib/rubocop/cop/{style → layout}/space_around_keyword.rb +33 -29
- data/lib/rubocop/cop/layout/space_around_operators.rb +159 -0
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +107 -0
- data/lib/rubocop/cop/layout/space_before_comma.rb +31 -0
- data/lib/rubocop/cop/{style → layout}/space_before_comment.rb +11 -7
- data/lib/rubocop/cop/{style → layout}/space_before_first_arg.rb +23 -20
- data/lib/rubocop/cop/layout/space_before_semicolon.rb +27 -0
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +85 -0
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +236 -0
- data/lib/rubocop/cop/{style → layout}/space_inside_array_percent_literal.rb +8 -8
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +228 -0
- data/lib/rubocop/cop/{style → layout}/space_inside_hash_literal_braces.rb +91 -51
- data/lib/rubocop/cop/layout/space_inside_parens.rb +53 -0
- data/lib/rubocop/cop/{style → layout}/space_inside_percent_literal_delimiters.rb +14 -13
- data/lib/rubocop/cop/{style → layout}/space_inside_range_literal.rb +16 -17
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +90 -0
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +80 -0
- data/lib/rubocop/cop/{style → layout}/tab.rb +8 -6
- data/lib/rubocop/cop/{style → layout}/trailing_blank_lines.rb +14 -15
- data/lib/rubocop/cop/{style → layout}/trailing_whitespace.rb +3 -4
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +59 -0
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +13 -9
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +7 -1
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +55 -25
- data/lib/rubocop/cop/lint/block_alignment.rb +75 -34
- data/lib/rubocop/cop/lint/boolean_symbol.rb +38 -0
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +17 -15
- data/lib/rubocop/cop/lint/condition_position.rb +16 -15
- data/lib/rubocop/cop/lint/debugger.rb +57 -23
- data/lib/rubocop/cop/lint/def_end_alignment.rb +28 -14
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +19 -10
- data/lib/rubocop/cop/lint/duplicate_case_condition.rb +53 -0
- data/lib/rubocop/cop/lint/duplicate_methods.rb +108 -14
- data/lib/rubocop/cop/lint/duplicated_key.rb +16 -9
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +15 -6
- data/lib/rubocop/cop/lint/else_layout.rb +27 -31
- data/lib/rubocop/cop/lint/empty_ensure.rb +44 -3
- data/lib/rubocop/cop/lint/empty_expression.rb +42 -0
- data/lib/rubocop/cop/lint/empty_interpolation.rb +16 -3
- data/lib/rubocop/cop/lint/empty_when.rb +38 -0
- data/lib/rubocop/cop/lint/end_alignment.rb +57 -39
- data/lib/rubocop/cop/lint/end_in_method.rb +24 -2
- data/lib/rubocop/cop/lint/ensure_return.rb +23 -3
- data/lib/rubocop/cop/lint/float_out_of_range.rb +10 -6
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +67 -46
- data/lib/rubocop/cop/lint/handle_exceptions.rb +41 -4
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +9 -5
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +42 -29
- data/lib/rubocop/cop/lint/inherit_exception.rb +34 -23
- data/lib/rubocop/cop/lint/interpolation_check.rb +37 -0
- data/lib/rubocop/cop/lint/{literal_in_condition.rb → literal_as_condition.rb} +51 -40
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +13 -8
- data/lib/rubocop/cop/lint/loop.rb +37 -2
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +81 -0
- data/lib/rubocop/cop/lint/multiple_compare.rb +48 -0
- data/lib/rubocop/cop/lint/nested_method_definition.rb +54 -12
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +58 -0
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +7 -3
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +32 -23
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +22 -14
- data/lib/rubocop/cop/lint/percent_string_array.rb +42 -27
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +28 -19
- data/lib/rubocop/cop/lint/rand_one.rb +17 -8
- data/lib/rubocop/cop/lint/redundant_with_index.rb +80 -0
- data/lib/rubocop/cop/lint/redundant_with_object.rb +81 -0
- data/lib/rubocop/cop/lint/regexp_as_condition.rb +29 -0
- data/lib/rubocop/cop/lint/require_parentheses.rb +24 -30
- data/lib/rubocop/cop/lint/rescue_exception.rb +21 -2
- data/lib/rubocop/cop/lint/rescue_type.rb +90 -0
- data/lib/rubocop/cop/lint/return_in_void_context.rb +74 -0
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +70 -0
- data/lib/rubocop/cop/lint/script_permission.rb +49 -0
- data/lib/rubocop/cop/lint/shadowed_argument.rb +146 -0
- data/lib/rubocop/cop/lint/shadowed_exception.rb +78 -57
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +25 -2
- data/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +18 -12
- data/lib/rubocop/cop/lint/syntax.rb +23 -21
- data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +26 -4
- data/lib/rubocop/cop/lint/unified_integer.rb +43 -0
- data/lib/rubocop/cop/lint/unneeded_disable.rb +117 -56
- data/lib/rubocop/cop/lint/unneeded_require_statement.rb +51 -0
- data/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +167 -0
- data/lib/rubocop/cop/lint/unreachable_code.rb +72 -8
- data/lib/rubocop/cop/lint/unused_block_argument.rb +87 -27
- data/lib/rubocop/cop/lint/unused_method_argument.rb +18 -2
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +75 -0
- data/lib/rubocop/cop/lint/uri_regexp.rb +73 -0
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +40 -18
- data/lib/rubocop/cop/lint/useless_assignment.rb +45 -14
- data/lib/rubocop/cop/lint/useless_comparison.rb +8 -10
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +16 -2
- data/lib/rubocop/cop/lint/useless_setter_call.rb +57 -43
- data/lib/rubocop/cop/lint/void.rb +83 -23
- data/lib/rubocop/cop/message_annotator.rb +118 -0
- data/lib/rubocop/cop/metrics/abc_size.rb +3 -4
- data/lib/rubocop/cop/metrics/block_length.rb +32 -0
- data/lib/rubocop/cop/metrics/block_nesting.rb +21 -10
- data/lib/rubocop/cop/metrics/class_length.rb +3 -2
- data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +4 -4
- data/lib/rubocop/cop/metrics/line_length.rb +67 -14
- data/lib/rubocop/cop/metrics/method_length.rb +10 -10
- data/lib/rubocop/cop/metrics/module_length.rb +3 -2
- data/lib/rubocop/cop/metrics/parameter_lists.rb +15 -6
- data/lib/rubocop/cop/metrics/perceived_complexity.rb +5 -6
- data/lib/rubocop/cop/mixin/alignment.rb +70 -0
- data/lib/rubocop/cop/mixin/annotation_comment.rb +0 -1
- data/lib/rubocop/cop/mixin/array_hash_indentation.rb +26 -22
- data/lib/rubocop/cop/mixin/array_min_size.rb +59 -0
- data/lib/rubocop/cop/mixin/array_syntax.rb +4 -12
- data/lib/rubocop/cop/mixin/check_assignment.rb +6 -7
- data/lib/rubocop/cop/mixin/classish_length.rb +0 -1
- data/lib/rubocop/cop/mixin/code_length.rb +4 -3
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +21 -16
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +48 -0
- data/lib/rubocop/cop/mixin/configurable_max.rb +5 -4
- data/lib/rubocop/cop/mixin/configurable_naming.rb +5 -35
- data/lib/rubocop/cop/mixin/configurable_numbering.rb +17 -0
- data/lib/rubocop/cop/mixin/def_node.rb +29 -0
- data/lib/rubocop/cop/mixin/documentation_comment.rb +46 -0
- data/lib/rubocop/cop/mixin/duplication.rb +46 -0
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +119 -27
- data/lib/rubocop/cop/mixin/empty_parameter.rb +23 -0
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +11 -27
- data/lib/rubocop/cop/mixin/enforce_superclass.rb +30 -0
- data/lib/rubocop/cop/mixin/first_element_line_break.rb +15 -11
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +15 -13
- data/lib/rubocop/cop/mixin/hash_alignment.rb +116 -0
- data/lib/rubocop/cop/mixin/heredoc.rb +28 -0
- data/lib/rubocop/cop/mixin/ignored_pattern.rb +29 -0
- data/lib/rubocop/cop/mixin/integer_node.rb +2 -1
- data/lib/rubocop/cop/mixin/match_range.rb +4 -6
- data/lib/rubocop/cop/mixin/method_complexity.rb +33 -8
- data/lib/rubocop/cop/mixin/method_preference.rb +2 -1
- data/lib/rubocop/cop/mixin/min_body_length.rb +2 -1
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +100 -66
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +49 -51
- data/lib/rubocop/cop/mixin/negative_conditional.rb +18 -13
- data/lib/rubocop/cop/mixin/on_normal_if_unless.rb +1 -25
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +48 -0
- data/lib/rubocop/cop/mixin/parentheses.rb +2 -8
- data/lib/rubocop/cop/mixin/parser_diagnostic.rb +4 -2
- data/lib/rubocop/cop/mixin/percent_array.rb +52 -0
- data/lib/rubocop/cop/mixin/percent_literal.rb +69 -6
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +16 -5
- data/lib/rubocop/cop/mixin/rescue_node.rb +23 -0
- data/lib/rubocop/cop/mixin/safe_assignment.rb +3 -1
- data/lib/rubocop/cop/mixin/safe_mode.rb +22 -0
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +8 -10
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +10 -14
- data/lib/rubocop/cop/mixin/statement_modifier.rb +29 -32
- data/lib/rubocop/cop/mixin/string_help.rb +3 -2
- data/lib/rubocop/cop/mixin/string_literals_help.rb +3 -15
- data/lib/rubocop/cop/mixin/surrounding_space.rb +78 -9
- data/lib/rubocop/cop/mixin/target_rails_version.rb +16 -0
- data/lib/rubocop/cop/mixin/target_ruby_version.rb +16 -0
- data/lib/rubocop/cop/mixin/too_many_lines.rb +39 -0
- data/lib/rubocop/cop/mixin/trailing_comma.rb +37 -38
- data/lib/rubocop/cop/mixin/unused_argument.rb +6 -16
- data/lib/rubocop/cop/naming/accessor_method_name.rb +55 -0
- data/lib/rubocop/cop/{style → naming}/ascii_identifiers.rb +36 -5
- data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +42 -0
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +33 -0
- data/lib/rubocop/cop/naming/constant_name.rb +58 -0
- data/lib/rubocop/cop/{style → naming}/file_name.rb +72 -29
- data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +62 -0
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +59 -0
- data/lib/rubocop/cop/naming/method_name.rb +40 -0
- data/lib/rubocop/cop/naming/predicate_name.rb +101 -0
- data/lib/rubocop/cop/naming/variable_name.rb +50 -0
- data/lib/rubocop/cop/naming/variable_number.rb +61 -0
- data/lib/rubocop/cop/offense.rb +9 -5
- data/lib/rubocop/cop/performance/caller.rb +69 -0
- data/lib/rubocop/cop/performance/case_when_splat.rb +65 -89
- data/lib/rubocop/cop/performance/casecmp.rb +37 -25
- data/lib/rubocop/cop/performance/compare_with_block.rb +117 -0
- data/lib/rubocop/cop/performance/count.rb +33 -43
- data/lib/rubocop/cop/performance/detect.rb +30 -31
- data/lib/rubocop/cop/performance/double_start_end_with.rb +55 -26
- data/lib/rubocop/cop/performance/end_with.rb +9 -9
- data/lib/rubocop/cop/performance/fixed_size.rb +21 -17
- data/lib/rubocop/cop/performance/flat_map.rb +30 -33
- data/lib/rubocop/cop/performance/hash_each_methods.rb +129 -0
- data/lib/rubocop/cop/performance/lstrip_rstrip.rb +14 -14
- data/lib/rubocop/cop/performance/range_include.rb +5 -4
- data/lib/rubocop/cop/performance/redundant_block_call.rb +28 -29
- data/lib/rubocop/cop/performance/redundant_match.rb +19 -15
- data/lib/rubocop/cop/performance/redundant_merge.rb +100 -52
- data/lib/rubocop/cop/performance/redundant_sort_by.rb +17 -14
- data/lib/rubocop/cop/performance/regexp_match.rb +224 -0
- data/lib/rubocop/cop/performance/reverse_each.rb +3 -6
- data/lib/rubocop/cop/performance/sample.rb +84 -83
- data/lib/rubocop/cop/performance/size.rb +22 -15
- data/lib/rubocop/cop/performance/start_with.rb +9 -9
- data/lib/rubocop/cop/performance/string_replacement.rb +35 -70
- data/lib/rubocop/cop/performance/times_map.rb +33 -24
- data/lib/rubocop/cop/performance/unfreeze_string.rb +50 -0
- data/lib/rubocop/cop/performance/uri_default_parser.rb +47 -0
- data/lib/rubocop/cop/rails/action_filter.rb +67 -47
- data/lib/rubocop/cop/rails/active_support_aliases.rb +68 -0
- data/lib/rubocop/cop/rails/application_job.rb +40 -0
- data/lib/rubocop/cop/rails/application_record.rb +40 -0
- data/lib/rubocop/cop/rails/blank.rb +142 -0
- data/lib/rubocop/cop/rails/create_table_with_timestamps.rb +82 -0
- data/lib/rubocop/cop/rails/date.rb +47 -42
- data/lib/rubocop/cop/rails/delegate.rb +55 -33
- data/lib/rubocop/cop/rails/delegate_allow_blank.rb +51 -0
- data/lib/rubocop/cop/rails/dynamic_find_by.rb +82 -0
- data/lib/rubocop/cop/rails/enum_uniqueness.rb +45 -0
- data/lib/rubocop/cop/rails/environment_comparison.rb +66 -0
- data/lib/rubocop/cop/rails/exit.rb +17 -11
- data/lib/rubocop/cop/rails/file_path.rb +72 -0
- data/lib/rubocop/cop/rails/find_by.rb +14 -20
- data/lib/rubocop/cop/rails/find_each.rb +8 -21
- data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +9 -2
- data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +84 -0
- data/lib/rubocop/cop/rails/http_positional_arguments.rb +102 -0
- data/lib/rubocop/cop/rails/inverse_of.rb +218 -0
- data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +112 -0
- data/lib/rubocop/cop/rails/not_null_column.rb +67 -0
- data/lib/rubocop/cop/rails/output.rb +15 -13
- data/lib/rubocop/cop/rails/output_safety.rb +65 -17
- data/lib/rubocop/cop/rails/pluralization_grammar.rb +30 -29
- data/lib/rubocop/cop/rails/presence.rb +118 -0
- data/lib/rubocop/cop/rails/present.rb +143 -0
- data/lib/rubocop/cop/rails/read_write_attribute.rb +20 -26
- data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +133 -0
- data/lib/rubocop/cop/rails/relative_date_constant.rb +88 -0
- data/lib/rubocop/cop/rails/request_referer.rb +28 -13
- data/lib/rubocop/cop/rails/reversible_migration.rb +281 -0
- data/lib/rubocop/cop/rails/safe_navigation.rb +90 -0
- data/lib/rubocop/cop/rails/save_bang.rb +104 -19
- data/lib/rubocop/cop/rails/scope_args.rb +5 -10
- data/lib/rubocop/cop/rails/skips_model_validations.rb +70 -0
- data/lib/rubocop/cop/rails/time_zone.rb +34 -21
- data/lib/rubocop/cop/rails/uniq_before_pluck.rb +17 -14
- data/lib/rubocop/cop/rails/unknown_env.rb +63 -0
- data/lib/rubocop/cop/rails/validation.rb +16 -20
- data/lib/rubocop/cop/registry.rb +172 -0
- data/lib/rubocop/cop/security/eval.rb +30 -0
- data/lib/rubocop/cop/security/json_load.rb +46 -0
- data/lib/rubocop/cop/security/marshal_load.rb +39 -0
- data/lib/rubocop/cop/security/yaml_load.rb +37 -0
- data/lib/rubocop/cop/severity.rb +1 -2
- data/lib/rubocop/cop/style/alias.rb +54 -33
- data/lib/rubocop/cop/style/and_or.rb +77 -63
- data/lib/rubocop/cop/style/array_join.rb +13 -9
- data/lib/rubocop/cop/style/ascii_comments.rb +25 -7
- data/lib/rubocop/cop/style/attr.rb +24 -11
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +21 -16
- data/lib/rubocop/cop/style/bare_percent_literals.rb +31 -11
- data/lib/rubocop/cop/style/begin_block.rb +1 -2
- data/lib/rubocop/cop/style/block_comments.rb +20 -11
- data/lib/rubocop/cop/style/block_delimiters.rb +122 -51
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +142 -54
- data/lib/rubocop/cop/style/case_equality.rb +15 -4
- data/lib/rubocop/cop/style/character_literal.rb +12 -5
- data/lib/rubocop/cop/style/class_and_module_children.rb +85 -6
- data/lib/rubocop/cop/style/class_check.rb +35 -19
- data/lib/rubocop/cop/style/class_methods.rb +13 -14
- data/lib/rubocop/cop/style/class_vars.rb +5 -5
- data/lib/rubocop/cop/style/collection_methods.rb +12 -13
- data/lib/rubocop/cop/style/colon_method_call.rb +24 -16
- data/lib/rubocop/cop/style/colon_method_definition.rb +36 -0
- data/lib/rubocop/cop/style/command_literal.rb +98 -32
- data/lib/rubocop/cop/style/comment_annotation.rb +41 -15
- data/lib/rubocop/cop/style/commented_keyword.rb +84 -0
- data/lib/rubocop/cop/style/conditional_assignment.rb +161 -112
- data/lib/rubocop/cop/style/copyright.rb +32 -34
- data/lib/rubocop/cop/style/date_time.rb +44 -0
- data/lib/rubocop/cop/style/def_with_parentheses.rb +32 -9
- data/lib/rubocop/cop/style/dir.rb +48 -0
- data/lib/rubocop/cop/style/documentation.rb +44 -58
- data/lib/rubocop/cop/style/documentation_method.rb +76 -0
- data/lib/rubocop/cop/style/double_negation.rb +3 -3
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +14 -13
- data/lib/rubocop/cop/style/each_with_object.rb +28 -25
- data/lib/rubocop/cop/style/empty_block_parameter.rb +47 -0
- data/lib/rubocop/cop/style/empty_case_condition.rb +18 -30
- data/lib/rubocop/cop/style/empty_else.rb +82 -51
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +43 -0
- data/lib/rubocop/cop/style/empty_literal.rb +76 -48
- data/lib/rubocop/cop/style/empty_method.rb +112 -0
- data/lib/rubocop/cop/style/encoding.rb +10 -40
- data/lib/rubocop/cop/style/end_block.rb +1 -2
- data/lib/rubocop/cop/style/eval_with_location.rb +146 -0
- data/lib/rubocop/cop/style/even_odd.rb +25 -44
- data/lib/rubocop/cop/style/flip_flop.rb +13 -3
- data/lib/rubocop/cop/style/for.rb +19 -15
- data/lib/rubocop/cop/style/format_string.rb +88 -42
- data/lib/rubocop/cop/style/format_string_token.rb +163 -0
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +90 -15
- data/lib/rubocop/cop/style/global_vars.rb +14 -5
- data/lib/rubocop/cop/style/guard_clause.rb +22 -62
- data/lib/rubocop/cop/style/hash_syntax.rb +109 -59
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +73 -32
- data/lib/rubocop/cop/style/if_inside_else.rb +16 -20
- data/lib/rubocop/cop/style/if_unless_modifier.rb +48 -39
- data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +6 -12
- data/lib/rubocop/cop/style/if_with_semicolon.rb +10 -2
- data/lib/rubocop/cop/style/implicit_runtime_error.rb +7 -7
- data/lib/rubocop/cop/style/infinite_loop.rb +33 -32
- data/lib/rubocop/cop/style/inline_comment.rb +17 -5
- data/lib/rubocop/cop/style/inverse_methods.rb +149 -0
- data/lib/rubocop/cop/style/lambda.rb +66 -63
- data/lib/rubocop/cop/style/lambda_call.rb +50 -20
- data/lib/rubocop/cop/style/line_end_concatenation.rb +38 -17
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +90 -0
- data/lib/rubocop/cop/style/{method_call_parentheses.rb → method_call_without_args_parentheses.rb} +32 -25
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +9 -9
- data/lib/rubocop/cop/style/method_def_parentheses.rb +101 -29
- data/lib/rubocop/cop/style/method_missing.rb +14 -20
- data/lib/rubocop/cop/style/min_max.rb +68 -0
- data/lib/rubocop/cop/style/missing_else.rb +61 -21
- data/lib/rubocop/cop/style/mixin_grouping.rb +145 -0
- data/lib/rubocop/cop/style/mixin_usage.rb +82 -0
- data/lib/rubocop/cop/style/module_function.rb +44 -18
- data/lib/rubocop/cop/style/multiline_block_chain.rb +8 -15
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +67 -0
- data/lib/rubocop/cop/style/multiline_if_then.rb +21 -14
- data/lib/rubocop/cop/style/multiline_memoization.rb +93 -0
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +21 -9
- data/lib/rubocop/cop/style/multiple_comparison.rb +77 -0
- data/lib/rubocop/cop/style/mutable_constant.rb +17 -9
- data/lib/rubocop/cop/style/negated_if.rb +76 -25
- data/lib/rubocop/cop/style/negated_while.rb +4 -22
- data/lib/rubocop/cop/style/nested_modifier.rb +17 -47
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +32 -28
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +3 -6
- data/lib/rubocop/cop/style/next.rb +72 -53
- data/lib/rubocop/cop/style/nil_comparison.rb +10 -14
- data/lib/rubocop/cop/style/non_nil_check.rb +69 -62
- data/lib/rubocop/cop/style/not.rb +19 -13
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +16 -7
- data/lib/rubocop/cop/style/numeric_literals.rb +33 -12
- data/lib/rubocop/cop/style/numeric_predicate.rb +30 -32
- data/lib/rubocop/cop/style/one_line_conditional.rb +21 -17
- data/lib/rubocop/cop/style/option_hash.rb +11 -37
- data/lib/rubocop/cop/style/optional_arguments.rb +20 -9
- data/lib/rubocop/cop/style/or_assignment.rb +88 -0
- data/lib/rubocop/cop/style/parallel_assignment.rb +83 -64
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +37 -19
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +50 -15
- data/lib/rubocop/cop/style/percent_q_literals.rb +40 -17
- data/lib/rubocop/cop/style/perl_backrefs.rb +9 -3
- data/lib/rubocop/cop/style/preferred_hash_methods.rb +48 -14
- data/lib/rubocop/cop/style/proc.rb +13 -10
- data/lib/rubocop/cop/style/raise_args.rb +46 -50
- data/lib/rubocop/cop/style/random_with_offset.rb +160 -0
- data/lib/rubocop/cop/style/redundant_begin.rb +16 -6
- data/lib/rubocop/cop/style/redundant_conditional.rb +96 -0
- data/lib/rubocop/cop/style/redundant_exception.rb +4 -5
- data/lib/rubocop/cop/style/redundant_freeze.rb +7 -10
- data/lib/rubocop/cop/style/redundant_parentheses.rb +70 -31
- data/lib/rubocop/cop/style/redundant_return.rb +61 -23
- data/lib/rubocop/cop/style/redundant_self.rb +62 -60
- data/lib/rubocop/cop/style/regexp_literal.rb +100 -34
- data/lib/rubocop/cop/style/rescue_modifier.rb +15 -17
- data/lib/rubocop/cop/style/rescue_standard_error.rb +122 -0
- data/lib/rubocop/cop/style/return_nil.rb +89 -0
- data/lib/rubocop/cop/style/safe_navigation.rb +197 -0
- data/lib/rubocop/cop/style/self_assignment.rb +20 -17
- data/lib/rubocop/cop/style/semicolon.rb +25 -17
- data/lib/rubocop/cop/style/send.rb +14 -4
- data/lib/rubocop/cop/style/signal_exception.rb +105 -7
- data/lib/rubocop/cop/style/single_line_block_params.rb +27 -21
- data/lib/rubocop/cop/style/single_line_methods.rb +45 -31
- data/lib/rubocop/cop/style/special_global_vars.rb +32 -28
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +24 -53
- data/lib/rubocop/cop/style/stderr_puts.rb +54 -0
- data/lib/rubocop/cop/style/string_hash_keys.rb +36 -0
- data/lib/rubocop/cop/style/string_literals.rb +31 -5
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +20 -2
- data/lib/rubocop/cop/style/string_methods.rb +22 -9
- data/lib/rubocop/cop/style/struct_inheritance.rb +5 -17
- data/lib/rubocop/cop/style/symbol_array.rb +39 -65
- data/lib/rubocop/cop/style/symbol_literal.rb +1 -2
- data/lib/rubocop/cop/style/symbol_proc.rb +35 -52
- data/lib/rubocop/cop/style/ternary_parentheses.rb +143 -42
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +101 -0
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +31 -20
- data/lib/rubocop/cop/style/trailing_comma_in_literal.rb +26 -8
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +95 -0
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +97 -37
- data/lib/rubocop/cop/style/trivial_accessors.rb +72 -66
- data/lib/rubocop/cop/style/unless_else.rb +19 -13
- data/lib/rubocop/cop/style/unneeded_capital_w.rb +24 -10
- data/lib/rubocop/cop/style/unneeded_interpolation.rb +22 -24
- data/lib/rubocop/cop/style/unneeded_percent_q.rb +28 -22
- data/lib/rubocop/cop/style/variable_interpolation.rb +23 -10
- data/lib/rubocop/cop/style/when_then.rb +18 -4
- data/lib/rubocop/cop/style/while_until_do.rb +34 -16
- data/lib/rubocop/cop/style/while_until_modifier.rb +32 -12
- data/lib/rubocop/cop/style/word_array.rb +45 -102
- data/lib/rubocop/cop/style/yoda_condition.rb +107 -0
- data/lib/rubocop/cop/style/zero_length_predicate.rb +55 -32
- data/lib/rubocop/cop/team.rb +33 -35
- data/lib/rubocop/cop/util.rb +120 -54
- data/lib/rubocop/cop/variable_force/assignment.rb +5 -9
- data/lib/rubocop/cop/variable_force/branch.rb +318 -0
- data/lib/rubocop/cop/variable_force/branchable.rb +21 -0
- data/lib/rubocop/cop/variable_force/reference.rb +1 -2
- data/lib/rubocop/cop/variable_force/scope.rb +37 -26
- data/lib/rubocop/cop/variable_force/variable.rb +12 -12
- data/lib/rubocop/cop/variable_force/variable_table.rb +3 -4
- data/lib/rubocop/cop/variable_force.rb +72 -39
- data/lib/rubocop/error.rb +0 -1
- data/lib/rubocop/formatter/base_formatter.rb +4 -9
- data/lib/rubocop/formatter/clang_style_formatter.rb +2 -3
- data/lib/rubocop/formatter/colorizable.rb +9 -10
- data/lib/rubocop/formatter/disabled_config_formatter.rb +48 -35
- data/lib/rubocop/formatter/disabled_lines_formatter.rb +0 -1
- data/lib/rubocop/formatter/emacs_style_formatter.rb +0 -1
- data/lib/rubocop/formatter/file_list_formatter.rb +0 -1
- data/lib/rubocop/formatter/formatter_set.rb +16 -13
- data/lib/rubocop/formatter/fuubar_style_formatter.rb +6 -1
- data/lib/rubocop/formatter/html_formatter.rb +5 -5
- data/lib/rubocop/formatter/json_formatter.rb +9 -4
- data/lib/rubocop/formatter/offense_count_formatter.rb +2 -1
- data/lib/rubocop/formatter/progress_formatter.rb +0 -1
- data/lib/rubocop/formatter/quiet_formatter.rb +13 -0
- data/lib/rubocop/formatter/simple_text_formatter.rb +7 -17
- data/lib/rubocop/formatter/tap_formatter.rb +71 -0
- data/lib/rubocop/formatter/text_util.rb +0 -1
- data/lib/rubocop/formatter/worst_offenders_formatter.rb +6 -5
- data/lib/rubocop/magic_comment.rb +210 -0
- data/lib/rubocop/name_similarity.rb +0 -1
- data/lib/rubocop/node_pattern.rb +181 -118
- data/lib/rubocop/options.rb +154 -88
- data/lib/rubocop/path_util.rb +38 -4
- data/lib/rubocop/platform.rb +11 -0
- data/lib/rubocop/processed_source.rb +23 -20
- data/lib/rubocop/rake_task.rb +16 -24
- data/lib/rubocop/remote_config.rb +40 -13
- data/lib/rubocop/result_cache.rb +33 -24
- data/lib/rubocop/rspec/cop_helper.rb +21 -7
- data/lib/rubocop/rspec/expect_offense.rb +165 -0
- data/lib/rubocop/rspec/host_environment_simulation_helper.rb +1 -2
- data/lib/rubocop/rspec/shared_contexts.rb +24 -9
- data/lib/rubocop/rspec/shared_examples.rb +10 -19
- data/lib/rubocop/rspec/support.rb +5 -5
- data/lib/rubocop/runner.rb +74 -39
- data/lib/rubocop/string_interpreter.rb +0 -1
- data/lib/rubocop/string_util.rb +11 -6
- data/lib/rubocop/target_finder.rb +70 -8
- data/lib/rubocop/token.rb +79 -2
- data/lib/rubocop/version.rb +2 -5
- data/lib/rubocop/warning.rb +0 -1
- data/lib/rubocop.rb +569 -398
- metadata +301 -112
- data/lib/rubocop/ast_node/builder.rb +0 -31
- data/lib/rubocop/ast_node/sexp.rb +0 -14
- data/lib/rubocop/ast_node.rb +0 -623
- data/lib/rubocop/cop/lint/eval.rb +0 -23
- data/lib/rubocop/cop/lint/invalid_character_literal.rb +0 -39
- data/lib/rubocop/cop/lint/useless_array_splat.rb +0 -56
- data/lib/rubocop/cop/mixin/access_modifier_node.rb +0 -42
- data/lib/rubocop/cop/mixin/autocorrect_alignment.rb +0 -152
- data/lib/rubocop/cop/mixin/hash_node.rb +0 -15
- data/lib/rubocop/cop/mixin/if_node.rb +0 -37
- data/lib/rubocop/cop/mixin/on_method_def.rb +0 -31
- data/lib/rubocop/cop/mixin/space_inside.rb +0 -79
- data/lib/rubocop/cop/performance/hash_each.rb +0 -86
- data/lib/rubocop/cop/performance/push_splat.rb +0 -47
- data/lib/rubocop/cop/style/accessor_method_name.rb +0 -46
- data/lib/rubocop/cop/style/align_array.rb +0 -21
- data/lib/rubocop/cop/style/align_hash.rb +0 -256
- data/lib/rubocop/cop/style/case_indentation.rb +0 -92
- data/lib/rubocop/cop/style/class_and_module_camel_case.rb +0 -30
- data/lib/rubocop/cop/style/constant_name.rb +0 -30
- data/lib/rubocop/cop/style/empty_line_between_defs.rb +0 -76
- data/lib/rubocop/cop/style/empty_lines_around_class_body.rb +0 -40
- data/lib/rubocop/cop/style/end_of_line.rb +0 -31
- data/lib/rubocop/cop/style/initial_indentation.rb +0 -38
- data/lib/rubocop/cop/style/leading_comment_space.rb +0 -33
- data/lib/rubocop/cop/style/method_name.rb +0 -29
- data/lib/rubocop/cop/style/multiline_method_call_indentation.rb +0 -176
- data/lib/rubocop/cop/style/op_method.rb +0 -44
- data/lib/rubocop/cop/style/predicate_name.rb +0 -68
- data/lib/rubocop/cop/style/space_after_comma.rb +0 -22
- data/lib/rubocop/cop/style/space_after_not.rb +0 -42
- data/lib/rubocop/cop/style/space_around_operators.rb +0 -132
- data/lib/rubocop/cop/style/space_before_block_braces.rb +0 -65
- data/lib/rubocop/cop/style/space_before_comma.rb +0 -17
- data/lib/rubocop/cop/style/space_before_semicolon.rb +0 -17
- data/lib/rubocop/cop/style/space_inside_block_braces.rb +0 -166
- data/lib/rubocop/cop/style/space_inside_brackets.rb +0 -21
- data/lib/rubocop/cop/style/space_inside_parens.rb +0 -17
- data/lib/rubocop/cop/style/space_inside_string_interpolation.rb +0 -52
- data/lib/rubocop/cop/style/variable_name.rb +0 -40
- data/lib/rubocop/cop/variable_force/locatable.rb +0 -197
data/config/default.yml
CHANGED
@@ -9,95 +9,128 @@ inherit_from:
|
|
9
9
|
AllCops:
|
10
10
|
# Include common Ruby source files.
|
11
11
|
Include:
|
12
|
+
- '**/*.builder'
|
13
|
+
- '**/*.fcgi'
|
12
14
|
- '**/*.gemspec'
|
13
|
-
- '**/*.
|
15
|
+
- '**/*.god'
|
16
|
+
- '**/*.jb'
|
14
17
|
- '**/*.jbuilder'
|
15
|
-
- '**/*.
|
18
|
+
- '**/*.mspec'
|
16
19
|
- '**/*.opal'
|
20
|
+
- '**/*.pluginspec'
|
21
|
+
- '**/*.podspec'
|
22
|
+
- '**/*.rabl'
|
23
|
+
- '**/*.rake'
|
24
|
+
- '**/*.rbuild'
|
25
|
+
- '**/*.rbw'
|
26
|
+
- '**/*.rbx'
|
27
|
+
- '**/*.ru'
|
28
|
+
- '**/*.ruby'
|
29
|
+
- '**/*.spec'
|
30
|
+
- '**/*.thor'
|
31
|
+
- '**/*.watchr'
|
32
|
+
- '**/.irbrc'
|
33
|
+
- '**/.pryrc'
|
34
|
+
- '**/buildfile'
|
17
35
|
- '**/config.ru'
|
18
|
-
- '**/
|
19
|
-
- '**/
|
36
|
+
- '**/Appraisals'
|
37
|
+
- '**/Berksfile'
|
38
|
+
- '**/Brewfile'
|
39
|
+
- '**/Buildfile'
|
20
40
|
- '**/Capfile'
|
41
|
+
- '**/Cheffile'
|
42
|
+
- '**/Dangerfile'
|
43
|
+
- '**/Deliverfile'
|
44
|
+
- '**/Fastfile'
|
45
|
+
- '**/*Fastfile'
|
46
|
+
- '**/Gemfile'
|
21
47
|
- '**/Guardfile'
|
48
|
+
- '**/Jarfile'
|
49
|
+
- '**/Mavenfile'
|
22
50
|
- '**/Podfile'
|
51
|
+
- '**/Puppetfile'
|
52
|
+
- '**/Rakefile'
|
53
|
+
- '**/Snapfile'
|
23
54
|
- '**/Thorfile'
|
24
|
-
- '**/Vagrantfile'
|
25
|
-
- '**/Berksfile'
|
26
|
-
- '**/Cheffile'
|
27
55
|
- '**/Vagabondfile'
|
28
|
-
- '**/
|
29
|
-
- '**/*Fastfile'
|
56
|
+
- '**/Vagrantfile'
|
30
57
|
Exclude:
|
58
|
+
- 'node_modules/**/*'
|
31
59
|
- 'vendor/**/*'
|
32
|
-
# Default formatter will be used if no
|
60
|
+
# Default formatter will be used if no `-f/--format` option is given.
|
33
61
|
DefaultFormatter: progress
|
34
|
-
# Cop names are
|
35
|
-
# by overriding DisplayCopNames, or by giving the -
|
62
|
+
# Cop names are displayed in offense messages by default. Change behavior
|
63
|
+
# by overriding DisplayCopNames, or by giving the `--no-display-cop-names`
|
36
64
|
# option.
|
37
|
-
DisplayCopNames:
|
65
|
+
DisplayCopNames: true
|
38
66
|
# Style guide URLs are not displayed in offense messages by default. Change
|
39
|
-
# behavior by overriding DisplayStyleGuide
|
40
|
-
#
|
67
|
+
# behavior by overriding `DisplayStyleGuide`, or by giving the
|
68
|
+
# `-S/--display-style-guide` option.
|
41
69
|
DisplayStyleGuide: false
|
70
|
+
# When specifying style guide URLs, any paths and/or fragments will be
|
71
|
+
# evaluated relative to the base URL.
|
72
|
+
StyleGuideBaseURL: https://github.com/bbatsov/ruby-style-guide
|
42
73
|
# Extra details are not displayed in offense messages by default. Change
|
43
74
|
# behavior by overriding ExtraDetails, or by giving the
|
44
|
-
#
|
75
|
+
# `-E/--extra-details` option.
|
45
76
|
ExtraDetails: false
|
46
77
|
# Additional cops that do not reference a style guide rule may be enabled by
|
47
|
-
# default. Change behavior by overriding StyleGuideCopsOnly
|
48
|
-
# the
|
78
|
+
# default. Change behavior by overriding `StyleGuideCopsOnly`, or by giving
|
79
|
+
# the `--only-guide-cops` option.
|
49
80
|
StyleGuideCopsOnly: false
|
50
81
|
# All cops except the ones in disabled.yml are enabled by default. Change
|
51
|
-
# this behavior by overriding DisabledByDefault
|
52
|
-
# true
|
53
|
-
# in user configuration are enabled. This makes
|
54
|
-
# opt-out. Note that when DisabledByDefault is true
|
55
|
-
# configuration will be enabled even if they don't set the
|
82
|
+
# this behavior by overriding either `DisabledByDefault` or `EnabledByDefault`.
|
83
|
+
# When `DisabledByDefault` is `true`, all cops in the default configuration
|
84
|
+
# are disabled, and only cops in user configuration are enabled. This makes
|
85
|
+
# cops opt-in instead of opt-out. Note that when `DisabledByDefault` is `true`,
|
86
|
+
# cops in user configuration will be enabled even if they don't set the
|
87
|
+
# Enabled parameter.
|
88
|
+
# When `EnabledByDefault` is `true`, all cops, even those in disabled.yml,
|
89
|
+
# are enabled by default. Cops can still be disabled in user configuration.
|
90
|
+
# Note that it is invalid to set both EnabledByDefault and DisabledByDefault
|
91
|
+
# to true in the same configuration.
|
92
|
+
EnabledByDefault: false
|
56
93
|
DisabledByDefault: false
|
57
|
-
# Enables the result cache if true
|
94
|
+
# Enables the result cache if `true`. Can be overridden by the `--cache` command
|
58
95
|
# line option.
|
59
96
|
UseCache: true
|
60
97
|
# Threshold for how many files can be stored in the result cache before some
|
61
98
|
# of the files are automatically removed.
|
62
99
|
MaxFilesInCache: 20000
|
63
|
-
# The cache will be stored in "rubocop_cache" under this directory.
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
CacheRootDirectory:
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
# symlinked cache location, set this value to "true".
|
100
|
+
# The cache will be stored in "rubocop_cache" under this directory. If
|
101
|
+
# CacheRootDirectory is ~ (nil), which it is by default, the root will be
|
102
|
+
# taken from the environment variable `$XDG_CACHE_HOME` if it is set, or if
|
103
|
+
# `$XDG_CACHE_HOME` is not set, it will be `$HOME/.cache/`.
|
104
|
+
CacheRootDirectory: ~
|
105
|
+
# It is possible for a malicious user to know the location of RuboCop's cache
|
106
|
+
# directory by looking at CacheRootDirectory, and create a symlink in its
|
107
|
+
# place that could cause RuboCop to overwrite unintended files, or read
|
108
|
+
# malicious input. If you are certain that your cache location is secure from
|
109
|
+
# this kind of attack, and wish to use a symlinked cache location, set this
|
110
|
+
# value to "true".
|
75
111
|
AllowSymlinksInCacheRootDirectory: false
|
76
112
|
# What MRI version of the Ruby interpreter is the inspected code intended to
|
77
113
|
# run on? (If there is more than one, set this to the lowest version.)
|
78
114
|
# If a value is specified for TargetRubyVersion then it is used.
|
79
115
|
# Else if .ruby-version exists and it contains an MRI version it is used.
|
80
|
-
# Otherwise we fallback to the oldest officially supported Ruby version (2.
|
116
|
+
# Otherwise we fallback to the oldest officially supported Ruby version (2.1).
|
81
117
|
TargetRubyVersion: ~
|
118
|
+
TargetRailsVersion: 5.0
|
119
|
+
|
120
|
+
#################### Layout ###########################
|
82
121
|
|
83
122
|
# Indent private/protected/public as deep as method definitions
|
84
|
-
|
123
|
+
Layout/AccessModifierIndentation:
|
85
124
|
EnforcedStyle: indent
|
86
125
|
SupportedStyles:
|
87
126
|
- outdent
|
88
127
|
- indent
|
89
|
-
# By default, the indentation width from
|
128
|
+
# By default, the indentation width from Layout/IndentationWidth is used
|
90
129
|
# But it can be overridden by setting this parameter
|
91
130
|
IndentationWidth: ~
|
92
131
|
|
93
|
-
Style/Alias:
|
94
|
-
EnforcedStyle: prefer_alias
|
95
|
-
SupportedStyles:
|
96
|
-
- prefer_alias
|
97
|
-
- prefer_alias_method
|
98
|
-
|
99
132
|
# Align the elements of a hash literal if they span more than one line.
|
100
|
-
|
133
|
+
Layout/AlignHash:
|
101
134
|
# Alignment of entries using hash rocket as separator. Valid values are:
|
102
135
|
#
|
103
136
|
# key - left alignment of keys
|
@@ -110,6 +143,10 @@ Style/AlignHash:
|
|
110
143
|
# 'a' => 2
|
111
144
|
# 'bb' => 3
|
112
145
|
EnforcedHashRocketStyle: key
|
146
|
+
SupportedHashRocketStyles:
|
147
|
+
- key
|
148
|
+
- separator
|
149
|
+
- table
|
113
150
|
# Alignment of entries using colon as separator. Valid values are:
|
114
151
|
#
|
115
152
|
# key - left alignment of keys
|
@@ -122,6 +159,10 @@ Style/AlignHash:
|
|
122
159
|
# a: 0
|
123
160
|
# bb: 1
|
124
161
|
EnforcedColonStyle: key
|
162
|
+
SupportedColonStyles:
|
163
|
+
- key
|
164
|
+
- separator
|
165
|
+
- table
|
125
166
|
# Select whether hashes that are the last argument in a method call should be
|
126
167
|
# inspected? Valid values are:
|
127
168
|
#
|
@@ -160,7 +201,7 @@ Style/AlignHash:
|
|
160
201
|
- ignore_implicit
|
161
202
|
- ignore_explicit
|
162
203
|
|
163
|
-
|
204
|
+
Layout/AlignParameters:
|
164
205
|
# Alignment of parameters in multi-line method calls.
|
165
206
|
#
|
166
207
|
# The `with_first_parameter` style aligns the following lines along the same
|
@@ -178,10 +219,490 @@ Style/AlignParameters:
|
|
178
219
|
SupportedStyles:
|
179
220
|
- with_first_parameter
|
180
221
|
- with_fixed_indentation
|
181
|
-
# By default, the indentation width from
|
222
|
+
# By default, the indentation width from Layout/IndentationWidth is used
|
223
|
+
# But it can be overridden by setting this parameter
|
224
|
+
IndentationWidth: ~
|
225
|
+
|
226
|
+
# Indentation of `when`.
|
227
|
+
Layout/CaseIndentation:
|
228
|
+
EnforcedStyle: case
|
229
|
+
SupportedStyles:
|
230
|
+
- case
|
231
|
+
- end
|
232
|
+
IndentOneStep: false
|
233
|
+
# By default, the indentation width from `Layout/IndentationWidth` is used.
|
234
|
+
# But it can be overridden by setting this parameter.
|
235
|
+
# This only matters if `IndentOneStep` is `true`
|
236
|
+
IndentationWidth: ~
|
237
|
+
|
238
|
+
# Multi-line method chaining should be done with leading dots.
|
239
|
+
Layout/DotPosition:
|
240
|
+
EnforcedStyle: leading
|
241
|
+
SupportedStyles:
|
242
|
+
- leading
|
243
|
+
- trailing
|
244
|
+
|
245
|
+
# Use empty lines between defs.
|
246
|
+
Layout/EmptyLineBetweenDefs:
|
247
|
+
# If `true`, this parameter means that single line method definitions don't
|
248
|
+
# need an empty line between them.
|
249
|
+
AllowAdjacentOneLineDefs: false
|
250
|
+
# Can be array to specify minimum and maximum number of empty lines, e.g. [1, 2]
|
251
|
+
NumberOfEmptyLines: 1
|
252
|
+
|
253
|
+
Layout/EmptyLinesAroundBlockBody:
|
254
|
+
EnforcedStyle: no_empty_lines
|
255
|
+
SupportedStyles:
|
256
|
+
- empty_lines
|
257
|
+
- no_empty_lines
|
258
|
+
|
259
|
+
Layout/EmptyLinesAroundClassBody:
|
260
|
+
EnforcedStyle: no_empty_lines
|
261
|
+
SupportedStyles:
|
262
|
+
- empty_lines
|
263
|
+
- empty_lines_except_namespace
|
264
|
+
- empty_lines_special
|
265
|
+
- no_empty_lines
|
266
|
+
|
267
|
+
Layout/EmptyLinesAroundModuleBody:
|
268
|
+
EnforcedStyle: no_empty_lines
|
269
|
+
SupportedStyles:
|
270
|
+
- empty_lines
|
271
|
+
- empty_lines_except_namespace
|
272
|
+
- empty_lines_special
|
273
|
+
- no_empty_lines
|
274
|
+
|
275
|
+
Layout/EndOfLine:
|
276
|
+
# The `native` style means that CR+LF (Carriage Return + Line Feed) is
|
277
|
+
# enforced on Windows, and LF is enforced on other platforms. The other styles
|
278
|
+
# mean LF and CR+LF, respectively.
|
279
|
+
EnforcedStyle: native
|
280
|
+
SupportedStyles:
|
281
|
+
- native
|
282
|
+
- lf
|
283
|
+
- crlf
|
284
|
+
|
285
|
+
Layout/ExtraSpacing:
|
286
|
+
# When true, allows most uses of extra spacing if the intent is to align
|
287
|
+
# things with the previous or next line, not counting empty lines or comment
|
288
|
+
# lines.
|
289
|
+
AllowForAlignment: true
|
290
|
+
# When true, forces the alignment of `=` in assignments on consecutive lines.
|
291
|
+
ForceEqualSignAlignment: false
|
292
|
+
|
293
|
+
Layout/FirstParameterIndentation:
|
294
|
+
EnforcedStyle: special_for_inner_method_call_in_parentheses
|
295
|
+
SupportedStyles:
|
296
|
+
# The first parameter should always be indented one step more than the
|
297
|
+
# preceding line.
|
298
|
+
- consistent
|
299
|
+
# The first parameter should normally be indented one step more than the
|
300
|
+
# preceding line, but if it's a parameter for a method call that is itself
|
301
|
+
# a parameter in a method call, then the inner parameter should be indented
|
302
|
+
# relative to the inner method.
|
303
|
+
- special_for_inner_method_call
|
304
|
+
# Same as `special_for_inner_method_call` except that the special rule only
|
305
|
+
# applies if the outer method call encloses its arguments in parentheses.
|
306
|
+
- special_for_inner_method_call_in_parentheses
|
307
|
+
# By default, the indentation width from `Layout/IndentationWidth` is used
|
308
|
+
# But it can be overridden by setting this parameter
|
309
|
+
IndentationWidth: ~
|
310
|
+
|
311
|
+
Layout/IndentationConsistency:
|
312
|
+
# The difference between `rails` and `normal` is that the `rails` style
|
313
|
+
# prescribes that in classes and modules the `protected` and `private`
|
314
|
+
# modifier keywords shall be indented the same as public methods and that
|
315
|
+
# protected and private members shall be indented one step more than the
|
316
|
+
# modifiers. Other than that, both styles mean that entities on the same
|
317
|
+
# logical depth shall have the same indentation.
|
318
|
+
EnforcedStyle: normal
|
319
|
+
SupportedStyles:
|
320
|
+
- normal
|
321
|
+
- rails
|
322
|
+
|
323
|
+
Layout/IndentationWidth:
|
324
|
+
# Number of spaces for each indentation level.
|
325
|
+
Width: 2
|
326
|
+
IgnoredPatterns: []
|
327
|
+
|
328
|
+
# Checks the indentation of the first element in an array literal.
|
329
|
+
Layout/IndentArray:
|
330
|
+
# The value `special_inside_parentheses` means that array literals with
|
331
|
+
# brackets that have their opening bracket on the same line as a surrounding
|
332
|
+
# opening round parenthesis, shall have their first element indented relative
|
333
|
+
# to the first position inside the parenthesis.
|
334
|
+
#
|
335
|
+
# The value `consistent` means that the indentation of the first element shall
|
336
|
+
# always be relative to the first position of the line where the opening
|
337
|
+
# bracket is.
|
338
|
+
#
|
339
|
+
# The value `align_brackets` means that the indentation of the first element
|
340
|
+
# shall always be relative to the position of the opening bracket.
|
341
|
+
EnforcedStyle: special_inside_parentheses
|
342
|
+
SupportedStyles:
|
343
|
+
- special_inside_parentheses
|
344
|
+
- consistent
|
345
|
+
- align_brackets
|
346
|
+
# By default, the indentation width from `Layout/IndentationWidth` is used
|
347
|
+
# But it can be overridden by setting this parameter
|
348
|
+
IndentationWidth: ~
|
349
|
+
|
350
|
+
# Checks the indentation of assignment RHS, when on a different line from LHS
|
351
|
+
Layout/IndentAssignment:
|
352
|
+
# By default, the indentation width from `Layout/IndentationWidth` is used
|
353
|
+
# But it can be overridden by setting this parameter
|
354
|
+
IndentationWidth: ~
|
355
|
+
|
356
|
+
# Checks the indentation of the first key in a hash literal.
|
357
|
+
Layout/IndentHash:
|
358
|
+
# The value `special_inside_parentheses` means that hash literals with braces
|
359
|
+
# that have their opening brace on the same line as a surrounding opening
|
360
|
+
# round parenthesis, shall have their first key indented relative to the
|
361
|
+
# first position inside the parenthesis.
|
362
|
+
#
|
363
|
+
# The value `consistent` means that the indentation of the first key shall
|
364
|
+
# always be relative to the first position of the line where the opening
|
365
|
+
# brace is.
|
366
|
+
#
|
367
|
+
# The value `align_braces` means that the indentation of the first key shall
|
368
|
+
# always be relative to the position of the opening brace.
|
369
|
+
EnforcedStyle: special_inside_parentheses
|
370
|
+
SupportedStyles:
|
371
|
+
- special_inside_parentheses
|
372
|
+
- consistent
|
373
|
+
- align_braces
|
374
|
+
# By default, the indentation width from `Layout/IndentationWidth` is used
|
375
|
+
# But it can be overridden by setting this parameter
|
376
|
+
IndentationWidth: ~
|
377
|
+
|
378
|
+
Layout/IndentHeredoc:
|
379
|
+
EnforcedStyle: auto_detection
|
380
|
+
SupportedStyles:
|
381
|
+
- auto_detection
|
382
|
+
- squiggly
|
383
|
+
- active_support
|
384
|
+
- powerpack
|
385
|
+
- unindent
|
386
|
+
|
387
|
+
Layout/SpaceInLambdaLiteral:
|
388
|
+
EnforcedStyle: require_no_space
|
389
|
+
SupportedStyles:
|
390
|
+
- require_no_space
|
391
|
+
- require_space
|
392
|
+
|
393
|
+
Layout/MultilineArrayBraceLayout:
|
394
|
+
EnforcedStyle: symmetrical
|
395
|
+
SupportedStyles:
|
396
|
+
# symmetrical: closing brace is positioned in same way as opening brace
|
397
|
+
# new_line: closing brace is always on a new line
|
398
|
+
# same_line: closing brace is always on the same line as last element
|
399
|
+
- symmetrical
|
400
|
+
- new_line
|
401
|
+
- same_line
|
402
|
+
|
403
|
+
Layout/MultilineAssignmentLayout:
|
404
|
+
# The types of assignments which are subject to this rule.
|
405
|
+
SupportedTypes:
|
406
|
+
- block
|
407
|
+
- case
|
408
|
+
- class
|
409
|
+
- if
|
410
|
+
- kwbegin
|
411
|
+
- module
|
412
|
+
EnforcedStyle: new_line
|
413
|
+
SupportedStyles:
|
414
|
+
# Ensures that the assignment operator and the rhs are on the same line for
|
415
|
+
# the set of supported types.
|
416
|
+
- same_line
|
417
|
+
# Ensures that the assignment operator and the rhs are on separate lines
|
418
|
+
# for the set of supported types.
|
419
|
+
- new_line
|
420
|
+
|
421
|
+
Layout/MultilineHashBraceLayout:
|
422
|
+
EnforcedStyle: symmetrical
|
423
|
+
SupportedStyles:
|
424
|
+
# symmetrical: closing brace is positioned in same way as opening brace
|
425
|
+
# new_line: closing brace is always on a new line
|
426
|
+
# same_line: closing brace is always on same line as last element
|
427
|
+
- symmetrical
|
428
|
+
- new_line
|
429
|
+
- same_line
|
430
|
+
|
431
|
+
Layout/MultilineMethodCallBraceLayout:
|
432
|
+
EnforcedStyle: symmetrical
|
433
|
+
SupportedStyles:
|
434
|
+
# symmetrical: closing brace is positioned in same way as opening brace
|
435
|
+
# new_line: closing brace is always on a new line
|
436
|
+
# same_line: closing brace is always on the same line as last argument
|
437
|
+
- symmetrical
|
438
|
+
- new_line
|
439
|
+
- same_line
|
440
|
+
|
441
|
+
Layout/MultilineMethodCallIndentation:
|
442
|
+
EnforcedStyle: aligned
|
443
|
+
SupportedStyles:
|
444
|
+
- aligned
|
445
|
+
- indented
|
446
|
+
- indented_relative_to_receiver
|
447
|
+
# By default, the indentation width from Layout/IndentationWidth is used
|
448
|
+
# But it can be overridden by setting this parameter
|
449
|
+
IndentationWidth: ~
|
450
|
+
|
451
|
+
Layout/MultilineMethodDefinitionBraceLayout:
|
452
|
+
EnforcedStyle: symmetrical
|
453
|
+
SupportedStyles:
|
454
|
+
# symmetrical: closing brace is positioned in same way as opening brace
|
455
|
+
# new_line: closing brace is always on a new line
|
456
|
+
# same_line: closing brace is always on the same line as last parameter
|
457
|
+
- symmetrical
|
458
|
+
- new_line
|
459
|
+
- same_line
|
460
|
+
|
461
|
+
Layout/MultilineOperationIndentation:
|
462
|
+
EnforcedStyle: aligned
|
463
|
+
SupportedStyles:
|
464
|
+
- aligned
|
465
|
+
- indented
|
466
|
+
# By default, the indentation width from `Layout/IndentationWidth` is used
|
467
|
+
# But it can be overridden by setting this parameter
|
468
|
+
IndentationWidth: ~
|
469
|
+
|
470
|
+
Layout/SpaceAroundBlockParameters:
|
471
|
+
EnforcedStyleInsidePipes: no_space
|
472
|
+
SupportedStylesInsidePipes:
|
473
|
+
- space
|
474
|
+
- no_space
|
475
|
+
|
476
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
477
|
+
EnforcedStyle: space
|
478
|
+
SupportedStyles:
|
479
|
+
- space
|
480
|
+
- no_space
|
481
|
+
|
482
|
+
Layout/SpaceAroundOperators:
|
483
|
+
# When `true`, allows most uses of extra spacing if the intent is to align
|
484
|
+
# with an operator on the previous or next line, not counting empty lines
|
485
|
+
# or comment lines.
|
486
|
+
AllowForAlignment: true
|
487
|
+
|
488
|
+
Layout/SpaceBeforeBlockBraces:
|
489
|
+
EnforcedStyle: space
|
490
|
+
SupportedStyles:
|
491
|
+
- space
|
492
|
+
- no_space
|
493
|
+
EnforcedStyleForEmptyBraces: space
|
494
|
+
SupportedStylesForEmptyBraces:
|
495
|
+
- space
|
496
|
+
- no_space
|
497
|
+
|
498
|
+
Layout/SpaceBeforeFirstArg:
|
499
|
+
# When `true`, allows most uses of extra spacing if the intent is to align
|
500
|
+
# things with the previous or next line, not counting empty lines or comment
|
501
|
+
# lines.
|
502
|
+
AllowForAlignment: true
|
503
|
+
|
504
|
+
Layout/SpaceInsideArrayLiteralBrackets:
|
505
|
+
EnforcedStyle: no_space
|
506
|
+
SupportedStyles:
|
507
|
+
- space
|
508
|
+
- no_space
|
509
|
+
# 'compact' normally requires a space inside the brackets, with the exception
|
510
|
+
# that successive left brackets or right brackets are collapsed together
|
511
|
+
- compact
|
512
|
+
EnforcedStyleForEmptyBrackets: no_space
|
513
|
+
SupportedStylesForEmptyBrackets:
|
514
|
+
- space
|
515
|
+
- no_space
|
516
|
+
|
517
|
+
Layout/SpaceInsideBlockBraces:
|
518
|
+
EnforcedStyle: space
|
519
|
+
SupportedStyles:
|
520
|
+
- space
|
521
|
+
- no_space
|
522
|
+
EnforcedStyleForEmptyBraces: no_space
|
523
|
+
SupportedStylesForEmptyBraces:
|
524
|
+
- space
|
525
|
+
- no_space
|
526
|
+
# Space between `{` and `|`. Overrides `EnforcedStyle` if there is a conflict.
|
527
|
+
SpaceBeforeBlockParameters: true
|
528
|
+
|
529
|
+
Layout/SpaceInsideHashLiteralBraces:
|
530
|
+
EnforcedStyle: space
|
531
|
+
SupportedStyles:
|
532
|
+
- space
|
533
|
+
- no_space
|
534
|
+
# 'compact' normally requires a space inside hash braces, with the exception
|
535
|
+
# that successive left braces or right braces are collapsed together
|
536
|
+
- compact
|
537
|
+
EnforcedStyleForEmptyBraces: no_space
|
538
|
+
SupportedStylesForEmptyBraces:
|
539
|
+
- space
|
540
|
+
- no_space
|
541
|
+
|
542
|
+
Layout/SpaceInsideReferenceBrackets:
|
543
|
+
EnforcedStyle: no_space
|
544
|
+
SupportedStyles:
|
545
|
+
- space
|
546
|
+
- no_space
|
547
|
+
|
548
|
+
Layout/SpaceInsideStringInterpolation:
|
549
|
+
EnforcedStyle: no_space
|
550
|
+
SupportedStyles:
|
551
|
+
- space
|
552
|
+
- no_space
|
553
|
+
|
554
|
+
Layout/ClassStructure:
|
555
|
+
Categories:
|
556
|
+
module_inclusion:
|
557
|
+
- include
|
558
|
+
- prepend
|
559
|
+
- extend
|
560
|
+
ExpectedOrder:
|
561
|
+
- module_inclusion
|
562
|
+
- constants
|
563
|
+
- public_class_methods
|
564
|
+
- initializer
|
565
|
+
- public_methods
|
566
|
+
- protected_methods
|
567
|
+
- private_methods
|
568
|
+
|
569
|
+
Layout/Tab:
|
570
|
+
# By default, the indentation width from Layout/IndentationWidth is used
|
182
571
|
# But it can be overridden by setting this parameter
|
572
|
+
# It is used during auto-correction to determine how many spaces should
|
573
|
+
# replace each tab.
|
183
574
|
IndentationWidth: ~
|
184
575
|
|
576
|
+
Layout/TrailingBlankLines:
|
577
|
+
EnforcedStyle: final_newline
|
578
|
+
SupportedStyles:
|
579
|
+
- final_newline
|
580
|
+
- final_blank_line
|
581
|
+
|
582
|
+
#################### Naming ##########################
|
583
|
+
|
584
|
+
Naming/FileName:
|
585
|
+
# File names listed in `AllCops:Include` are excluded by default. Add extra
|
586
|
+
# excludes here.
|
587
|
+
Exclude: []
|
588
|
+
# When `true`, requires that each source file should define a class or module
|
589
|
+
# with a name which matches the file name (converted to ... case).
|
590
|
+
# It further expects it to be nested inside modules which match the names
|
591
|
+
# of subdirectories in its path.
|
592
|
+
ExpectMatchingDefinition: false
|
593
|
+
# If non-`nil`, expect all source file names to match the following regex.
|
594
|
+
# Only the file name itself is matched, not the entire file path.
|
595
|
+
# Use anchors as necessary if you want to match the entire name rather than
|
596
|
+
# just a part of it.
|
597
|
+
Regex: ~
|
598
|
+
# With `IgnoreExecutableScripts` set to `true`, this cop does not
|
599
|
+
# report offending filenames for executable scripts (i.e. source
|
600
|
+
# files with a shebang in the first line).
|
601
|
+
IgnoreExecutableScripts: true
|
602
|
+
AllowedAcronyms:
|
603
|
+
- CLI
|
604
|
+
- DSL
|
605
|
+
- ACL
|
606
|
+
- API
|
607
|
+
- ASCII
|
608
|
+
- CPU
|
609
|
+
- CSS
|
610
|
+
- DNS
|
611
|
+
- EOF
|
612
|
+
- GUID
|
613
|
+
- HTML
|
614
|
+
- HTTP
|
615
|
+
- HTTPS
|
616
|
+
- ID
|
617
|
+
- IP
|
618
|
+
- JSON
|
619
|
+
- LHS
|
620
|
+
- QPS
|
621
|
+
- RAM
|
622
|
+
- RHS
|
623
|
+
- RPC
|
624
|
+
- SLA
|
625
|
+
- SMTP
|
626
|
+
- SQL
|
627
|
+
- SSH
|
628
|
+
- TCP
|
629
|
+
- TLS
|
630
|
+
- TTL
|
631
|
+
- UDP
|
632
|
+
- UI
|
633
|
+
- UID
|
634
|
+
- UUID
|
635
|
+
- URI
|
636
|
+
- URL
|
637
|
+
- UTF8
|
638
|
+
- VM
|
639
|
+
- XML
|
640
|
+
- XMPP
|
641
|
+
- XSRF
|
642
|
+
- XSS
|
643
|
+
|
644
|
+
Naming/HeredocDelimiterNaming:
|
645
|
+
Blacklist:
|
646
|
+
- END
|
647
|
+
- !ruby/regexp '/EO[A-Z]{1}/'
|
648
|
+
|
649
|
+
Naming/HeredocDelimiterCase:
|
650
|
+
EnforcedStyle: uppercase
|
651
|
+
SupportedStyles:
|
652
|
+
- lowercase
|
653
|
+
- uppercase
|
654
|
+
|
655
|
+
Naming/MethodName:
|
656
|
+
EnforcedStyle: snake_case
|
657
|
+
SupportedStyles:
|
658
|
+
- snake_case
|
659
|
+
- camelCase
|
660
|
+
|
661
|
+
Naming/PredicateName:
|
662
|
+
# Predicate name prefixes.
|
663
|
+
NamePrefix:
|
664
|
+
- is_
|
665
|
+
- has_
|
666
|
+
- have_
|
667
|
+
# Predicate name prefixes that should be removed.
|
668
|
+
NamePrefixBlacklist:
|
669
|
+
- is_
|
670
|
+
- has_
|
671
|
+
- have_
|
672
|
+
# Predicate names which, despite having a blacklisted prefix, or no `?`,
|
673
|
+
# should still be accepted
|
674
|
+
NameWhitelist:
|
675
|
+
- is_a?
|
676
|
+
# Method definition macros for dynamically generated methods.
|
677
|
+
MethodDefinitionMacros:
|
678
|
+
- define_method
|
679
|
+
- define_singleton_method
|
680
|
+
# Exclude Rspec specs because there is a strong convention to write spec
|
681
|
+
# helpers in the form of `have_something` or `be_something`.
|
682
|
+
Exclude:
|
683
|
+
- 'spec/**/*'
|
684
|
+
|
685
|
+
Naming/VariableName:
|
686
|
+
EnforcedStyle: snake_case
|
687
|
+
SupportedStyles:
|
688
|
+
- snake_case
|
689
|
+
- camelCase
|
690
|
+
|
691
|
+
Naming/VariableNumber:
|
692
|
+
EnforcedStyle: normalcase
|
693
|
+
SupportedStyles:
|
694
|
+
- snake_case
|
695
|
+
- normalcase
|
696
|
+
- non_integer
|
697
|
+
|
698
|
+
#################### Style ###########################
|
699
|
+
|
700
|
+
Style/Alias:
|
701
|
+
EnforcedStyle: prefer_alias
|
702
|
+
SupportedStyles:
|
703
|
+
- prefer_alias
|
704
|
+
- prefer_alias_method
|
705
|
+
|
185
706
|
Style/AndOr:
|
186
707
|
# Whether `and` and `or` are banned only in conditionals (conditionals)
|
187
708
|
# or completely (always).
|
@@ -190,8 +711,10 @@ Style/AndOr:
|
|
190
711
|
- always
|
191
712
|
- conditionals
|
192
713
|
|
714
|
+
Style/AsciiComments:
|
715
|
+
AllowedChars: []
|
193
716
|
|
194
|
-
# Checks if usage of
|
717
|
+
# Checks if usage of `%()` or `%Q()` matches configuration.
|
195
718
|
Style/BarePercentLiterals:
|
196
719
|
EnforcedStyle: bare_percent
|
197
720
|
SupportedStyles:
|
@@ -283,18 +806,6 @@ Style/BracesAroundHashParameters:
|
|
283
806
|
# also a hash literal.
|
284
807
|
- context_dependent
|
285
808
|
|
286
|
-
# Indentation of `when`.
|
287
|
-
Style/CaseIndentation:
|
288
|
-
IndentWhenRelativeTo: case
|
289
|
-
SupportedStyles:
|
290
|
-
- case
|
291
|
-
- end
|
292
|
-
IndentOneStep: false
|
293
|
-
# By default, the indentation width from Style/IndentationWidth is used
|
294
|
-
# But it can be overridden by setting this parameter
|
295
|
-
# This only matters if IndentOneStep is true
|
296
|
-
IndentationWidth: ~
|
297
|
-
|
298
809
|
Style/ClassAndModuleChildren:
|
299
810
|
# Checks the style of children definitions at classes and modules.
|
300
811
|
#
|
@@ -310,7 +821,7 @@ Style/ClassAndModuleChildren:
|
|
310
821
|
# class Foo::Bar
|
311
822
|
# end
|
312
823
|
#
|
313
|
-
# The compact style is only forced, for classes
|
824
|
+
# The compact style is only forced, for classes or modules with one child.
|
314
825
|
EnforcedStyle: nested
|
315
826
|
SupportedStyles:
|
316
827
|
- nested
|
@@ -337,17 +848,17 @@ Style/CollectionMethods:
|
|
337
848
|
detect: 'find'
|
338
849
|
find_all: 'select'
|
339
850
|
|
340
|
-
# Use ` or %x around command literals.
|
851
|
+
# Use '`' or '%x' around command literals.
|
341
852
|
Style/CommandLiteral:
|
342
853
|
EnforcedStyle: backticks
|
343
854
|
# backticks: Always use backticks.
|
344
|
-
# percent_x: Always use
|
345
|
-
# mixed: Use backticks on single-line commands, and
|
855
|
+
# percent_x: Always use `%x`.
|
856
|
+
# mixed: Use backticks on single-line commands, and `%x` on multi-line commands.
|
346
857
|
SupportedStyles:
|
347
858
|
- backticks
|
348
859
|
- percent_x
|
349
860
|
- mixed
|
350
|
-
# If false
|
861
|
+
# If `false`, the cop will always recommend using `%x` if one or more backticks
|
351
862
|
# are found in the command string.
|
352
863
|
AllowInnerBackticks: false
|
353
864
|
|
@@ -372,14 +883,15 @@ Style/ConditionalAssignment:
|
|
372
883
|
# will only register an offense for assignment to a condition that has
|
373
884
|
# at least one multiline branch.
|
374
885
|
SingleLineConditionsOnly: true
|
886
|
+
IncludeTernaryExpressions: true
|
375
887
|
|
376
888
|
# Checks that you have put a copyright in a comment before any code.
|
377
889
|
#
|
378
890
|
# You can override the default Notice in your .rubocop.yml file.
|
379
891
|
#
|
380
892
|
# In order to use autocorrect, you must supply a value for the
|
381
|
-
# AutocorrectNotice key that matches the regexp Notice. A blank
|
382
|
-
# AutocorrectNotice will cause an error during autocorrect.
|
893
|
+
# `AutocorrectNotice` key that matches the regexp Notice. A blank
|
894
|
+
# `AutocorrectNotice` will cause an error during autocorrect.
|
383
895
|
#
|
384
896
|
# Autocorrect will add a copyright notice in a comment at the top
|
385
897
|
# of the file immediately after any shebang or encoding comments.
|
@@ -395,17 +907,13 @@ Style/Copyright:
|
|
395
907
|
Notice: '^Copyright (\(c\) )?2[0-9]{3} .+'
|
396
908
|
AutocorrectNotice: ''
|
397
909
|
|
398
|
-
|
399
|
-
|
400
|
-
EnforcedStyle: leading
|
401
|
-
SupportedStyles:
|
402
|
-
- leading
|
403
|
-
- trailing
|
910
|
+
Style/DocumentationMethod:
|
911
|
+
RequireForNonPublicMethods: false
|
404
912
|
|
405
913
|
# Warn on empty else statements
|
406
|
-
# empty - warn only on empty else
|
407
|
-
# nil - warn on else with nil in it
|
408
|
-
# both - warn on empty else and else with nil in it
|
914
|
+
# empty - warn only on empty `else`
|
915
|
+
# nil - warn on `else` with nil in it
|
916
|
+
# both - warn on empty `else` and `else` with `nil` in it
|
409
917
|
Style/EmptyElse:
|
410
918
|
EnforcedStyle: both
|
411
919
|
SupportedStyles:
|
@@ -413,85 +921,11 @@ Style/EmptyElse:
|
|
413
921
|
- nil
|
414
922
|
- both
|
415
923
|
|
416
|
-
|
417
|
-
|
418
|
-
# If true, this parameter means that single line method definitions don't
|
419
|
-
# need an empty line between them.
|
420
|
-
AllowAdjacentOneLineDefs: false
|
421
|
-
|
422
|
-
Style/EmptyLinesAroundBlockBody:
|
423
|
-
EnforcedStyle: no_empty_lines
|
424
|
-
SupportedStyles:
|
425
|
-
- empty_lines
|
426
|
-
- no_empty_lines
|
427
|
-
|
428
|
-
Style/EmptyLinesAroundClassBody:
|
429
|
-
EnforcedStyle: no_empty_lines
|
430
|
-
SupportedStyles:
|
431
|
-
- empty_lines
|
432
|
-
- no_empty_lines
|
433
|
-
|
434
|
-
Style/EmptyLinesAroundModuleBody:
|
435
|
-
EnforcedStyle: no_empty_lines
|
924
|
+
Style/EmptyMethod:
|
925
|
+
EnforcedStyle: compact
|
436
926
|
SupportedStyles:
|
437
|
-
-
|
438
|
-
-
|
439
|
-
|
440
|
-
# Checks whether the source file has a utf-8 encoding comment or not
|
441
|
-
# AutoCorrectEncodingComment must match the regex
|
442
|
-
# /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
|
443
|
-
Style/Encoding:
|
444
|
-
EnforcedStyle: never
|
445
|
-
SupportedStyles:
|
446
|
-
- when_needed
|
447
|
-
- always
|
448
|
-
- never
|
449
|
-
AutoCorrectEncodingComment: '# encoding: utf-8'
|
450
|
-
|
451
|
-
Style/ExtraSpacing:
|
452
|
-
# When true, allows most uses of extra spacing if the intent is to align
|
453
|
-
# things with the previous or next line, not counting empty lines or comment
|
454
|
-
# lines.
|
455
|
-
AllowForAlignment: true
|
456
|
-
# When true, forces the alignment of = in assignments on consecutive lines.
|
457
|
-
ForceEqualSignAlignment: false
|
458
|
-
|
459
|
-
Style/FileName:
|
460
|
-
# File names listed in AllCops:Include are excluded by default. Add extra
|
461
|
-
# excludes here.
|
462
|
-
Exclude: []
|
463
|
-
# When true, requires that each source file should define a class or module
|
464
|
-
# with a name which matches the file name (converted to ... case).
|
465
|
-
# It further expects it to be nested inside modules which match the names
|
466
|
-
# of subdirectories in its path.
|
467
|
-
ExpectMatchingDefinition: false
|
468
|
-
# If non-nil, expect all source file names to match the following regex.
|
469
|
-
# Only the file name itself is matched, not the entire file path.
|
470
|
-
# Use anchors as necessary if you want to match the entire name rather than
|
471
|
-
# just a part of it.
|
472
|
-
Regex: ~
|
473
|
-
# With `IgnoreExecutableScripts` set to `true`, this cop does not
|
474
|
-
# report offending filenames for executable scripts (i.e. source
|
475
|
-
# files with a shebang in the first line).
|
476
|
-
IgnoreExecutableScripts: true
|
477
|
-
|
478
|
-
Style/FirstParameterIndentation:
|
479
|
-
EnforcedStyle: special_for_inner_method_call_in_parentheses
|
480
|
-
SupportedStyles:
|
481
|
-
# The first parameter should always be indented one step more than the
|
482
|
-
# preceding line.
|
483
|
-
- consistent
|
484
|
-
# The first parameter should normally be indented one step more than the
|
485
|
-
# preceding line, but if it's a parameter for a method call that is itself
|
486
|
-
# a parameter in a method call, then the inner parameter should be indented
|
487
|
-
# relative to the inner method.
|
488
|
-
- special_for_inner_method_call
|
489
|
-
# Same as special_for_inner_method_call except that the special rule only
|
490
|
-
# applies if the outer method call encloses its arguments in parentheses.
|
491
|
-
- special_for_inner_method_call_in_parentheses
|
492
|
-
# By default, the indentation width from Style/IndentationWidth is used
|
493
|
-
# But it can be overridden by setting this parameter
|
494
|
-
IndentationWidth: ~
|
927
|
+
- compact
|
928
|
+
- expanded
|
495
929
|
|
496
930
|
# Checks use of for or each in multiline loops.
|
497
931
|
Style/For:
|
@@ -508,6 +942,17 @@ Style/FormatString:
|
|
508
942
|
- sprintf
|
509
943
|
- percent
|
510
944
|
|
945
|
+
# Enforce using either `%<token>s` or `%{token}`
|
946
|
+
Style/FormatStringToken:
|
947
|
+
EnforcedStyle: annotated
|
948
|
+
SupportedStyles:
|
949
|
+
# Prefer tokens which contain a sprintf like type annotation like
|
950
|
+
# `%<name>s`, `%<age>d`, `%<score>f`
|
951
|
+
- annotated
|
952
|
+
# Prefer simple looking "template" style tokens like `%{name}`, `%{age}`
|
953
|
+
- template
|
954
|
+
- unannotated
|
955
|
+
|
511
956
|
Style/FrozenStringLiteralComment:
|
512
957
|
EnforcedStyle: when_needed
|
513
958
|
SupportedStyles:
|
@@ -519,12 +964,15 @@ Style/FrozenStringLiteralComment:
|
|
519
964
|
# string literal. If you run code against multiple versions of Ruby, it is
|
520
965
|
# possible that this will create errors in Ruby 2.3.0+.
|
521
966
|
- always
|
967
|
+
# `never` will enforce that the frozen string literal comment does not
|
968
|
+
# exist in a file.
|
969
|
+
- never
|
522
970
|
|
523
971
|
# Built-in global variables are allowed by default.
|
524
972
|
Style/GlobalVars:
|
525
973
|
AllowedVariables: []
|
526
974
|
|
527
|
-
# `MinBodyLength` defines the number of lines of the a body of an if
|
975
|
+
# `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
|
528
976
|
# needs to have to trigger this cop
|
529
977
|
Style/GuardClause:
|
530
978
|
MinBodyLength: 1
|
@@ -532,122 +980,56 @@ Style/GuardClause:
|
|
532
980
|
Style/HashSyntax:
|
533
981
|
EnforcedStyle: ruby19
|
534
982
|
SupportedStyles:
|
983
|
+
# checks for 1.9 syntax (e.g. {a: 1}) for all symbol keys
|
535
984
|
- ruby19
|
536
|
-
|
985
|
+
# checks for hash rocket syntax for all hashes
|
537
986
|
- hash_rockets
|
987
|
+
# forbids mixed key syntaxes (e.g. {a: 1, :b => 2})
|
988
|
+
- no_mixed_keys
|
989
|
+
# enforces both ruby19 and no_mixed_keys styles
|
990
|
+
- ruby19_no_mixed_keys
|
538
991
|
# Force hashes that have a symbol value to use hash rockets
|
539
992
|
UseHashRocketsWithSymbolValues: false
|
540
993
|
# Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
|
541
994
|
PreferHashRocketsForNonAlnumEndingSymbols: false
|
542
995
|
|
543
|
-
Style/
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
#
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
# opening round parenthesis, shall have their first element indented relative
|
567
|
-
# to the first position inside the parenthesis.
|
568
|
-
#
|
569
|
-
# The value `consistent` means that the indentation of the first element shall
|
570
|
-
# always be relative to the first position of the line where the opening
|
571
|
-
# bracket is.
|
572
|
-
#
|
573
|
-
# The value `align_brackets` means that the indentation of the first element
|
574
|
-
# shall always be relative to the position of the opening bracket.
|
575
|
-
EnforcedStyle: special_inside_parentheses
|
576
|
-
SupportedStyles:
|
577
|
-
- special_inside_parentheses
|
578
|
-
- consistent
|
579
|
-
- align_brackets
|
580
|
-
# By default, the indentation width from Style/IndentationWidth is used
|
581
|
-
# But it can be overridden by setting this parameter
|
582
|
-
IndentationWidth: ~
|
583
|
-
|
584
|
-
# Checks the indentation of assignment RHS, when on a different line from LHS
|
585
|
-
Style/IndentAssignment:
|
586
|
-
# By default, the indentation width from Style/IndentationWidth is used
|
587
|
-
# But it can be overridden by setting this parameter
|
588
|
-
IndentationWidth: ~
|
589
|
-
|
590
|
-
# Checks the indentation of the first key in a hash literal.
|
591
|
-
Style/IndentHash:
|
592
|
-
# The value `special_inside_parentheses` means that hash literals with braces
|
593
|
-
# that have their opening brace on the same line as a surrounding opening
|
594
|
-
# round parenthesis, shall have their first key indented relative to the
|
595
|
-
# first position inside the parenthesis.
|
596
|
-
#
|
597
|
-
# The value `consistent` means that the indentation of the first key shall
|
598
|
-
# always be relative to the first position of the line where the opening
|
599
|
-
# brace is.
|
600
|
-
#
|
601
|
-
# The value `align_braces` means that the indentation of the first key shall
|
602
|
-
# always be relative to the position of the opening brace.
|
603
|
-
EnforcedStyle: special_inside_parentheses
|
604
|
-
SupportedStyles:
|
605
|
-
- special_inside_parentheses
|
606
|
-
- consistent
|
607
|
-
- align_braces
|
608
|
-
# By default, the indentation width from Style/IndentationWidth is used
|
609
|
-
# But it can be overridden by setting this parameter
|
610
|
-
IndentationWidth: ~
|
611
|
-
|
612
|
-
Style/Lambda:
|
613
|
-
EnforcedStyle: line_count_dependent
|
614
|
-
SupportedStyles:
|
615
|
-
- line_count_dependent
|
616
|
-
- lambda
|
617
|
-
- literal
|
618
|
-
|
619
|
-
Style/LambdaCall:
|
620
|
-
EnforcedStyle: call
|
621
|
-
SupportedStyles:
|
622
|
-
- call
|
623
|
-
- braces
|
624
|
-
|
625
|
-
Style/Next:
|
626
|
-
# With `always` all conditions at the end of an iteration needs to be
|
627
|
-
# replaced by next - with `skip_modifier_ifs` the modifier if like this one
|
628
|
-
# are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
|
629
|
-
EnforcedStyle: skip_modifier_ifs
|
630
|
-
# `MinBodyLength` defines the number of lines of the a body of an if / unless
|
631
|
-
# needs to have to trigger this cop
|
632
|
-
MinBodyLength: 3
|
633
|
-
SupportedStyles:
|
634
|
-
- skip_modifier_ifs
|
635
|
-
- always
|
636
|
-
|
637
|
-
Style/NonNilCheck:
|
638
|
-
# With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
|
639
|
-
# `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
|
640
|
-
# **usually** OK, but might change behavior.
|
641
|
-
#
|
642
|
-
# With `IncludeSemanticChanges` set to `false`, this cop does not report
|
643
|
-
# offenses for `!x.nil?` and does no changes that might change behavior.
|
644
|
-
IncludeSemanticChanges: false
|
645
|
-
|
646
|
-
Style/NumericPredicate:
|
647
|
-
EnforcedStyle: predicate
|
996
|
+
Style/InverseMethods:
|
997
|
+
# `InverseMethods` are methods that can be inverted by a not (`not` or `!`)
|
998
|
+
# The relationship of inverse methods only needs to be defined in one direction.
|
999
|
+
# Keys and values both need to be defined as symbols.
|
1000
|
+
InverseMethods:
|
1001
|
+
:any?: :none?
|
1002
|
+
:even?: :odd?
|
1003
|
+
:==: :!=
|
1004
|
+
:=~: :!~
|
1005
|
+
:<: :>=
|
1006
|
+
:>: :<=
|
1007
|
+
# `ActiveSupport` defines some common inverse methods. They are listed below,
|
1008
|
+
# and not enabled by default.
|
1009
|
+
#:present?: :blank?,
|
1010
|
+
#:include?: :exclude?
|
1011
|
+
# `InverseBlocks` are methods that are inverted by inverting the return
|
1012
|
+
# of the block that is passed to the method
|
1013
|
+
InverseBlocks:
|
1014
|
+
:select: :reject
|
1015
|
+
:select!: :reject!
|
1016
|
+
|
1017
|
+
Style/Lambda:
|
1018
|
+
EnforcedStyle: line_count_dependent
|
648
1019
|
SupportedStyles:
|
649
|
-
-
|
650
|
-
-
|
1020
|
+
- line_count_dependent
|
1021
|
+
- lambda
|
1022
|
+
- literal
|
1023
|
+
|
1024
|
+
Style/LambdaCall:
|
1025
|
+
EnforcedStyle: call
|
1026
|
+
SupportedStyles:
|
1027
|
+
- call
|
1028
|
+
- braces
|
1029
|
+
|
1030
|
+
Style/MethodCallWithArgsParentheses:
|
1031
|
+
IgnoreMacros: true
|
1032
|
+
IgnoredMethods: []
|
651
1033
|
|
652
1034
|
Style/MethodDefParentheses:
|
653
1035
|
EnforcedStyle: require_parentheses
|
@@ -656,11 +1038,15 @@ Style/MethodDefParentheses:
|
|
656
1038
|
- require_no_parentheses
|
657
1039
|
- require_no_parentheses_except_multiline
|
658
1040
|
|
659
|
-
|
660
|
-
|
1041
|
+
# Checks the grouping of mixins (`include`, `extend`, `prepend`) in `class` and
|
1042
|
+
# `module` bodies.
|
1043
|
+
Style/MixinGrouping:
|
1044
|
+
EnforcedStyle: separated
|
661
1045
|
SupportedStyles:
|
662
|
-
|
663
|
-
|
1046
|
+
# separated: each mixed in module goes in a separate statement.
|
1047
|
+
# grouped: mixed in modules are grouped into a single statement.
|
1048
|
+
- separated
|
1049
|
+
- grouped
|
664
1050
|
|
665
1051
|
Style/ModuleFunction:
|
666
1052
|
EnforcedStyle: module_function
|
@@ -668,85 +1054,66 @@ Style/ModuleFunction:
|
|
668
1054
|
- module_function
|
669
1055
|
- extend_self
|
670
1056
|
|
671
|
-
Style/
|
672
|
-
EnforcedStyle:
|
673
|
-
SupportedStyles:
|
674
|
-
# symmetrical: closing brace is positioned in same way as opening brace
|
675
|
-
# new_line: closing brace is always on a new line
|
676
|
-
# same_line: closing brace is always on the same line as last element
|
677
|
-
- symmetrical
|
678
|
-
- new_line
|
679
|
-
- same_line
|
680
|
-
|
681
|
-
Style/MultilineAssignmentLayout:
|
682
|
-
# The types of assignments which are subject to this rule.
|
683
|
-
SupportedTypes:
|
684
|
-
- block
|
685
|
-
- case
|
686
|
-
- class
|
687
|
-
- if
|
688
|
-
- kwbegin
|
689
|
-
- module
|
690
|
-
EnforcedStyle: new_line
|
691
|
-
SupportedStyles:
|
692
|
-
# Ensures that the assignment operator and the rhs are on the same line for
|
693
|
-
# the set of supported types.
|
694
|
-
- same_line
|
695
|
-
# Ensures that the assignment operator and the rhs are on separate lines
|
696
|
-
# for the set of supported types.
|
697
|
-
- new_line
|
698
|
-
|
699
|
-
Style/MultilineHashBraceLayout:
|
700
|
-
EnforcedStyle: symmetrical
|
1057
|
+
Style/MultilineMemoization:
|
1058
|
+
EnforcedStyle: keyword
|
701
1059
|
SupportedStyles:
|
702
|
-
|
703
|
-
|
704
|
-
# same_line: closing brace is always on same line as last element
|
705
|
-
- symmetrical
|
706
|
-
- new_line
|
707
|
-
- same_line
|
1060
|
+
- keyword
|
1061
|
+
- braces
|
708
1062
|
|
709
|
-
Style/
|
710
|
-
EnforcedStyle:
|
1063
|
+
Style/NegatedIf:
|
1064
|
+
EnforcedStyle: both
|
711
1065
|
SupportedStyles:
|
712
|
-
#
|
713
|
-
#
|
714
|
-
#
|
715
|
-
-
|
716
|
-
-
|
717
|
-
-
|
1066
|
+
# both: prefix and postfix negated `if` should both use `unless`
|
1067
|
+
# prefix: only use `unless` for negated `if` statements positioned before the body of the statement
|
1068
|
+
# postfix: only use `unless` for negated `if` statements positioned after the body of the statement
|
1069
|
+
- both
|
1070
|
+
- prefix
|
1071
|
+
- postfix
|
718
1072
|
|
719
|
-
Style/
|
720
|
-
|
721
|
-
|
722
|
-
-
|
723
|
-
-
|
724
|
-
-
|
725
|
-
|
726
|
-
|
727
|
-
|
1073
|
+
Style/NestedParenthesizedCalls:
|
1074
|
+
Whitelist:
|
1075
|
+
- be
|
1076
|
+
- be_a
|
1077
|
+
- be_an
|
1078
|
+
- be_between
|
1079
|
+
- be_falsey
|
1080
|
+
- be_kind_of
|
1081
|
+
- be_instance_of
|
1082
|
+
- be_truthy
|
1083
|
+
- be_within
|
1084
|
+
- eq
|
1085
|
+
- eql
|
1086
|
+
- end_with
|
1087
|
+
- include
|
1088
|
+
- match
|
1089
|
+
- raise_error
|
1090
|
+
- respond_to
|
1091
|
+
- start_with
|
728
1092
|
|
729
|
-
Style/
|
730
|
-
|
1093
|
+
Style/Next:
|
1094
|
+
# With `always` all conditions at the end of an iteration needs to be
|
1095
|
+
# replaced by next - with `skip_modifier_ifs` the modifier if like this one
|
1096
|
+
# are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
|
1097
|
+
EnforcedStyle: skip_modifier_ifs
|
1098
|
+
# `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
|
1099
|
+
# needs to have to trigger this cop
|
1100
|
+
MinBodyLength: 3
|
731
1101
|
SupportedStyles:
|
732
|
-
|
733
|
-
|
734
|
-
# same_line: closing brace is always on the same line as last parameter
|
735
|
-
- symmetrical
|
736
|
-
- new_line
|
737
|
-
- same_line
|
1102
|
+
- skip_modifier_ifs
|
1103
|
+
- always
|
738
1104
|
|
739
|
-
Style/
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
#
|
745
|
-
#
|
746
|
-
|
1105
|
+
Style/NonNilCheck:
|
1106
|
+
# With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
|
1107
|
+
# `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
|
1108
|
+
# **usually** OK, but might change behavior.
|
1109
|
+
#
|
1110
|
+
# With `IncludeSemanticChanges` set to `false`, this cop does not report
|
1111
|
+
# offenses for `!x.nil?` and does no changes that might change behavior.
|
1112
|
+
IncludeSemanticChanges: false
|
747
1113
|
|
748
1114
|
Style/NumericLiterals:
|
749
1115
|
MinDigits: 5
|
1116
|
+
Strict: false
|
750
1117
|
|
751
1118
|
Style/NumericLiteralPrefix:
|
752
1119
|
EnforcedOctalStyle: zero_with_o
|
@@ -754,6 +1121,16 @@ Style/NumericLiteralPrefix:
|
|
754
1121
|
- zero_with_o
|
755
1122
|
- zero_only
|
756
1123
|
|
1124
|
+
Style/NumericPredicate:
|
1125
|
+
EnforcedStyle: predicate
|
1126
|
+
SupportedStyles:
|
1127
|
+
- predicate
|
1128
|
+
- comparison
|
1129
|
+
# Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
|
1130
|
+
# false positives.
|
1131
|
+
Exclude:
|
1132
|
+
- 'spec/**/*'
|
1133
|
+
|
757
1134
|
Style/OptionHash:
|
758
1135
|
# A list of parameter names that will be flagged by this cop.
|
759
1136
|
SuspiciousParamNames:
|
@@ -768,42 +1145,28 @@ Style/ParenthesesAroundCondition:
|
|
768
1145
|
AllowSafeAssignment: true
|
769
1146
|
|
770
1147
|
Style/PercentLiteralDelimiters:
|
1148
|
+
# Specify the default preferred delimiter for all types with the 'default' key
|
1149
|
+
# Override individual delimiters (even with default specified) by specifying
|
1150
|
+
# an individual key
|
771
1151
|
PreferredDelimiters:
|
772
|
-
|
773
|
-
'%i':
|
774
|
-
'%
|
775
|
-
'%Q': ()
|
1152
|
+
default: ()
|
1153
|
+
'%i': '[]'
|
1154
|
+
'%I': '[]'
|
776
1155
|
'%r': '{}'
|
777
|
-
'%
|
778
|
-
'%
|
779
|
-
'%W': ()
|
780
|
-
'%x': ()
|
1156
|
+
'%w': '[]'
|
1157
|
+
'%W': '[]'
|
781
1158
|
|
782
1159
|
Style/PercentQLiterals:
|
783
1160
|
EnforcedStyle: lower_case_q
|
784
1161
|
SupportedStyles:
|
785
|
-
- lower_case_q # Use
|
786
|
-
- upper_case_q # Always use
|
1162
|
+
- lower_case_q # Use `%q` when possible, `%Q` when necessary
|
1163
|
+
- upper_case_q # Always use `%Q`
|
787
1164
|
|
788
|
-
Style/
|
789
|
-
|
790
|
-
|
791
|
-
-
|
792
|
-
-
|
793
|
-
- have_
|
794
|
-
# Predicate name prefixes that should be removed.
|
795
|
-
NamePrefixBlacklist:
|
796
|
-
- is_
|
797
|
-
- has_
|
798
|
-
- have_
|
799
|
-
# Predicate names which, despite having a blacklisted prefix, or no ?,
|
800
|
-
# should still be accepted
|
801
|
-
NameWhitelist:
|
802
|
-
- is_a?
|
803
|
-
# Exclude Rspec specs because there is a strong convetion to write spec
|
804
|
-
# helpers in the form of `have_something` or `be_something`.
|
805
|
-
Exclude:
|
806
|
-
- 'spec/**/*'
|
1165
|
+
Style/PreferredHashMethods:
|
1166
|
+
EnforcedStyle: short
|
1167
|
+
SupportedStyles:
|
1168
|
+
- short
|
1169
|
+
- verbose
|
807
1170
|
|
808
1171
|
Style/RaiseArgs:
|
809
1172
|
EnforcedStyle: exploded
|
@@ -812,25 +1175,44 @@ Style/RaiseArgs:
|
|
812
1175
|
- exploded # raise Exception, msg
|
813
1176
|
|
814
1177
|
Style/RedundantReturn:
|
815
|
-
# When true allows code like `return x, y`.
|
1178
|
+
# When `true` allows code like `return x, y`.
|
816
1179
|
AllowMultipleReturnValues: false
|
817
1180
|
|
818
|
-
# Use
|
1181
|
+
# Use `/` or `%r` around regular expressions.
|
819
1182
|
Style/RegexpLiteral:
|
820
1183
|
EnforcedStyle: slashes
|
821
1184
|
# slashes: Always use slashes.
|
822
|
-
# percent_r: Always use
|
823
|
-
# mixed: Use slashes on single-line regexes, and
|
1185
|
+
# percent_r: Always use `%r`.
|
1186
|
+
# mixed: Use slashes on single-line regexes, and `%r` on multi-line regexes.
|
824
1187
|
SupportedStyles:
|
825
1188
|
- slashes
|
826
1189
|
- percent_r
|
827
1190
|
- mixed
|
828
|
-
# If false
|
1191
|
+
# If `false`, the cop will always recommend using `%r` if one or more slashes
|
829
1192
|
# are found in the regexp string.
|
830
1193
|
AllowInnerSlashes: false
|
831
1194
|
|
1195
|
+
Style/RescueStandardError:
|
1196
|
+
EnforcedStyle: explicit
|
1197
|
+
# implicit: Do not include the error class, `rescue`
|
1198
|
+
# explicit: Require an error class `rescue StandardError`
|
1199
|
+
SupportedStyles:
|
1200
|
+
- implicit
|
1201
|
+
- explicit
|
1202
|
+
|
1203
|
+
Style/ReturnNil:
|
1204
|
+
EnforcedStyle: return
|
1205
|
+
SupportedStyles:
|
1206
|
+
- return
|
1207
|
+
- return_nil
|
1208
|
+
|
1209
|
+
Style/SafeNavigation:
|
1210
|
+
# Safe navigation may cause a statement to start returning `nil` in addition
|
1211
|
+
# to whatever it used to return.
|
1212
|
+
ConvertCodeThatCanStartToReturnNil: false
|
1213
|
+
|
832
1214
|
Style/Semicolon:
|
833
|
-
# Allow
|
1215
|
+
# Allow `;` to separate several expressions on the same line.
|
834
1216
|
AllowAsExpressionSeparator: false
|
835
1217
|
|
836
1218
|
Style/SignalException:
|
@@ -843,21 +1225,15 @@ Style/SignalException:
|
|
843
1225
|
Style/SingleLineBlockParams:
|
844
1226
|
Methods:
|
845
1227
|
- reduce:
|
846
|
-
-
|
847
|
-
-
|
1228
|
+
- acc
|
1229
|
+
- elem
|
848
1230
|
- inject:
|
849
|
-
-
|
850
|
-
-
|
1231
|
+
- acc
|
1232
|
+
- elem
|
851
1233
|
|
852
1234
|
Style/SingleLineMethods:
|
853
1235
|
AllowIfMethodIsEmpty: true
|
854
1236
|
|
855
|
-
Style/SpaceBeforeFirstArg:
|
856
|
-
# When true, allows most uses of extra spacing if the intent is to align
|
857
|
-
# things with the previous or next line, not counting empty lines or comment
|
858
|
-
# lines.
|
859
|
-
AllowForAlignment: true
|
860
|
-
|
861
1237
|
Style/SpecialGlobalVars:
|
862
1238
|
EnforcedStyle: use_english_names
|
863
1239
|
SupportedStyles:
|
@@ -875,7 +1251,7 @@ Style/StringLiterals:
|
|
875
1251
|
SupportedStyles:
|
876
1252
|
- single_quotes
|
877
1253
|
- double_quotes
|
878
|
-
# If true
|
1254
|
+
# If `true`, strings which span multiple lines using `\` for continuation must
|
879
1255
|
# use the same type of quotes on each line.
|
880
1256
|
ConsistentQuotesInMultiline: false
|
881
1257
|
|
@@ -895,58 +1271,9 @@ Style/StringMethods:
|
|
895
1271
|
PreferredMethods:
|
896
1272
|
intern: to_sym
|
897
1273
|
|
898
|
-
Style/SpaceAroundBlockParameters:
|
899
|
-
EnforcedStyleInsidePipes: no_space
|
900
|
-
SupportedStyles:
|
901
|
-
- space
|
902
|
-
- no_space
|
903
|
-
|
904
|
-
Style/SpaceAroundEqualsInParameterDefault:
|
905
|
-
EnforcedStyle: space
|
906
|
-
SupportedStyles:
|
907
|
-
- space
|
908
|
-
- no_space
|
909
|
-
|
910
|
-
Style/SpaceAroundOperators:
|
911
|
-
# When true, allows most uses of extra spacing if the intent is to align
|
912
|
-
# with an operator on the previous or next line, not counting empty lines
|
913
|
-
# or comment lines.
|
914
|
-
AllowForAlignment: true
|
915
|
-
|
916
|
-
Style/SpaceBeforeBlockBraces:
|
917
|
-
EnforcedStyle: space
|
918
|
-
SupportedStyles:
|
919
|
-
- space
|
920
|
-
- no_space
|
921
|
-
|
922
|
-
Style/SpaceInsideBlockBraces:
|
923
|
-
EnforcedStyle: space
|
924
|
-
SupportedStyles:
|
925
|
-
- space
|
926
|
-
- no_space
|
927
|
-
# Valid values are: space, no_space
|
928
|
-
EnforcedStyleForEmptyBraces: no_space
|
929
|
-
# Space between { and |. Overrides EnforcedStyle if there is a conflict.
|
930
|
-
SpaceBeforeBlockParameters: true
|
931
|
-
|
932
|
-
Style/SpaceInsideHashLiteralBraces:
|
933
|
-
EnforcedStyle: space
|
934
|
-
EnforcedStyleForEmptyBraces: no_space
|
935
|
-
SupportedStyles:
|
936
|
-
- space
|
937
|
-
- no_space
|
938
|
-
# 'compact' normally requires a space inside hash braces, with the exception
|
939
|
-
# that successive left braces or right braces are collapsed together
|
940
|
-
- compact
|
941
|
-
|
942
|
-
Style/SpaceInsideStringInterpolation:
|
943
|
-
EnforcedStyle: no_space
|
944
|
-
SupportedStyles:
|
945
|
-
- space
|
946
|
-
- no_space
|
947
|
-
|
948
1274
|
Style/SymbolArray:
|
949
1275
|
EnforcedStyle: percent
|
1276
|
+
MinSize: 0
|
950
1277
|
SupportedStyles:
|
951
1278
|
- percent
|
952
1279
|
- brackets
|
@@ -963,21 +1290,16 @@ Style/TernaryParentheses:
|
|
963
1290
|
SupportedStyles:
|
964
1291
|
- require_parentheses
|
965
1292
|
- require_no_parentheses
|
1293
|
+
- require_parentheses_when_complex
|
966
1294
|
AllowSafeAssignment: true
|
967
1295
|
|
968
|
-
Style/TrailingBlankLines:
|
969
|
-
EnforcedStyle: final_newline
|
970
|
-
SupportedStyles:
|
971
|
-
- final_newline
|
972
|
-
- final_blank_line
|
973
|
-
|
974
1296
|
Style/TrailingCommaInArguments:
|
975
1297
|
# If `comma`, the cop requires a comma after the last argument, but only for
|
976
1298
|
# parenthesized method calls where each argument is on its own line.
|
977
1299
|
# If `consistent_comma`, the cop requires a comma after the last argument,
|
978
1300
|
# for all parenthesized method calls with arguments.
|
979
1301
|
EnforcedStyleForMultiline: no_comma
|
980
|
-
|
1302
|
+
SupportedStylesForMultiline:
|
981
1303
|
- comma
|
982
1304
|
- consistent_comma
|
983
1305
|
- no_comma
|
@@ -988,15 +1310,15 @@ Style/TrailingCommaInLiteral:
|
|
988
1310
|
# If `consistent_comma`, the cop requires a comma after the last item of all
|
989
1311
|
# non-empty array and hash literals.
|
990
1312
|
EnforcedStyleForMultiline: no_comma
|
991
|
-
|
1313
|
+
SupportedStylesForMultiline:
|
992
1314
|
- comma
|
993
1315
|
- consistent_comma
|
994
1316
|
- no_comma
|
995
1317
|
|
996
|
-
# TrivialAccessors requires exact name matches and doesn't allow
|
1318
|
+
# `TrivialAccessors` requires exact name matches and doesn't allow
|
997
1319
|
# predicated methods by default.
|
998
1320
|
Style/TrivialAccessors:
|
999
|
-
# When set to false the cop will suggest the use of accessor methods
|
1321
|
+
# When set to `false` the cop will suggest the use of accessor methods
|
1000
1322
|
# in situations like:
|
1001
1323
|
#
|
1002
1324
|
# def name
|
@@ -1035,16 +1357,7 @@ Style/TrivialAccessors:
|
|
1035
1357
|
- to_s
|
1036
1358
|
- to_sym
|
1037
1359
|
|
1038
|
-
|
1039
|
-
EnforcedStyle: snake_case
|
1040
|
-
SupportedStyles:
|
1041
|
-
- snake_case
|
1042
|
-
- camelCase
|
1043
|
-
|
1044
|
-
Style/WhileUntilModifier:
|
1045
|
-
MaxLineLength: 80
|
1046
|
-
|
1047
|
-
# WordArray enforces how array literals of word-like strings should be expressed.
|
1360
|
+
# `WordArray` enforces how array literals of word-like strings should be expressed.
|
1048
1361
|
Style/WordArray:
|
1049
1362
|
EnforcedStyle: percent
|
1050
1363
|
SupportedStyles:
|
@@ -1052,31 +1365,41 @@ Style/WordArray:
|
|
1052
1365
|
- percent
|
1053
1366
|
# bracket style: ['word1', 'word2']
|
1054
1367
|
- brackets
|
1055
|
-
# The MinSize option causes the WordArray rule to be ignored for arrays
|
1368
|
+
# The `MinSize` option causes the `WordArray` rule to be ignored for arrays
|
1056
1369
|
# smaller than a certain size. The rule is only applied to arrays
|
1057
|
-
# whose element count is greater than or equal to MinSize
|
1370
|
+
# whose element count is greater than or equal to `MinSize`.
|
1058
1371
|
MinSize: 0
|
1059
|
-
# The regular expression WordRegex decides what is considered a word.
|
1372
|
+
# The regular expression `WordRegex` decides what is considered a word.
|
1060
1373
|
WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'
|
1061
1374
|
|
1062
|
-
|
1375
|
+
Style/YodaCondition:
|
1376
|
+
EnforcedStyle: all_comparison_operators
|
1377
|
+
SupportedStyles:
|
1378
|
+
# check all comparison operators
|
1379
|
+
- all_comparison_operators
|
1380
|
+
# check only equality operators: `!=` and `==`
|
1381
|
+
- equality_operators_only
|
1382
|
+
|
1383
|
+
#################### Metrics ###############################
|
1063
1384
|
|
1064
1385
|
Metrics/AbcSize:
|
1065
|
-
# The ABC size is a calculated magnitude, so this number can be
|
1386
|
+
# The ABC size is a calculated magnitude, so this number can be an Integer or
|
1066
1387
|
# a Float.
|
1067
1388
|
Max: 15
|
1068
1389
|
|
1390
|
+
Metrics/BlockLength:
|
1391
|
+
CountComments: false # count full line comments?
|
1392
|
+
Max: 25
|
1393
|
+
ExcludedMethods: []
|
1394
|
+
|
1069
1395
|
Metrics/BlockNesting:
|
1396
|
+
CountBlocks: false
|
1070
1397
|
Max: 3
|
1071
1398
|
|
1072
1399
|
Metrics/ClassLength:
|
1073
1400
|
CountComments: false # count full line comments?
|
1074
1401
|
Max: 100
|
1075
1402
|
|
1076
|
-
Metrics/ModuleLength:
|
1077
|
-
CountComments: false # count full line comments?
|
1078
|
-
Max: 100
|
1079
|
-
|
1080
1403
|
# Avoid complex methods.
|
1081
1404
|
Metrics/CyclomaticComplexity:
|
1082
1405
|
Max: 6
|
@@ -1090,11 +1413,22 @@ Metrics/LineLength:
|
|
1090
1413
|
URISchemes:
|
1091
1414
|
- http
|
1092
1415
|
- https
|
1416
|
+
# The IgnoreCopDirectives option causes the LineLength rule to ignore cop
|
1417
|
+
# directives like '# rubocop: enable ...' when calculating a line's length.
|
1418
|
+
IgnoreCopDirectives: false
|
1419
|
+
# The IgnoredPatterns option is a list of !ruby/regexp and/or string
|
1420
|
+
# elements. Strings will be converted to Regexp objects. A line that matches
|
1421
|
+
# any regular expression listed in this option will be ignored by LineLength.
|
1422
|
+
IgnoredPatterns: []
|
1093
1423
|
|
1094
1424
|
Metrics/MethodLength:
|
1095
1425
|
CountComments: false # count full line comments?
|
1096
1426
|
Max: 10
|
1097
1427
|
|
1428
|
+
Metrics/ModuleLength:
|
1429
|
+
CountComments: false # count full line comments?
|
1430
|
+
Max: 100
|
1431
|
+
|
1098
1432
|
Metrics/ParameterLists:
|
1099
1433
|
Max: 5
|
1100
1434
|
CountKeywordArgs: true
|
@@ -1102,7 +1436,7 @@ Metrics/ParameterLists:
|
|
1102
1436
|
Metrics/PerceivedComplexity:
|
1103
1437
|
Max: 7
|
1104
1438
|
|
1105
|
-
|
1439
|
+
#################### Lint ##################################
|
1106
1440
|
|
1107
1441
|
# Allow safe assignment in conditions.
|
1108
1442
|
Lint/AssignmentInCondition:
|
@@ -1115,39 +1449,39 @@ Lint/BlockAlignment:
|
|
1115
1449
|
# The value `start_of_line` means it should be aligned with the whole
|
1116
1450
|
# expression's starting line.
|
1117
1451
|
# The value `either` means both are allowed.
|
1118
|
-
|
1119
|
-
|
1452
|
+
EnforcedStyleAlignWith: either
|
1453
|
+
SupportedStylesAlignWith:
|
1120
1454
|
- either
|
1121
1455
|
- start_of_block
|
1122
1456
|
- start_of_line
|
1123
1457
|
|
1458
|
+
Lint/DefEndAlignment:
|
1459
|
+
# The value `def` means that `end` should be aligned with the def keyword.
|
1460
|
+
# The value `start_of_line` means that `end` should be aligned with method
|
1461
|
+
# calls like `private`, `public`, etc, if present in front of the `def`
|
1462
|
+
# keyword on the same line.
|
1463
|
+
EnforcedStyleAlignWith: start_of_line
|
1464
|
+
SupportedStylesAlignWith:
|
1465
|
+
- start_of_line
|
1466
|
+
- def
|
1467
|
+
AutoCorrect: false
|
1468
|
+
|
1124
1469
|
# Align ends correctly.
|
1125
1470
|
Lint/EndAlignment:
|
1126
1471
|
# The value `keyword` means that `end` should be aligned with the matching
|
1127
|
-
# keyword (if
|
1472
|
+
# keyword (`if`, `while`, etc.).
|
1128
1473
|
# The value `variable` means that in assignments, `end` should be aligned
|
1129
1474
|
# with the start of the variable on the left hand side of `=`. In all other
|
1130
1475
|
# situations, `end` should still be aligned with the keyword.
|
1131
1476
|
# The value `start_of_line` means that `end` should be aligned with the start
|
1132
1477
|
# of the line which the matching keyword appears on.
|
1133
|
-
|
1134
|
-
|
1478
|
+
EnforcedStyleAlignWith: keyword
|
1479
|
+
SupportedStylesAlignWith:
|
1135
1480
|
- keyword
|
1136
1481
|
- variable
|
1137
1482
|
- start_of_line
|
1138
1483
|
AutoCorrect: false
|
1139
1484
|
|
1140
|
-
Lint/DefEndAlignment:
|
1141
|
-
# The value `def` means that `end` should be aligned with the def keyword.
|
1142
|
-
# The value `start_of_line` means that `end` should be aligned with method
|
1143
|
-
# calls like `private`, `public`, etc, if present in front of the `def`
|
1144
|
-
# keyword on the same line.
|
1145
|
-
AlignWith: start_of_line
|
1146
|
-
SupportedStyles:
|
1147
|
-
- start_of_line
|
1148
|
-
- def
|
1149
|
-
AutoCorrect: false
|
1150
|
-
|
1151
1485
|
Lint/InheritException:
|
1152
1486
|
# The default base class in favour of `Exception`.
|
1153
1487
|
EnforcedStyle: runtime_error
|
@@ -1155,6 +1489,27 @@ Lint/InheritException:
|
|
1155
1489
|
- runtime_error
|
1156
1490
|
- standard_error
|
1157
1491
|
|
1492
|
+
Lint/MissingCopEnableDirective:
|
1493
|
+
# Maximum number of consecutive lines the cop can be disabled for.
|
1494
|
+
# 0 allows only single-line disables
|
1495
|
+
# 1 would mean the maximum allowed is the following:
|
1496
|
+
# # rubocop:disable SomeCop
|
1497
|
+
# a = 1
|
1498
|
+
# # rubocop:enable SomeCop
|
1499
|
+
# .inf for any size
|
1500
|
+
MaximumRangeSize: .inf
|
1501
|
+
|
1502
|
+
Lint/SafeNavigationChain:
|
1503
|
+
Whitelist:
|
1504
|
+
- present?
|
1505
|
+
- blank?
|
1506
|
+
- presence
|
1507
|
+
- try
|
1508
|
+
|
1509
|
+
# Checks for shadowed arguments
|
1510
|
+
Lint/ShadowedArgument:
|
1511
|
+
IgnoreImplicitReferences: false
|
1512
|
+
|
1158
1513
|
# Checks for unused block arguments
|
1159
1514
|
Lint/UnusedBlockArgument:
|
1160
1515
|
IgnoreEmptyBlocks: true
|
@@ -1165,13 +1520,18 @@ Lint/UnusedMethodArgument:
|
|
1165
1520
|
AllowUnusedKeywordArguments: false
|
1166
1521
|
IgnoreEmptyMethods: true
|
1167
1522
|
|
1168
|
-
|
1523
|
+
#################### Performance ###########################
|
1524
|
+
|
1525
|
+
Performance/DoubleStartEndWith:
|
1526
|
+
# Used to check for `starts_with?` and `ends_with?`.
|
1527
|
+
# These methods are defined by `ActiveSupport`.
|
1528
|
+
IncludeActiveSupportAliases: false
|
1169
1529
|
|
1170
1530
|
Performance/RedundantMerge:
|
1171
1531
|
# Max number of key-value pairs to consider an offense
|
1172
1532
|
MaxKeyValuePairs: 2
|
1173
1533
|
|
1174
|
-
|
1534
|
+
#################### Rails #################################
|
1175
1535
|
|
1176
1536
|
Rails/ActionFilter:
|
1177
1537
|
EnforcedStyle: action
|
@@ -1181,6 +1541,10 @@ Rails/ActionFilter:
|
|
1181
1541
|
Include:
|
1182
1542
|
- app/controllers/**/*.rb
|
1183
1543
|
|
1544
|
+
Rails/CreateTableWithTimestamps:
|
1545
|
+
Include:
|
1546
|
+
- db/migrate/*.rb
|
1547
|
+
|
1184
1548
|
Rails/Date:
|
1185
1549
|
# The value `strict` disallows usage of `Date.today`, `Date.current`,
|
1186
1550
|
# `Date#to_time` etc.
|
@@ -1192,6 +1556,20 @@ Rails/Date:
|
|
1192
1556
|
- strict
|
1193
1557
|
- flexible
|
1194
1558
|
|
1559
|
+
Rails/Delegate:
|
1560
|
+
# When set to true, using the target object as a prefix of the
|
1561
|
+
# method name without using the `delegate` method will be a
|
1562
|
+
# violation. When set to false, this case is legal.
|
1563
|
+
EnforceForPrefixed: true
|
1564
|
+
|
1565
|
+
Rails/DynamicFindBy:
|
1566
|
+
Whitelist:
|
1567
|
+
- find_by_sql
|
1568
|
+
|
1569
|
+
Rails/EnumUniqueness:
|
1570
|
+
Include:
|
1571
|
+
- app/models/**/*.rb
|
1572
|
+
|
1195
1573
|
Rails/Exit:
|
1196
1574
|
Include:
|
1197
1575
|
- app/**/*.rb
|
@@ -1212,6 +1590,22 @@ Rails/HasAndBelongsToMany:
|
|
1212
1590
|
Include:
|
1213
1591
|
- app/models/**/*.rb
|
1214
1592
|
|
1593
|
+
Rails/HasManyOrHasOneDependent:
|
1594
|
+
Include:
|
1595
|
+
- app/models/**/*.rb
|
1596
|
+
|
1597
|
+
Rails/InverseOf:
|
1598
|
+
Include:
|
1599
|
+
- app/models/**/*.rb
|
1600
|
+
|
1601
|
+
Rails/LexicallyScopedActionFilter:
|
1602
|
+
Include:
|
1603
|
+
- app/controllers/**/*.rb
|
1604
|
+
|
1605
|
+
Rails/NotNullColumn:
|
1606
|
+
Include:
|
1607
|
+
- db/migrate/*.rb
|
1608
|
+
|
1215
1609
|
Rails/Output:
|
1216
1610
|
Include:
|
1217
1611
|
- app/**/*.rb
|
@@ -1229,6 +1623,17 @@ Rails/RequestReferer:
|
|
1229
1623
|
- referer
|
1230
1624
|
- referrer
|
1231
1625
|
|
1626
|
+
Rails/ReversibleMigration:
|
1627
|
+
Include:
|
1628
|
+
- db/migrate/*.rb
|
1629
|
+
|
1630
|
+
Rails/SafeNavigation:
|
1631
|
+
# This will convert usages of `try` to use safe navigation as well as `try!`.
|
1632
|
+
# `try` and `try!` work slightly differently. `try!` and safe navigation will
|
1633
|
+
# both raise a `NoMethodError` if the receiver of the method call does not
|
1634
|
+
# implement the intended method. `try` will not raise an exception for this.
|
1635
|
+
ConvertTry: false
|
1636
|
+
|
1232
1637
|
Rails/ScopeArgs:
|
1233
1638
|
Include:
|
1234
1639
|
- app/models/**/*.rb
|
@@ -1242,12 +1647,38 @@ Rails/TimeZone:
|
|
1242
1647
|
- flexible
|
1243
1648
|
|
1244
1649
|
Rails/UniqBeforePluck:
|
1245
|
-
|
1246
|
-
|
1650
|
+
EnforcedStyle: conservative
|
1651
|
+
SupportedStyles:
|
1247
1652
|
- conservative
|
1248
1653
|
- aggressive
|
1249
1654
|
AutoCorrect: false
|
1250
1655
|
|
1656
|
+
Rails/UnknownEnv:
|
1657
|
+
Environments:
|
1658
|
+
- development
|
1659
|
+
- test
|
1660
|
+
- production
|
1661
|
+
|
1662
|
+
Rails/SkipsModelValidations:
|
1663
|
+
Blacklist:
|
1664
|
+
- decrement!
|
1665
|
+
- decrement_counter
|
1666
|
+
- increment!
|
1667
|
+
- increment_counter
|
1668
|
+
- toggle!
|
1669
|
+
- touch
|
1670
|
+
- update_all
|
1671
|
+
- update_attribute
|
1672
|
+
- update_column
|
1673
|
+
- update_columns
|
1674
|
+
- update_counters
|
1675
|
+
|
1251
1676
|
Rails/Validation:
|
1252
1677
|
Include:
|
1253
1678
|
- app/models/**/*.rb
|
1679
|
+
|
1680
|
+
Bundler/OrderedGems:
|
1681
|
+
TreatCommentsAsGroupSeparators: true
|
1682
|
+
|
1683
|
+
Gemspec/OrderedDependencies:
|
1684
|
+
TreatCommentsAsGroupSeparators: true
|