rubocop 0.18.1 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rubocop might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/CHANGELOG.md +65 -1
- data/Gemfile +0 -3
- data/LICENSE.txt +1 -1
- data/README.md +179 -77
- data/Rakefile +8 -0
- data/config/default.yml +151 -14
- data/config/enabled.yml +65 -8
- data/lib/rubocop.rb +19 -4
- data/lib/rubocop/cli.rb +2 -1
- data/lib/rubocop/comment_config.rb +97 -0
- data/lib/rubocop/config.rb +1 -1
- data/lib/rubocop/config_loader.rb +3 -2
- data/lib/rubocop/config_store.rb +6 -2
- data/lib/rubocop/cop/commissioner.rb +2 -2
- data/lib/rubocop/cop/cop.rb +22 -26
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +2 -2
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -1
- data/lib/rubocop/cop/lint/block_alignment.rb +6 -6
- data/lib/rubocop/cop/lint/condition_position.rb +1 -1
- data/lib/rubocop/cop/lint/debugger.rb +1 -1
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +60 -0
- data/lib/rubocop/cop/lint/else_layout.rb +1 -1
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
- data/lib/rubocop/cop/lint/end_alignment.rb +14 -12
- data/lib/rubocop/cop/lint/end_in_method.rb +1 -1
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
- data/lib/rubocop/cop/lint/eval.rb +1 -1
- data/lib/rubocop/cop/lint/handle_exceptions.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_condition.rb +13 -2
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +28 -0
- data/lib/rubocop/cop/lint/loop.rb +4 -4
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -1
- data/lib/rubocop/cop/lint/require_parentheses.rb +6 -6
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +2 -2
- data/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +30 -0
- data/lib/rubocop/cop/lint/syntax.rb +5 -5
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/useless_assignment.rb +5 -5
- data/lib/rubocop/cop/lint/useless_comparison.rb +1 -1
- data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
- data/lib/rubocop/cop/lint/void.rb +5 -5
- data/lib/rubocop/cop/mixin/autocorrect_alignment.rb +8 -5
- data/lib/rubocop/cop/mixin/code_length.rb +2 -2
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +7 -7
- data/lib/rubocop/cop/mixin/configurable_max.rb +1 -1
- data/lib/rubocop/cop/mixin/configurable_naming.rb +1 -1
- data/lib/rubocop/cop/mixin/if_then_else.rb +1 -1
- data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -1
- data/lib/rubocop/cop/mixin/parser_diagnostic.rb +2 -2
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +3 -2
- data/lib/rubocop/cop/mixin/space_inside.rb +1 -1
- data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -0
- data/lib/rubocop/cop/mixin/string_help.rb +4 -4
- data/lib/rubocop/cop/{offence.rb → offense.rb} +7 -7
- data/lib/rubocop/cop/rails/action_filter.rb +73 -0
- data/lib/rubocop/cop/rails/default_scope.rb +1 -1
- data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +1 -1
- data/lib/rubocop/cop/rails/output.rb +1 -10
- data/lib/rubocop/cop/rails/read_attribute.rb +1 -1
- data/lib/rubocop/cop/rails/scope_args.rb +33 -0
- data/lib/rubocop/cop/rails/validation.rb +1 -1
- data/lib/rubocop/cop/style/access_modifier_indentation.rb +1 -1
- data/lib/rubocop/cop/style/accessor_method_name.rb +2 -2
- data/lib/rubocop/cop/style/alias.rb +2 -2
- data/lib/rubocop/cop/style/align_array.rb +1 -1
- data/lib/rubocop/cop/style/align_hash.rb +29 -2
- data/lib/rubocop/cop/style/align_parameters.rb +16 -2
- data/lib/rubocop/cop/style/and_or.rb +2 -2
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/ascii_identifiers.rb +1 -1
- data/lib/rubocop/cop/style/attr.rb +1 -1
- data/lib/rubocop/cop/style/begin_block.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +1 -1
- data/lib/rubocop/cop/style/block_nesting.rb +1 -1
- data/lib/rubocop/cop/style/blocks.rb +2 -2
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +2 -2
- data/lib/rubocop/cop/style/case_equality.rb +1 -1
- data/lib/rubocop/cop/style/case_indentation.rb +2 -2
- data/lib/rubocop/cop/style/character_literal.rb +2 -2
- data/lib/rubocop/cop/style/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/style/class_and_module_children.rb +69 -0
- data/lib/rubocop/cop/style/class_methods.rb +1 -1
- data/lib/rubocop/cop/style/class_vars.rb +3 -3
- data/lib/rubocop/cop/style/collection_methods.rb +4 -4
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
- data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
- data/lib/rubocop/cop/style/constant_name.rb +1 -1
- data/lib/rubocop/cop/style/cyclomatic_complexity.rb +2 -2
- data/lib/rubocop/cop/style/def_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/documentation.rb +1 -1
- data/lib/rubocop/cop/style/dot_position.rb +10 -11
- data/lib/rubocop/cop/style/double_negation.rb +40 -0
- data/lib/rubocop/cop/style/empty_line_between_defs.rb +8 -1
- data/lib/rubocop/cop/style/empty_lines.rb +3 -2
- data/lib/rubocop/cop/style/empty_lines_around_access_modifier.rb +1 -1
- data/lib/rubocop/cop/style/empty_lines_around_body.rb +1 -1
- data/lib/rubocop/cop/style/empty_literal.rb +3 -3
- data/lib/rubocop/cop/style/encoding.rb +1 -1
- data/lib/rubocop/cop/style/end_block.rb +1 -1
- data/lib/rubocop/cop/style/end_of_line.rb +2 -2
- data/lib/rubocop/cop/style/even_odd.rb +2 -2
- data/lib/rubocop/cop/style/favor_join.rb +1 -1
- data/lib/rubocop/cop/style/file_name.rb +29 -0
- data/lib/rubocop/cop/style/final_newline.rb +1 -1
- data/lib/rubocop/cop/style/flip_flop.rb +2 -2
- data/lib/rubocop/cop/style/for.rb +2 -2
- data/lib/rubocop/cop/style/format_string.rb +66 -0
- data/lib/rubocop/cop/style/global_vars.rb +2 -2
- data/lib/rubocop/cop/style/hash_methods.rb +1 -1
- data/lib/rubocop/cop/style/hash_syntax.rb +3 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +2 -1
- data/lib/rubocop/cop/style/indent_array.rb +41 -0
- data/lib/rubocop/cop/style/indent_hash.rb +119 -0
- data/lib/rubocop/cop/style/indentation_consistency.rb +3 -11
- data/lib/rubocop/cop/style/indentation_width.rb +44 -23
- data/lib/rubocop/cop/style/lambda.rb +2 -2
- data/lib/rubocop/cop/style/lambda_call.rb +3 -3
- data/lib/rubocop/cop/style/leading_comment_space.rb +1 -1
- data/lib/rubocop/cop/style/line_end_concatenation.rb +7 -3
- data/lib/rubocop/cop/style/line_length.rb +2 -2
- data/lib/rubocop/cop/style/method_call_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -2
- data/lib/rubocop/cop/style/method_def_parentheses.rb +9 -7
- data/lib/rubocop/cop/style/module_function.rb +1 -1
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
- data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -1
- data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -2
- data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
- data/lib/rubocop/cop/style/not.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literals.rb +5 -5
- data/lib/rubocop/cop/style/op_method.rb +2 -2
- data/lib/rubocop/cop/style/parameter_lists.rb +1 -1
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +5 -4
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +143 -0
- data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
- data/lib/rubocop/cop/style/predicate_name.rb +1 -1
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +2 -2
- data/lib/rubocop/cop/style/redundant_begin.rb +1 -1
- data/lib/rubocop/cop/style/redundant_exception.rb +1 -1
- data/lib/rubocop/cop/style/redundant_return.rb +1 -1
- data/lib/rubocop/cop/style/redundant_self.rb +2 -2
- data/lib/rubocop/cop/style/regexp_literal.rb +45 -19
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
- data/lib/rubocop/cop/style/self_assignment.rb +73 -0
- data/lib/rubocop/cop/style/semicolon.rb +12 -8
- data/lib/rubocop/cop/style/signal_exception.rb +2 -2
- data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
- data/lib/rubocop/cop/style/single_line_methods.rb +38 -1
- data/lib/rubocop/cop/style/space_after_colon.rb +3 -3
- data/lib/rubocop/cop/style/space_after_comma.rb +1 -1
- data/lib/rubocop/cop/style/space_after_control_keyword.rb +1 -1
- data/lib/rubocop/cop/style/space_after_method_name.rb +11 -3
- data/lib/rubocop/cop/style/space_after_not.rb +1 -1
- data/lib/rubocop/cop/style/space_after_semicolon.rb +1 -1
- data/lib/rubocop/cop/style/space_around_equals_in_parameter_default.rb +41 -6
- data/lib/rubocop/cop/style/space_around_operators.rb +4 -4
- data/lib/rubocop/cop/style/space_before_block_braces.rb +63 -0
- data/lib/rubocop/cop/style/space_before_modifier_keyword.rb +1 -1
- data/lib/rubocop/cop/style/{space_around_block_braces.rb → space_inside_block_braces.rb} +15 -24
- data/lib/rubocop/cop/style/space_inside_hash_literal_braces.rb +14 -7
- data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
- data/lib/rubocop/cop/style/string_literals.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +1 -1
- data/lib/rubocop/cop/style/tab.rb +1 -1
- data/lib/rubocop/cop/style/trailing_blank_lines.rb +2 -2
- data/lib/rubocop/cop/style/trailing_comma.rb +4 -4
- data/lib/rubocop/cop/style/trailing_whitespace.rb +1 -1
- data/lib/rubocop/cop/style/trivial_accessors.rb +2 -2
- data/lib/rubocop/cop/style/unless_else.rb +1 -1
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +1 -1
- data/lib/rubocop/cop/style/while_until_do.rb +1 -1
- data/lib/rubocop/cop/style/while_until_modifier.rb +2 -1
- data/lib/rubocop/cop/style/word_array.rb +2 -2
- data/lib/rubocop/cop/team.rb +24 -7
- data/lib/rubocop/cop/util.rb +3 -3
- data/lib/rubocop/cop/variable_inspector.rb +25 -13
- data/lib/rubocop/cop/variable_inspector/assignment.rb +1 -1
- data/lib/rubocop/cop/variable_inspector/reference.rb +1 -1
- data/lib/rubocop/cop/variable_inspector/scope.rb +1 -1
- data/lib/rubocop/cop/variable_inspector/variable.rb +2 -2
- data/lib/rubocop/cop/variable_inspector/variable_table.rb +1 -1
- data/lib/rubocop/file_inspector.rb +12 -13
- data/lib/rubocop/formatter/base_formatter.rb +4 -4
- data/lib/rubocop/formatter/clang_style_formatter.rb +2 -2
- data/lib/rubocop/formatter/disabled_config_formatter.rb +12 -12
- data/lib/rubocop/formatter/emacs_style_formatter.rb +3 -2
- data/lib/rubocop/formatter/file_list_formatter.rb +4 -4
- data/lib/rubocop/formatter/formatter_set.rb +2 -1
- data/lib/rubocop/formatter/fuubar_style_formatter.rb +76 -0
- data/lib/rubocop/formatter/json_formatter.rb +17 -16
- data/lib/rubocop/formatter/offense_count_formatter.rb +54 -0
- data/lib/rubocop/formatter/progress_formatter.rb +16 -16
- data/lib/rubocop/formatter/simple_text_formatter.rb +25 -25
- data/lib/rubocop/options.rb +8 -7
- data/lib/rubocop/processed_source.rb +3 -2
- data/lib/rubocop/source_parser.rb +1 -59
- data/lib/rubocop/version.rb +3 -3
- data/relnotes/0.19.0.md +70 -0
- data/rubocop-todo.yml +6 -6
- data/rubocop.gemspec +2 -1
- data/spec/rubocop/cli_spec.rb +431 -268
- data/spec/rubocop/comment_config_spec.rb +103 -0
- data/spec/rubocop/config_loader_spec.rb +4 -4
- data/spec/rubocop/cop/commissioner_spec.rb +7 -7
- data/spec/rubocop/cop/cop_spec.rb +17 -17
- data/spec/rubocop/cop/lint/ambiguous_operator_spec.rb +16 -16
- data/spec/rubocop/cop/lint/ambiguous_regexp_literal_spec.rb +5 -5
- data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +19 -19
- data/spec/rubocop/cop/lint/block_alignment_spec.rb +52 -52
- data/spec/rubocop/cop/lint/condition_position_spec.rb +7 -7
- data/spec/rubocop/cop/lint/debugger_spec.rb +10 -10
- data/spec/rubocop/cop/lint/deprecated_class_methods_spec.rb +33 -0
- data/spec/rubocop/cop/lint/else_layout_spec.rb +7 -7
- data/spec/rubocop/cop/lint/empty_ensure_spec.rb +4 -4
- data/spec/rubocop/cop/lint/end_alignment_spec.rb +33 -34
- data/spec/rubocop/cop/lint/end_in_method_spec.rb +5 -5
- data/spec/rubocop/cop/lint/ensure_return_spec.rb +4 -4
- data/spec/rubocop/cop/lint/eval_spec.rb +8 -8
- data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +4 -4
- data/spec/rubocop/cop/lint/invalid_character_literal_spec.rb +3 -3
- data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +65 -10
- data/spec/rubocop/cop/lint/literal_in_interpolation_spec.rb +21 -0
- data/spec/rubocop/cop/lint/loop_spec.rb +6 -6
- data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +14 -14
- data/spec/rubocop/cop/lint/require_parentheses_spec.rb +15 -15
- data/spec/rubocop/cop/lint/rescue_exception_spec.rb +21 -21
- data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +16 -16
- data/spec/rubocop/cop/lint/string_conversion_in_interpolation_spec.rb +27 -0
- data/spec/rubocop/cop/lint/syntax_spec.rb +11 -11
- data/spec/rubocop/cop/lint/unreachable_code_spec.rb +8 -8
- data/spec/rubocop/cop/lint/useless_assignment_spec.rb +207 -169
- data/spec/rubocop/cop/lint/useless_comparison_spec.rb +5 -5
- data/spec/rubocop/cop/lint/useless_else_without_rescue_spec.rb +4 -4
- data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +17 -17
- data/spec/rubocop/cop/lint/void_spec.rb +8 -8
- data/spec/rubocop/cop/{offence_spec.rb → offense_spec.rb} +17 -17
- data/spec/rubocop/cop/rails/action_filter_spec.rb +69 -0
- data/spec/rubocop/cop/rails/default_scope_spec.rb +9 -9
- data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +2 -2
- data/spec/rubocop/cop/rails/output_spec.rb +8 -18
- data/spec/rubocop/cop/rails/read_attribute_spec.rb +2 -2
- data/spec/rubocop/cop/rails/scope_args_spec.rb +25 -0
- data/spec/rubocop/cop/rails/validation_spec.rb +3 -3
- data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +38 -38
- data/spec/rubocop/cop/style/accessor_method_name_spec.rb +14 -14
- data/spec/rubocop/cop/style/alias_spec.rb +11 -11
- data/spec/rubocop/cop/style/align_array_spec.rb +23 -7
- data/spec/rubocop/cop/style/align_hash_spec.rb +111 -30
- data/spec/rubocop/cop/style/align_parameters_spec.rb +260 -187
- data/spec/rubocop/cop/style/and_or_spec.rb +6 -6
- data/spec/rubocop/cop/style/ascii_comments_spec.rb +3 -3
- data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +5 -5
- data/spec/rubocop/cop/style/attr_spec.rb +2 -2
- data/spec/rubocop/cop/style/begin_block_spec.rb +2 -2
- data/spec/rubocop/cop/style/block_comments_spec.rb +3 -3
- data/spec/rubocop/cop/style/block_nesting_spec.rb +26 -26
- data/spec/rubocop/cop/style/blocks_spec.rb +8 -8
- data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +8 -8
- data/spec/rubocop/cop/style/case_equality_spec.rb +2 -2
- data/spec/rubocop/cop/style/case_indentation_spec.rb +21 -21
- data/spec/rubocop/cop/style/character_literal_spec.rb +6 -6
- data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +4 -4
- data/spec/rubocop/cop/style/class_and_module_children_spec.rb +129 -0
- data/spec/rubocop/cop/style/class_length_spec.rb +9 -9
- data/spec/rubocop/cop/style/class_methods_spec.rb +8 -8
- data/spec/rubocop/cop/style/class_vars_spec.rb +4 -4
- data/spec/rubocop/cop/style/collection_methods_spec.rb +6 -6
- data/spec/rubocop/cop/style/colon_method_call_spec.rb +16 -16
- data/spec/rubocop/cop/style/comment_annotation_spec.rb +16 -16
- data/spec/rubocop/cop/style/constant_name_spec.rb +12 -12
- data/spec/rubocop/cop/style/cyclomatic_complexity_spec.rb +16 -16
- data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +6 -6
- data/spec/rubocop/cop/style/documentation_spec.rb +14 -14
- data/spec/rubocop/cop/style/dot_position_spec.rb +23 -26
- data/spec/rubocop/cop/style/double_negation_spec.rb +22 -0
- data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +22 -14
- data/spec/rubocop/cop/style/empty_lines_around_access_modifier_spec.rb +4 -4
- data/spec/rubocop/cop/style/empty_lines_around_body_spec.rb +20 -20
- data/spec/rubocop/cop/style/empty_lines_spec.rb +17 -6
- data/spec/rubocop/cop/style/empty_literal_spec.rb +20 -20
- data/spec/rubocop/cop/style/encoding_spec.rb +5 -5
- data/spec/rubocop/cop/style/end_block_spec.rb +2 -2
- data/spec/rubocop/cop/style/end_of_line_spec.rb +4 -4
- data/spec/rubocop/cop/style/even_odd_spec.rb +18 -18
- data/spec/rubocop/cop/style/favor_join_spec.rb +7 -7
- data/spec/rubocop/cop/style/favor_unless_over_negated_if_spec.rb +7 -7
- data/spec/rubocop/cop/style/favor_until_over_negated_while_spec.rb +3 -3
- data/spec/rubocop/cop/style/file_name_spec.rb +71 -0
- data/spec/rubocop/cop/style/final_newline_spec.rb +4 -4
- data/spec/rubocop/cop/style/flip_flop_spec.rb +4 -4
- data/spec/rubocop/cop/style/for_spec.rb +13 -13
- data/spec/rubocop/cop/style/format_string_spec.rb +136 -0
- data/spec/rubocop/cop/style/global_vars_spec.rb +7 -7
- data/spec/rubocop/cop/style/hash_methods_spec.rb +6 -6
- data/spec/rubocop/cop/style/hash_syntax_spec.rb +11 -11
- data/spec/rubocop/cop/style/if_unless_modifier_spec.rb +29 -11
- data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +1 -1
- data/spec/rubocop/cop/style/indent_array_spec.rb +136 -0
- data/spec/rubocop/cop/style/indent_hash_spec.rb +238 -0
- data/spec/rubocop/cop/style/indentation_consistency_spec.rb +69 -49
- data/spec/rubocop/cop/style/indentation_width_spec.rb +264 -128
- data/spec/rubocop/cop/style/lambda_call_spec.rb +14 -14
- data/spec/rubocop/cop/style/lambda_spec.rb +7 -7
- data/spec/rubocop/cop/style/leading_comment_space_spec.rb +15 -15
- data/spec/rubocop/cop/style/line_end_concatenation_spec.rb +11 -4
- data/spec/rubocop/cop/style/line_length_spec.rb +5 -5
- data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +5 -5
- data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +9 -9
- data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +19 -19
- data/spec/rubocop/cop/style/method_length_spec.rb +17 -17
- data/spec/rubocop/cop/style/method_name_spec.rb +21 -21
- data/spec/rubocop/cop/style/module_function_spec.rb +3 -3
- data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +13 -13
- data/spec/rubocop/cop/style/multiline_if_then_spec.rb +10 -10
- data/spec/rubocop/cop/style/multiline_ternary_operator_spec.rb +3 -3
- data/spec/rubocop/cop/style/nested_ternary_operator_spec.rb +3 -3
- data/spec/rubocop/cop/style/nil_comparison_spec.rb +7 -7
- data/spec/rubocop/cop/style/not_spec.rb +6 -11
- data/spec/rubocop/cop/style/numeric_literals_spec.rb +8 -8
- data/spec/rubocop/cop/style/one_line_conditional_spec.rb +1 -1
- data/spec/rubocop/cop/style/op_method_spec.rb +13 -13
- data/spec/rubocop/cop/style/parameter_lists_spec.rb +6 -6
- data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +11 -10
- data/spec/rubocop/cop/style/percent_literal_delimiters_spec.rb +250 -0
- data/spec/rubocop/cop/style/perl_backrefs_spec.rb +2 -2
- data/spec/rubocop/cop/style/predicate_name_spec.rb +3 -3
- data/spec/rubocop/cop/style/proc_spec.rb +4 -4
- data/spec/rubocop/cop/style/raise_args_spec.rb +20 -20
- data/spec/rubocop/cop/style/redundant_begin_spec.rb +6 -6
- data/spec/rubocop/cop/style/redundant_exception_spec.rb +6 -6
- data/spec/rubocop/cop/style/redundant_return_spec.rb +22 -22
- data/spec/rubocop/cop/style/redundant_self_spec.rb +14 -14
- data/spec/rubocop/cop/style/regexp_literal_spec.rb +88 -67
- data/spec/rubocop/cop/style/rescue_modifier_spec.rb +17 -17
- data/spec/rubocop/cop/style/self_assignment_spec.rb +43 -0
- data/spec/rubocop/cop/style/semicolon_spec.rb +31 -17
- data/spec/rubocop/cop/style/signal_exception_spec.rb +29 -29
- data/spec/rubocop/cop/style/single_line_block_params_spec.rb +6 -6
- data/spec/rubocop/cop/style/single_line_methods_spec.rb +44 -6
- data/spec/rubocop/cop/style/space_after_colon_spec.rb +1 -1
- data/spec/rubocop/cop/style/space_after_comma_spec.rb +3 -3
- data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +12 -12
- data/spec/rubocop/cop/style/space_after_method_name_spec.rb +8 -8
- data/spec/rubocop/cop/style/space_after_not_spec.rb +3 -3
- data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +1 -1
- data/spec/rubocop/cop/style/space_around_equals_in_parameter_default_spec.rb +63 -21
- data/spec/rubocop/cop/style/space_around_operators_spec.rb +24 -24
- data/spec/rubocop/cop/style/space_before_block_braces_spec.rb +72 -0
- data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +4 -4
- data/spec/rubocop/cop/style/{space_around_block_braces_spec.rb → space_inside_block_braces_spec.rb} +39 -41
- data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +1 -1
- data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +15 -15
- data/spec/rubocop/cop/style/space_inside_parens_spec.rb +1 -1
- data/spec/rubocop/cop/style/special_global_vars_spec.rb +10 -10
- data/spec/rubocop/cop/style/string_literals_spec.rb +31 -31
- data/spec/rubocop/cop/style/symbol_array_spec.rb +9 -9
- data/spec/rubocop/cop/style/tab_spec.rb +3 -3
- data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +3 -3
- data/spec/rubocop/cop/style/trailing_comma_spec.rb +32 -32
- data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +5 -5
- data/spec/rubocop/cop/style/trivial_accessors_spec.rb +39 -39
- data/spec/rubocop/cop/style/unless_else_spec.rb +1 -1
- data/spec/rubocop/cop/style/variable_interpolation_spec.rb +12 -12
- data/spec/rubocop/cop/style/variable_name_spec.rb +21 -21
- data/spec/rubocop/cop/style/when_then_spec.rb +1 -1
- data/spec/rubocop/cop/style/while_until_do_spec.rb +8 -8
- data/spec/rubocop/cop/style/while_until_modifier_spec.rb +25 -7
- data/spec/rubocop/cop/style/word_array_spec.rb +23 -23
- data/spec/rubocop/cop/team_spec.rb +14 -14
- data/spec/rubocop/file_inspector_spec.rb +14 -12
- data/spec/rubocop/formatter/base_formatter_spec.rb +19 -19
- data/spec/rubocop/formatter/clang_style_formatter_spec.rb +14 -14
- data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +7 -7
- data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +7 -7
- data/spec/rubocop/formatter/file_list_formatter_spec.rb +4 -4
- data/spec/rubocop/formatter/fuubar_style_formatter_spec.rb +129 -0
- data/spec/rubocop/formatter/json_formatter_spec.rb +23 -19
- data/spec/rubocop/formatter/offense_count_formatter_spec.rb +77 -0
- data/spec/rubocop/formatter/progress_formatter_spec.rb +27 -27
- data/spec/rubocop/formatter/simple_text_formatter_spec.rb +16 -16
- data/spec/rubocop/options_spec.rb +7 -8
- data/spec/rubocop/source_parser_spec.rb +0 -54
- data/spec/spec_helper.rb +11 -7
- data/spec/support/file_helper.rb +1 -1
- data/spec/support/mri_syntax_checker.rb +4 -4
- data/spec/support/shared_examples.rb +6 -6
- data/spec/support/statement_modifier_helper.rb +3 -3
- metadata +76 -16
- data/lib/rubocop/cop/style/favor_sprintf.rb +0 -26
- data/lib/rubocop/formatter/offence_count_formatter.rb +0 -49
- data/spec/rubocop/cop/style/favor_sprintf_spec.rb +0 -47
- data/spec/rubocop/formatter/offence_count_formatter_spec.rb +0 -52
@@ -0,0 +1,238 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Rubocop::Cop::Style::IndentHash, :config do
|
6
|
+
subject(:cop) { described_class.new(config) }
|
7
|
+
let(:cop_config) { { 'EnforcedStyle' => 'special_inside_parentheses' } }
|
8
|
+
|
9
|
+
context 'when hash is operand' do
|
10
|
+
it 'accepts correctly indented first pair' do
|
11
|
+
inspect_source(cop,
|
12
|
+
['a << {',
|
13
|
+
' a: 1',
|
14
|
+
'}'])
|
15
|
+
expect(cop.offenses).to be_empty
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'registers an offense for incorrectly indented first pair' do
|
19
|
+
inspect_source(cop,
|
20
|
+
['a << {',
|
21
|
+
' a: 1',
|
22
|
+
'}'])
|
23
|
+
expect(cop.highlights).to eq(['a: 1'])
|
24
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'auto-corrects incorrectly indented first pair' do
|
28
|
+
corrected = autocorrect_source(cop, ['a << {',
|
29
|
+
' a: 1',
|
30
|
+
'}'])
|
31
|
+
expect(corrected).to eq ['a << {',
|
32
|
+
' a: 1',
|
33
|
+
'}'].join("\n")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when hash is argument to setter' do
|
38
|
+
it 'accepts correctly indented first pair' do
|
39
|
+
inspect_source(cop,
|
40
|
+
[' config.rack_cache = {',
|
41
|
+
' :metastore => "rails:/",',
|
42
|
+
' :entitystore => "rails:/",',
|
43
|
+
' :verbose => false',
|
44
|
+
' }'])
|
45
|
+
expect(cop.offenses).to be_empty
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'registers an offense for incorrectly indented first pair' do
|
49
|
+
inspect_source(cop,
|
50
|
+
[' config.rack_cache = {',
|
51
|
+
' :metastore => "rails:/",',
|
52
|
+
' :entitystore => "rails:/",',
|
53
|
+
' :verbose => false',
|
54
|
+
' }'])
|
55
|
+
expect(cop.highlights).to eq([':metastore => "rails:/"'])
|
56
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'when hash is right hand side in assignment' do
|
61
|
+
it 'registers an offense for incorrectly indented first pair' do
|
62
|
+
inspect_source(cop, ['a = {',
|
63
|
+
' a: 1,',
|
64
|
+
' b: 2,',
|
65
|
+
' c: 3',
|
66
|
+
'}'])
|
67
|
+
expect(cop.messages)
|
68
|
+
.to eq(['Use 2 spaces for indentation in a hash, relative to the ' \
|
69
|
+
'start of the line where the left curly brace is.'])
|
70
|
+
expect(cop.highlights).to eq(['a: 1'])
|
71
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'auto-corrects incorrectly indented first pair' do
|
75
|
+
corrected = autocorrect_source(cop, ['a = {',
|
76
|
+
' a: 1,',
|
77
|
+
' b: 2,',
|
78
|
+
' c: 3',
|
79
|
+
'}'])
|
80
|
+
expect(corrected).to eq ['a = {',
|
81
|
+
' a: 1,',
|
82
|
+
' b: 2,',
|
83
|
+
' c: 3',
|
84
|
+
'}'].join("\n")
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'accepts correctly indented first pair' do
|
88
|
+
inspect_source(cop,
|
89
|
+
['a = {',
|
90
|
+
' a: 1',
|
91
|
+
'}'])
|
92
|
+
expect(cop.offenses).to be_empty
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'accepts several pairs per line' do
|
96
|
+
inspect_source(cop,
|
97
|
+
['a = {',
|
98
|
+
' a: 1, b: 2',
|
99
|
+
'}'])
|
100
|
+
expect(cop.offenses).to be_empty
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'accepts a first pair on the same line as the left brace' do
|
104
|
+
inspect_source(cop,
|
105
|
+
['a = { "a" => 1,',
|
106
|
+
' "b" => 2 }'])
|
107
|
+
expect(cop.offenses).to be_empty
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'accepts single line hash' do
|
111
|
+
inspect_source(cop,
|
112
|
+
['a = { a: 1, b: 2 }'])
|
113
|
+
expect(cop.offenses).to be_empty
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'accepts an empty hash' do
|
117
|
+
inspect_source(cop,
|
118
|
+
['a = {}'])
|
119
|
+
expect(cop.offenses).to be_empty
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
context 'when hash is method argument' do
|
124
|
+
context 'and arguments are surrounded by parentheses' do
|
125
|
+
context 'and EnforcedStyle is special_inside_parentheses' do
|
126
|
+
it 'accepts special indentation for first argument' do
|
127
|
+
inspect_source(cop,
|
128
|
+
['func({',
|
129
|
+
' a: 1',
|
130
|
+
' })'])
|
131
|
+
expect(cop.offenses).to be_empty
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'registers an offense for incorrect indentation' do
|
135
|
+
inspect_source(cop,
|
136
|
+
['func({',
|
137
|
+
' a: 1',
|
138
|
+
'})'])
|
139
|
+
expect(cop.messages)
|
140
|
+
.to eq(['Use 2 spaces for indentation in a hash, relative to the' \
|
141
|
+
' first position after the preceding left parenthesis.'])
|
142
|
+
expect(cop.config_to_allow_offenses)
|
143
|
+
.to eq('EnforcedStyle' => 'consistent')
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'auto-corrects incorrectly indented first pair' do
|
147
|
+
corrected = autocorrect_source(cop, ['func({',
|
148
|
+
' a: 1',
|
149
|
+
'})'])
|
150
|
+
expect(corrected).to eq ['func({',
|
151
|
+
' a: 1',
|
152
|
+
'})'].join("\n")
|
153
|
+
end
|
154
|
+
|
155
|
+
it 'accepts special indentation for second argument' do
|
156
|
+
inspect_source(cop,
|
157
|
+
['body.should have_tag("input", :attributes => {',
|
158
|
+
' :name => /q\[(id_eq)\]/ })'])
|
159
|
+
expect(cop.offenses).to be_empty
|
160
|
+
end
|
161
|
+
|
162
|
+
it 'accepts normal indentation for hash within hash' do
|
163
|
+
inspect_source(cop,
|
164
|
+
['scope = scope.where(',
|
165
|
+
' klass.table_name => {',
|
166
|
+
' reflection.type => model.base_class.sti_name',
|
167
|
+
' }',
|
168
|
+
')'])
|
169
|
+
expect(cop.offenses).to be_empty
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
context 'and EnforcedStyle is consistent' do
|
174
|
+
let(:cop_config) { { 'EnforcedStyle' => 'consistent' } }
|
175
|
+
|
176
|
+
it 'accepts normal indentation for first argument' do
|
177
|
+
inspect_source(cop,
|
178
|
+
['func({',
|
179
|
+
' a: 1',
|
180
|
+
'})'])
|
181
|
+
expect(cop.offenses).to be_empty
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'registers an offense for incorrect indentation' do
|
185
|
+
inspect_source(cop,
|
186
|
+
['func({',
|
187
|
+
' a: 1',
|
188
|
+
' })'])
|
189
|
+
expect(cop.messages)
|
190
|
+
.to eq(['Use 2 spaces for indentation in a hash, relative to the' \
|
191
|
+
' start of the line where the left curly brace is.'])
|
192
|
+
expect(cop.config_to_allow_offenses)
|
193
|
+
.to eq('EnforcedStyle' => 'special_inside_parentheses')
|
194
|
+
end
|
195
|
+
|
196
|
+
it 'accepts normal indentation for second argument' do
|
197
|
+
inspect_source(cop,
|
198
|
+
['body.should have_tag("input", :attributes => {',
|
199
|
+
' :name => /q\[(id_eq)\]/ })'])
|
200
|
+
expect(cop.offenses).to be_empty
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
context 'and argument are not surrounded by parentheses' do
|
206
|
+
it 'accepts braceless hash' do
|
207
|
+
inspect_source(cop,
|
208
|
+
['func a: 1, b: 2'])
|
209
|
+
expect(cop.offenses).to be_empty
|
210
|
+
end
|
211
|
+
|
212
|
+
it 'accepts single line hash with braces' do
|
213
|
+
inspect_source(cop,
|
214
|
+
['func x, { a: 1, b: 2 }'])
|
215
|
+
expect(cop.offenses).to be_empty
|
216
|
+
end
|
217
|
+
|
218
|
+
it 'accepts a correctly indented multi-line hash with braces' do
|
219
|
+
inspect_source(cop,
|
220
|
+
['func x, {',
|
221
|
+
' a: 1, b: 2 }'])
|
222
|
+
expect(cop.offenses).to be_empty
|
223
|
+
end
|
224
|
+
|
225
|
+
it 'registers an offense for incorrectly indented multi-line hash ' \
|
226
|
+
'with braces' do
|
227
|
+
inspect_source(cop,
|
228
|
+
['func x, {',
|
229
|
+
' a: 1, b: 2 }'])
|
230
|
+
expect(cop.messages)
|
231
|
+
.to eq(['Use 2 spaces for indentation in a hash, relative to the ' \
|
232
|
+
'start of the line where the left curly brace is.'])
|
233
|
+
expect(cop.highlights).to eq(['a: 1'])
|
234
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
@@ -6,7 +6,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
8
|
context 'with if statement' do
|
9
|
-
it 'registers an
|
9
|
+
it 'registers an offense for bad indentation in an if body' do
|
10
10
|
inspect_source(cop,
|
11
11
|
['if cond',
|
12
12
|
' func',
|
@@ -15,7 +15,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
15
15
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
16
16
|
end
|
17
17
|
|
18
|
-
it 'registers an
|
18
|
+
it 'registers an offense for bad indentation in an else body' do
|
19
19
|
inspect_source(cop,
|
20
20
|
['if cond',
|
21
21
|
' func1',
|
@@ -26,7 +26,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
26
26
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
27
27
|
end
|
28
28
|
|
29
|
-
it 'registers an
|
29
|
+
it 'registers an offense for bad indentation in an elsif body' do
|
30
30
|
inspect_source(cop,
|
31
31
|
['if a1',
|
32
32
|
' b1',
|
@@ -39,10 +39,30 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
39
39
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
40
40
|
end
|
41
41
|
|
42
|
+
it 'autocorrects bad indentation' do
|
43
|
+
corrected = autocorrect_source(cop,
|
44
|
+
['if a1',
|
45
|
+
' b1',
|
46
|
+
'elsif a2',
|
47
|
+
' b2',
|
48
|
+
' b3',
|
49
|
+
'else',
|
50
|
+
' c',
|
51
|
+
'end'])
|
52
|
+
expect(corrected).to eq ['if a1',
|
53
|
+
' b1',
|
54
|
+
'elsif a2',
|
55
|
+
' b2',
|
56
|
+
' b3',
|
57
|
+
'else',
|
58
|
+
' c',
|
59
|
+
'end'].join("\n")
|
60
|
+
end
|
61
|
+
|
42
62
|
it 'accepts a one line if statement' do
|
43
63
|
inspect_source(cop,
|
44
64
|
['if cond then func1 else func2 end'])
|
45
|
-
expect(cop.
|
65
|
+
expect(cop.offenses).to be_empty
|
46
66
|
end
|
47
67
|
|
48
68
|
it 'accepts a correctly aligned if/elsif/else/end' do
|
@@ -54,7 +74,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
54
74
|
'else',
|
55
75
|
' c',
|
56
76
|
'end'])
|
57
|
-
expect(cop.
|
77
|
+
expect(cop.offenses).to be_empty
|
58
78
|
end
|
59
79
|
|
60
80
|
it 'accepts if/elsif/else/end laid out as a table' do
|
@@ -64,7 +84,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
64
84
|
'elsif @io == $stderr then str << "$stderr"',
|
65
85
|
'else str << @io.class.to_s',
|
66
86
|
'end'])
|
67
|
-
expect(cop.
|
87
|
+
expect(cop.offenses).to be_empty
|
68
88
|
end
|
69
89
|
|
70
90
|
it 'accepts if/then/else/end laid out as another table' do
|
@@ -73,7 +93,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
73
93
|
'then ConfigTable.load',
|
74
94
|
'else ConfigTable.new',
|
75
95
|
'end'])
|
76
|
-
expect(cop.
|
96
|
+
expect(cop.offenses).to be_empty
|
77
97
|
end
|
78
98
|
|
79
99
|
it 'accepts an empty if' do
|
@@ -81,7 +101,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
81
101
|
['if a',
|
82
102
|
'else',
|
83
103
|
'end'])
|
84
|
-
expect(cop.
|
104
|
+
expect(cop.offenses).to be_empty
|
85
105
|
end
|
86
106
|
|
87
107
|
it 'accepts an if in assignment with end aligned with variable' do
|
@@ -107,7 +127,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
107
127
|
'VAR = if a',
|
108
128
|
' 0',
|
109
129
|
'end'])
|
110
|
-
expect(cop.
|
130
|
+
expect(cop.offenses).to be_empty
|
111
131
|
end
|
112
132
|
|
113
133
|
it 'accepts an if/else in assignment with end aligned with variable' do
|
@@ -117,29 +137,29 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
117
137
|
'else',
|
118
138
|
' 1',
|
119
139
|
'end'])
|
120
|
-
expect(cop.
|
140
|
+
expect(cop.offenses).to be_empty
|
121
141
|
end
|
122
142
|
|
123
143
|
it 'accepts an if/else in assignment with end aligned with variable ' \
|
124
|
-
|
144
|
+
'and chaining after the end' do
|
125
145
|
inspect_source(cop,
|
126
146
|
['var = if a',
|
127
147
|
' 0',
|
128
148
|
'else',
|
129
149
|
' 1',
|
130
150
|
'end.abc.join("")'])
|
131
|
-
expect(cop.
|
151
|
+
expect(cop.offenses).to be_empty
|
132
152
|
end
|
133
153
|
|
134
154
|
it 'accepts an if/else in assignment with end aligned with variable ' \
|
135
|
-
|
155
|
+
'and chaining with a block after the end' do
|
136
156
|
inspect_source(cop,
|
137
157
|
['var = if a',
|
138
158
|
' 0',
|
139
159
|
'else',
|
140
160
|
' 1',
|
141
161
|
'end.abc.tap {}'])
|
142
|
-
expect(cop.
|
162
|
+
expect(cop.offenses).to be_empty
|
143
163
|
end
|
144
164
|
|
145
165
|
it 'accepts an if in assignment with end aligned with if' do
|
@@ -147,7 +167,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
147
167
|
['var = if a',
|
148
168
|
' 0',
|
149
169
|
' end'])
|
150
|
-
expect(cop.
|
170
|
+
expect(cop.offenses).to be_empty
|
151
171
|
end
|
152
172
|
|
153
173
|
it 'accepts an if/else in assignment with end aligned with if' do
|
@@ -157,11 +177,11 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
157
177
|
' else',
|
158
178
|
' 1',
|
159
179
|
' end'])
|
160
|
-
expect(cop.
|
180
|
+
expect(cop.offenses).to be_empty
|
161
181
|
end
|
162
182
|
|
163
183
|
it 'accepts an if/else in assignment on next line with end aligned ' \
|
164
|
-
|
184
|
+
'with if' do
|
165
185
|
inspect_source(cop,
|
166
186
|
['var =',
|
167
187
|
' if a',
|
@@ -169,7 +189,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
169
189
|
' else',
|
170
190
|
' 1',
|
171
191
|
' end'])
|
172
|
-
expect(cop.
|
192
|
+
expect(cop.offenses).to be_empty
|
173
193
|
end
|
174
194
|
|
175
195
|
it 'accepts an if/else branches with rescue clauses' do
|
@@ -181,12 +201,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
181
201
|
'else',
|
182
202
|
' a rescue nil',
|
183
203
|
'end'])
|
184
|
-
expect(cop.
|
204
|
+
expect(cop.offenses).to be_empty
|
185
205
|
end
|
186
206
|
end
|
187
207
|
|
188
208
|
context 'with unless' do
|
189
|
-
it 'registers an
|
209
|
+
it 'registers an offense for bad indentation in an unless body' do
|
190
210
|
inspect_source(cop,
|
191
211
|
['unless cond',
|
192
212
|
' func',
|
@@ -200,12 +220,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
200
220
|
['unless a',
|
201
221
|
'else',
|
202
222
|
'end'])
|
203
|
-
expect(cop.
|
223
|
+
expect(cop.offenses).to be_empty
|
204
224
|
end
|
205
225
|
end
|
206
226
|
|
207
227
|
context 'with case' do
|
208
|
-
it 'registers an
|
228
|
+
it 'registers an offense for bad indentation in a case/when body' do
|
209
229
|
inspect_source(cop,
|
210
230
|
['case a',
|
211
231
|
'when b',
|
@@ -215,7 +235,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
215
235
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
216
236
|
end
|
217
237
|
|
218
|
-
it 'registers an
|
238
|
+
it 'registers an offense for bad indentation in a case/else body' do
|
219
239
|
inspect_source(cop,
|
220
240
|
['case a',
|
221
241
|
'when b',
|
@@ -239,7 +259,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
239
259
|
'else',
|
240
260
|
' f',
|
241
261
|
'end'])
|
242
|
-
expect(cop.
|
262
|
+
expect(cop.offenses).to be_empty
|
243
263
|
end
|
244
264
|
|
245
265
|
it 'accepts case/when/else laid out as a table' do
|
@@ -249,7 +269,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
249
269
|
"when 'unless' then cond, _else, body = *sexp",
|
250
270
|
'else cond, body = *sexp',
|
251
271
|
'end'])
|
252
|
-
expect(cop.
|
272
|
+
expect(cop.offenses).to be_empty
|
253
273
|
end
|
254
274
|
|
255
275
|
it 'accepts case/when/else with then beginning a line' do
|
@@ -258,7 +278,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
258
278
|
"when 'if'",
|
259
279
|
'then cond, body, _else = *sexp',
|
260
280
|
'end'])
|
261
|
-
expect(cop.
|
281
|
+
expect(cop.offenses).to be_empty
|
262
282
|
end
|
263
283
|
|
264
284
|
it 'accepts indented when/else plus indented body' do
|
@@ -274,12 +294,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
274
294
|
' else',
|
275
295
|
" 'plain'",
|
276
296
|
'end'])
|
277
|
-
expect(cop.
|
297
|
+
expect(cop.offenses).to be_empty
|
278
298
|
end
|
279
299
|
end
|
280
300
|
|
281
301
|
context 'with while/until' do
|
282
|
-
it 'registers an
|
302
|
+
it 'registers an offense for bad indentation in a while body' do
|
283
303
|
inspect_source(cop,
|
284
304
|
['while cond',
|
285
305
|
' func',
|
@@ -288,7 +308,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
288
308
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
289
309
|
end
|
290
310
|
|
291
|
-
it 'registers an
|
311
|
+
it 'registers an offense for bad indentation in begin/end/while' do
|
292
312
|
inspect_source(cop,
|
293
313
|
['something = begin',
|
294
314
|
' func1',
|
@@ -297,7 +317,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
297
317
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
298
318
|
end
|
299
319
|
|
300
|
-
it 'registers an
|
320
|
+
it 'registers an offense for bad indentation in an until body' do
|
301
321
|
inspect_source(cop,
|
302
322
|
['until cond',
|
303
323
|
' func',
|
@@ -310,12 +330,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
310
330
|
inspect_source(cop,
|
311
331
|
['while a',
|
312
332
|
'end'])
|
313
|
-
expect(cop.
|
333
|
+
expect(cop.offenses).to be_empty
|
314
334
|
end
|
315
335
|
end
|
316
336
|
|
317
337
|
context 'with for' do
|
318
|
-
it 'registers an
|
338
|
+
it 'registers an offense for bad indentation in a for body' do
|
319
339
|
inspect_source(cop,
|
320
340
|
['for var in 1..10',
|
321
341
|
' func',
|
@@ -328,12 +348,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
328
348
|
inspect_source(cop,
|
329
349
|
['for var in 1..10',
|
330
350
|
'end'])
|
331
|
-
expect(cop.
|
351
|
+
expect(cop.offenses).to be_empty
|
332
352
|
end
|
333
353
|
end
|
334
354
|
|
335
355
|
context 'with def/defs' do
|
336
|
-
it 'registers an
|
356
|
+
it 'registers an offense for bad indentation in a def body' do
|
337
357
|
inspect_source(cop,
|
338
358
|
['def test',
|
339
359
|
' func1',
|
@@ -343,7 +363,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
343
363
|
.to eq(['Inconsistent indentation detected.'])
|
344
364
|
end
|
345
365
|
|
346
|
-
it 'registers an
|
366
|
+
it 'registers an offense for bad indentation in a defs body' do
|
347
367
|
inspect_source(cop,
|
348
368
|
['def self.test',
|
349
369
|
' func',
|
@@ -356,19 +376,19 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
356
376
|
inspect_source(cop,
|
357
377
|
['def test',
|
358
378
|
'end'])
|
359
|
-
expect(cop.
|
379
|
+
expect(cop.offenses).to be_empty
|
360
380
|
end
|
361
381
|
|
362
382
|
it 'accepts an empty defs body' do
|
363
383
|
inspect_source(cop,
|
364
384
|
['def self.test',
|
365
385
|
'end'])
|
366
|
-
expect(cop.
|
386
|
+
expect(cop.offenses).to be_empty
|
367
387
|
end
|
368
388
|
end
|
369
389
|
|
370
390
|
context 'with class' do
|
371
|
-
it 'registers an
|
391
|
+
it 'registers an offense for bad indentation in a class body' do
|
372
392
|
inspect_source(cop,
|
373
393
|
['class Test',
|
374
394
|
' def func1',
|
@@ -384,7 +404,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
384
404
|
inspect_source(cop,
|
385
405
|
['class Test',
|
386
406
|
'end'])
|
387
|
-
expect(cop.
|
407
|
+
expect(cop.offenses).to be_empty
|
388
408
|
end
|
389
409
|
|
390
410
|
it 'accepts indented public, protected, and private' do
|
@@ -405,11 +425,11 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
405
425
|
' def g',
|
406
426
|
' end',
|
407
427
|
'end'])
|
408
|
-
expect(cop.
|
428
|
+
expect(cop.offenses).to be_empty
|
409
429
|
end
|
410
430
|
|
411
|
-
it 'registers an
|
412
|
-
|
431
|
+
it 'registers an offense for bad indentation in def but not for ' \
|
432
|
+
'outdented public, protected, and private' do
|
413
433
|
inspect_source(cop,
|
414
434
|
['class Test',
|
415
435
|
'public',
|
@@ -428,12 +448,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
428
448
|
' end',
|
429
449
|
'end'])
|
430
450
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
431
|
-
expect(cop.highlights).to eq([
|
451
|
+
expect(cop.highlights).to eq(["def g\n end"])
|
432
452
|
end
|
433
453
|
end
|
434
454
|
|
435
455
|
context 'with module' do
|
436
|
-
it 'registers an
|
456
|
+
it 'registers an offense for bad indentation in a module body' do
|
437
457
|
inspect_source(cop,
|
438
458
|
['module Test',
|
439
459
|
' def func1',
|
@@ -448,12 +468,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
448
468
|
inspect_source(cop,
|
449
469
|
['module Test',
|
450
470
|
'end'])
|
451
|
-
expect(cop.
|
471
|
+
expect(cop.offenses).to be_empty
|
452
472
|
end
|
453
473
|
end
|
454
474
|
|
455
475
|
context 'with block' do
|
456
|
-
it 'registers an
|
476
|
+
it 'registers an offense for bad indentation in a do/end body' do
|
457
477
|
inspect_source(cop,
|
458
478
|
['a = func do',
|
459
479
|
' b',
|
@@ -462,7 +482,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
462
482
|
expect(cop.messages).to eq(['Inconsistent indentation detected.'])
|
463
483
|
end
|
464
484
|
|
465
|
-
it 'registers an
|
485
|
+
it 'registers an offense for bad indentation in a {} body' do
|
466
486
|
inspect_source(cop,
|
467
487
|
['func {',
|
468
488
|
' b',
|
@@ -477,14 +497,14 @@ describe Rubocop::Cop::Style::IndentationConsistency do
|
|
477
497
|
' b',
|
478
498
|
' c',
|
479
499
|
'end'])
|
480
|
-
expect(cop.
|
500
|
+
expect(cop.offenses).to be_empty
|
481
501
|
end
|
482
502
|
|
483
503
|
it 'accepts an empty block body' do
|
484
504
|
inspect_source(cop,
|
485
505
|
['a = func do',
|
486
506
|
'end'])
|
487
|
-
expect(cop.
|
507
|
+
expect(cop.offenses).to be_empty
|
488
508
|
end
|
489
509
|
end
|
490
510
|
end
|