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
@@ -22,8 +22,8 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
|
|
22
22
|
' [0, 1].reduce(5) { |c, d| c + d }',
|
23
23
|
' ala.test { |x, z| bala }',
|
24
24
|
'end'])
|
25
|
-
expect(cop.
|
26
|
-
expect(cop.
|
25
|
+
expect(cop.offenses.size).to eq(7)
|
26
|
+
expect(cop.offenses.map(&:line).sort).to eq((2..8).to_a)
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'allows calls with proper argument names' do
|
@@ -37,7 +37,7 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
|
|
37
37
|
' [0, 1].reduce(5) { |a, e| a + e }',
|
38
38
|
' ala.test { |x, y| bala }',
|
39
39
|
'end'])
|
40
|
-
expect(cop.
|
40
|
+
expect(cop.offenses).to be_empty
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'ignores do..end blocks' do
|
@@ -47,7 +47,7 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
|
|
47
47
|
' c + d',
|
48
48
|
' end',
|
49
49
|
'end'])
|
50
|
-
expect(cop.
|
50
|
+
expect(cop.offenses).to be_empty
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'ignores :reduce symbols' do
|
@@ -55,7 +55,7 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
|
|
55
55
|
['def m',
|
56
56
|
' call_method(:reduce) { |a, b| a + b}',
|
57
57
|
'end'])
|
58
|
-
expect(cop.
|
58
|
+
expect(cop.offenses).to be_empty
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'does not report when destructuring is used' do
|
@@ -63,6 +63,6 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
|
|
63
63
|
['def m',
|
64
64
|
' test.reduce { |a, (id, _)| a + id}',
|
65
65
|
'end'])
|
66
|
-
expect(cop.
|
66
|
+
expect(cop.offenses).to be_empty
|
67
67
|
end
|
68
68
|
end
|
@@ -6,7 +6,7 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
|
|
6
6
|
subject(:cop) { described_class.new(config) }
|
7
7
|
let(:cop_config) { { 'AllowIfMethodIsEmpty' => true } }
|
8
8
|
|
9
|
-
it 'registers an
|
9
|
+
it 'registers an offense for a single-line method' do
|
10
10
|
inspect_source(cop,
|
11
11
|
['def some_method; body end',
|
12
12
|
'def link_to(name, url); {:name => name}; end',
|
@@ -18,11 +18,11 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
|
|
18
18
|
context 'when AllowIfMethodIsEmpty is disabled' do
|
19
19
|
let(:cop_config) { { 'AllowIfMethodIsEmpty' => false } }
|
20
20
|
|
21
|
-
it 'registers an
|
21
|
+
it 'registers an offense for an empty method' do
|
22
22
|
inspect_source(cop, ['def no_op; end',
|
23
23
|
'def self.resource_class=(klass); end',
|
24
24
|
'def @table.columns; end'])
|
25
|
-
expect(cop.
|
25
|
+
expect(cop.offenses.size).to eq(3)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -33,7 +33,7 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
|
|
33
33
|
inspect_source(cop, ['def no_op; end',
|
34
34
|
'def self.resource_class=(klass); end',
|
35
35
|
'def @table.columns; end'])
|
36
|
-
expect(cop.
|
36
|
+
expect(cop.offenses).to be_empty
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -41,12 +41,50 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
|
|
41
41
|
inspect_source(cop, ['def some_method',
|
42
42
|
' body',
|
43
43
|
'end'])
|
44
|
-
expect(cop.
|
44
|
+
expect(cop.offenses).to be_empty
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'does not crash on an method with a capitalized name' do
|
48
48
|
inspect_source(cop, ['def NoSnakeCase',
|
49
49
|
'end'])
|
50
|
-
expect(cop.
|
50
|
+
expect(cop.offenses).to be_empty
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'auto-corrects def with semicolon after method name' do
|
54
|
+
corrected = autocorrect_source(cop,
|
55
|
+
[' def some_method; body end # Cmnt'])
|
56
|
+
expect(corrected).to eq [' # Cmnt',
|
57
|
+
' def some_method; ',
|
58
|
+
' body ',
|
59
|
+
' end '].join("\n")
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'auto-corrects defs with parentheses after method name' do
|
63
|
+
corrected = autocorrect_source(cop, [' def self.some_method() body end'])
|
64
|
+
expect(corrected).to eq [' def self.some_method() ',
|
65
|
+
' body ',
|
66
|
+
' end'].join("\n")
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'auto-corrects def with argument in parentheses' do
|
70
|
+
corrected = autocorrect_source(cop, [' def some_method(arg) body end'])
|
71
|
+
expect(corrected).to eq [' def some_method(arg) ',
|
72
|
+
' body ',
|
73
|
+
' end'].join("\n")
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'auto-corrects def with argument and no parentheses' do
|
77
|
+
corrected = autocorrect_source(cop, [' def some_method arg; body end'])
|
78
|
+
expect(corrected).to eq [' def some_method arg; ',
|
79
|
+
' body ',
|
80
|
+
' end'].join("\n")
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'auto-corrects def with semicolon before end' do
|
84
|
+
corrected = autocorrect_source(cop, [' def some_method; b1; b2; end'])
|
85
|
+
expect(corrected).to eq [' def some_method; ',
|
86
|
+
' b1; ',
|
87
|
+
' b2; ',
|
88
|
+
' end'].join("\n")
|
51
89
|
end
|
52
90
|
end
|
@@ -5,7 +5,7 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::SpaceAfterColon do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for colon without space after it' do
|
9
9
|
# TODO: There is double reporting of the last colon (also from
|
10
10
|
# SpaceAroundOperators).
|
11
11
|
inspect_source(cop, ['x = w ? {a:3}:4'])
|
@@ -5,19 +5,19 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::SpaceAfterComma do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for block argument commas without space' do
|
9
9
|
inspect_source(cop, ['each { |s,t| }'])
|
10
10
|
expect(cop.messages).to eq(
|
11
11
|
['Space missing after comma.'])
|
12
12
|
end
|
13
13
|
|
14
|
-
it 'registers an
|
14
|
+
it 'registers an offense for array index commas without space' do
|
15
15
|
inspect_source(cop, ['formats[0,1]'])
|
16
16
|
expect(cop.messages).to eq(
|
17
17
|
['Space missing after comma.'])
|
18
18
|
end
|
19
19
|
|
20
|
-
it 'registers an
|
20
|
+
it 'registers an offense for method call arg commas without space' do
|
21
21
|
inspect_source(cop, ['a(1,2)'])
|
22
22
|
expect(cop.messages).to eq(
|
23
23
|
['Space missing after comma.'])
|
@@ -5,52 +5,52 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::SpaceAfterControlKeyword do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for normal if' do
|
9
9
|
inspect_source(cop,
|
10
10
|
['if(test) then result end'])
|
11
|
-
expect(cop.
|
11
|
+
expect(cop.offenses.size).to eq(1)
|
12
12
|
end
|
13
13
|
|
14
|
-
it 'registers an
|
14
|
+
it 'registers an offense for modifier unless' do
|
15
15
|
inspect_source(cop, ['action unless(test)'])
|
16
16
|
|
17
|
-
expect(cop.
|
17
|
+
expect(cop.offenses.size).to eq(1)
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'does not get confused by keywords' do
|
21
21
|
inspect_source(cop, ['[:if, :unless].action'])
|
22
|
-
expect(cop.
|
22
|
+
expect(cop.offenses).to be_empty
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'does not get confused by the ternary operator' do
|
26
26
|
inspect_source(cop, ['a ? b : c'])
|
27
|
-
expect(cop.
|
27
|
+
expect(cop.offenses).to be_empty
|
28
28
|
end
|
29
29
|
|
30
|
-
it 'registers an
|
30
|
+
it 'registers an offense for if, elsif, and unless' do
|
31
31
|
inspect_source(cop,
|
32
32
|
['if(a)',
|
33
33
|
'elsif(b)',
|
34
34
|
' unless(c)',
|
35
35
|
' end',
|
36
36
|
'end'])
|
37
|
-
expect(cop.
|
37
|
+
expect(cop.offenses.map(&:line)).to eq([1, 2, 3])
|
38
38
|
end
|
39
39
|
|
40
|
-
it 'registers an
|
40
|
+
it 'registers an offense for case and when' do
|
41
41
|
inspect_source(cop,
|
42
42
|
['case(a)',
|
43
43
|
'when(0) then 1',
|
44
44
|
'end'])
|
45
|
-
expect(cop.
|
45
|
+
expect(cop.offenses.map(&:line)).to eq([1, 2])
|
46
46
|
end
|
47
47
|
|
48
|
-
it 'registers an
|
48
|
+
it 'registers an offense for while and until' do
|
49
49
|
inspect_source(cop,
|
50
50
|
['while(a)',
|
51
51
|
' b until(c)',
|
52
52
|
'end'])
|
53
|
-
expect(cop.
|
53
|
+
expect(cop.offenses.map(&:line)).to eq([1, 2])
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'auto-corrects missing space' do
|
@@ -5,20 +5,20 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::SpaceAfterMethodName do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for def with space before the parenthesis' do
|
9
9
|
inspect_source(cop,
|
10
10
|
['def func (x)',
|
11
11
|
' a',
|
12
12
|
'end'])
|
13
|
-
expect(cop.
|
13
|
+
expect(cop.offenses.size).to eq(1)
|
14
14
|
end
|
15
15
|
|
16
|
-
it 'registers an
|
16
|
+
it 'registers an offense for defs with space before the parenthesis' do
|
17
17
|
inspect_source(cop,
|
18
18
|
['def self.func (x)',
|
19
19
|
' a',
|
20
20
|
'end'])
|
21
|
-
expect(cop.
|
21
|
+
expect(cop.offenses.size).to eq(1)
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'accepts a def without arguments' do
|
@@ -26,7 +26,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
|
|
26
26
|
['def func',
|
27
27
|
' a',
|
28
28
|
'end'])
|
29
|
-
expect(cop.
|
29
|
+
expect(cop.offenses).to be_empty
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'accepts a defs without arguments' do
|
@@ -34,7 +34,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
|
|
34
34
|
['def self.func',
|
35
35
|
' a',
|
36
36
|
'end'])
|
37
|
-
expect(cop.
|
37
|
+
expect(cop.offenses).to be_empty
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'accepts a def with arguments but no parentheses' do
|
@@ -42,7 +42,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
|
|
42
42
|
['def func x',
|
43
43
|
' a',
|
44
44
|
'end'])
|
45
|
-
expect(cop.
|
45
|
+
expect(cop.offenses).to be_empty
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'accepts a defs with arguments but no parentheses' do
|
@@ -50,7 +50,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
|
|
50
50
|
['def self.func x',
|
51
51
|
' a',
|
52
52
|
'end'])
|
53
|
-
expect(cop.
|
53
|
+
expect(cop.offenses).to be_empty
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'auto-corrects unwanted space' do
|
@@ -5,14 +5,14 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::SpaceAfterNot do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'reports an
|
8
|
+
it 'reports an offense for space after !' do
|
9
9
|
inspect_source(cop, ['! something'])
|
10
|
-
expect(cop.
|
10
|
+
expect(cop.offenses.size).to eq(1)
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'accepts no space after !' do
|
14
14
|
inspect_source(cop, ['!something'])
|
15
|
-
expect(cop.
|
15
|
+
expect(cop.offenses).to be_empty
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'auto-corrects by removing redundant space' do
|
@@ -5,7 +5,7 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::SpaceAfterSemicolon do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for semicolon without space after it' do
|
9
9
|
inspect_source(cop, ['x = 1;y = 2'])
|
10
10
|
expect(cop.messages).to eq(
|
11
11
|
['Space missing after semicolon.'])
|
@@ -2,32 +2,74 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe Rubocop::Cop::Style::SpaceAroundEqualsInParameterDefault do
|
6
|
-
subject(:cop) { described_class.new }
|
5
|
+
describe Rubocop::Cop::Style::SpaceAroundEqualsInParameterDefault, :config do
|
6
|
+
subject(:cop) { described_class.new(config) }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
expect(cop.messages).to eq(
|
11
|
-
['Surrounding space missing in default value assignment.'] * 2)
|
12
|
-
end
|
8
|
+
context 'when EnforcedStyle is space' do
|
9
|
+
let(:cop_config) { { 'EnforcedStyle' => 'space' } }
|
13
10
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
11
|
+
it 'registers an offense for default value assignment without space' do
|
12
|
+
inspect_source(cop, ['def f(x, y=0, z= 1)', 'end'])
|
13
|
+
expect(cop.messages)
|
14
|
+
.to eq(['Surrounding space missing in default value assignment.'] * 2)
|
15
|
+
expect(cop.highlights).to eq(['=', '= '])
|
16
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
17
|
+
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
it 'registers an offense for assignment empty string without space' do
|
20
|
+
inspect_source(cop, ['def f(x, y="", z=1)', 'end'])
|
21
|
+
expect(cop.offenses.size).to eq(2)
|
22
|
+
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'no_space')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'registers an offense for assignment of empty list without space' do
|
26
|
+
inspect_source(cop, ['def f(x, y=[])', 'end'])
|
27
|
+
expect(cop.offenses.size).to eq(1)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'accepts default value assignment with space' do
|
31
|
+
inspect_source(cop, ['def f(x, y = 0, z = {})', 'end'])
|
32
|
+
expect(cop.messages).to be_empty
|
33
|
+
end
|
23
34
|
|
24
|
-
|
25
|
-
|
26
|
-
|
35
|
+
it 'auto-corrects missing space' do
|
36
|
+
new_source = autocorrect_source(cop, ['def f(x, y=0, z=1)', 'end'])
|
37
|
+
expect(new_source).to eq(['def f(x, y = 0, z = 1)', 'end'].join("\n"))
|
38
|
+
end
|
27
39
|
end
|
28
40
|
|
29
|
-
|
30
|
-
|
31
|
-
|
41
|
+
context 'when EnforcedStyle is no_space' do
|
42
|
+
let(:cop_config) { { 'EnforcedStyle' => 'no_space' } }
|
43
|
+
|
44
|
+
it 'registers an offense for default value assignment with space' do
|
45
|
+
inspect_source(cop, ['def f(x, y = 0, z =1, w= 2)', 'end'])
|
46
|
+
expect(cop.messages)
|
47
|
+
.to eq(['Surrounding space detected in default value assignment.'] * 3)
|
48
|
+
expect(cop.highlights).to eq([' = ', ' =', '= '])
|
49
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'registers an offense for assignment empty string with space' do
|
53
|
+
inspect_source(cop, ['def f(x, y = "", z = 1)', 'end'])
|
54
|
+
expect(cop.offenses.size).to eq(2)
|
55
|
+
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'space')
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'registers an offense for assignment of empty list with space' do
|
59
|
+
inspect_source(cop, ['def f(x, y = [])', 'end'])
|
60
|
+
expect(cop.offenses.size).to eq(1)
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'accepts default value assignment without space' do
|
64
|
+
inspect_source(cop, ['def f(x, y=0, z={})', 'end'])
|
65
|
+
expect(cop.messages).to be_empty
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'auto-corrects unwanted space' do
|
69
|
+
new_source = autocorrect_source(cop, ['def f(x, y = 0, z= 1, w= 2)',
|
70
|
+
'end'])
|
71
|
+
expect(new_source).to eq(['def f(x, y=0, z=1, w=2)',
|
72
|
+
'end'].join("\n"))
|
73
|
+
end
|
32
74
|
end
|
33
75
|
end
|
@@ -5,7 +5,7 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::SpaceAroundOperators do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for assignment without space on both sides' do
|
9
9
|
inspect_source(cop, ['x=0', 'y= 0', 'z =0'])
|
10
10
|
expect(cop.messages).to eq(
|
11
11
|
["Surrounding space missing for operator '='."] * 3)
|
@@ -16,7 +16,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
16
16
|
expect(new_source).to eq(['x = 0', 'y = 0', 'z = 0'].join("\n"))
|
17
17
|
end
|
18
18
|
|
19
|
-
it 'registers an
|
19
|
+
it 'registers an offense for ternary operator without space' do
|
20
20
|
inspect_source(cop, ['x == 0?1:2'])
|
21
21
|
expect(cop.messages).to eq(
|
22
22
|
["Surrounding space missing for operator '?'.",
|
@@ -28,19 +28,19 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
28
28
|
expect(new_source).to eq('x == 0 ? 1 : 2')
|
29
29
|
end
|
30
30
|
|
31
|
-
it 'registers an
|
31
|
+
it 'registers an offense in presence of modifier if statement' do
|
32
32
|
check_modifier('if')
|
33
33
|
end
|
34
34
|
|
35
|
-
it 'registers an
|
35
|
+
it 'registers an offense in presence of modifier unless statement' do
|
36
36
|
check_modifier('unless')
|
37
37
|
end
|
38
38
|
|
39
|
-
it 'registers an
|
39
|
+
it 'registers an offense in presence of modifier while statement' do
|
40
40
|
check_modifier('unless')
|
41
41
|
end
|
42
42
|
|
43
|
-
it 'registers an
|
43
|
+
it 'registers an offense in presence of modifier until statement' do
|
44
44
|
check_modifier('unless')
|
45
45
|
end
|
46
46
|
|
@@ -48,7 +48,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
48
48
|
src = ["a=1 #{keyword} condition",
|
49
49
|
'c=2']
|
50
50
|
inspect_source(cop, src)
|
51
|
-
expect(cop.
|
51
|
+
expect(cop.offenses.map(&:line)).to eq([1, 2])
|
52
52
|
expect(cop.messages).to eq(
|
53
53
|
["Surrounding space missing for operator '='."] * 2)
|
54
54
|
|
@@ -57,7 +57,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
57
57
|
.to eq(src.map { |line| line.sub(/=/, ' = ') }.join("\n"))
|
58
58
|
end
|
59
59
|
|
60
|
-
it 'registers an
|
60
|
+
it 'registers an offense for binary operators that could be unary' do
|
61
61
|
inspect_source(cop, ['a-3', 'x&0xff', 'z+0'])
|
62
62
|
expect(cop.messages).to eq(
|
63
63
|
["Surrounding space missing for operator '-'.",
|
@@ -70,7 +70,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
70
70
|
expect(new_source).to eq(['a - 3', 'x & 0xff', 'z + 0'].join("\n"))
|
71
71
|
end
|
72
72
|
|
73
|
-
it 'registers an
|
73
|
+
it 'registers an offense for arguments to a method' do
|
74
74
|
inspect_source(cop, ['puts 1+2'])
|
75
75
|
expect(cop.messages).to eq(
|
76
76
|
["Surrounding space missing for operator '+'."])
|
@@ -118,7 +118,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
118
118
|
inspect_source(cop, [' def !',
|
119
119
|
' !__getobj__',
|
120
120
|
' end'])
|
121
|
-
expect(cop.
|
121
|
+
expect(cop.offenses).to be_empty
|
122
122
|
expect(cop.messages).to be_empty
|
123
123
|
end
|
124
124
|
|
@@ -161,15 +161,15 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
161
161
|
|
162
162
|
it 'accepts an assignment with spaces' do
|
163
163
|
inspect_source(cop, ['x = 0'])
|
164
|
-
expect(cop.
|
164
|
+
expect(cop.offenses).to be_empty
|
165
165
|
end
|
166
166
|
|
167
167
|
it 'accepts an operator called with method syntax' do
|
168
168
|
inspect_source(cop, ['Date.today.+(1).to_s'])
|
169
|
-
expect(cop.
|
169
|
+
expect(cop.offenses).to be_empty
|
170
170
|
end
|
171
171
|
|
172
|
-
it 'registers an
|
172
|
+
it 'registers an offense for operators without spaces' do
|
173
173
|
inspect_source(cop,
|
174
174
|
['x+= a+b-c*d/e%f^g|h&i||j',
|
175
175
|
'y -=k&&l'])
|
@@ -211,10 +211,10 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
211
211
|
|
212
212
|
it 'accepts an assignment followed by newline' do
|
213
213
|
inspect_source(cop, ['x =', '0'])
|
214
|
-
expect(cop.
|
214
|
+
expect(cop.offenses).to be_empty
|
215
215
|
end
|
216
216
|
|
217
|
-
it 'registers an
|
217
|
+
it 'registers an offenses for exponent operator with spaces' do
|
218
218
|
inspect_source(cop, ['x = a * b ** 2'])
|
219
219
|
expect(cop.messages).to eq(
|
220
220
|
['Space around operator ** detected.'])
|
@@ -229,16 +229,16 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
229
229
|
|
230
230
|
it 'accepts exponent operator without spaces' do
|
231
231
|
inspect_source(cop, ['x = a * b**2'])
|
232
|
-
expect(cop.
|
232
|
+
expect(cop.offenses).to be_empty
|
233
233
|
end
|
234
234
|
|
235
|
-
it 'registers an
|
235
|
+
it 'registers an offense for a setter call without spaces' do
|
236
236
|
inspect_source(cop, ['x.y=2'])
|
237
237
|
expect(cop.messages).to eq(
|
238
238
|
["Surrounding space missing for operator '='."])
|
239
239
|
end
|
240
240
|
|
241
|
-
it 'registers an
|
241
|
+
it 'registers an offense for a hash rocket without spaces' do
|
242
242
|
inspect_source(cop, ['{ 1=>2, a: b }'])
|
243
243
|
expect(cop.messages).to eq(
|
244
244
|
["Surrounding space missing for operator '=>'."])
|
@@ -272,14 +272,14 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
272
272
|
expect(cop.messages).to be_empty
|
273
273
|
end
|
274
274
|
|
275
|
-
it 'registers an
|
275
|
+
it 'registers an offense for match operators without space' do
|
276
276
|
inspect_source(cop, ['x=~/abc/', 'y !~/abc/'])
|
277
277
|
expect(cop.messages)
|
278
278
|
.to eq(["Surrounding space missing for operator '=~'.",
|
279
279
|
"Surrounding space missing for operator '!~'."])
|
280
280
|
end
|
281
281
|
|
282
|
-
it 'registers an
|
282
|
+
it 'registers an offense for various assignments without space' do
|
283
283
|
inspect_source(cop, ['x||=0', 'y&&=0', 'z*=2',
|
284
284
|
'@a=0', '@@a=0', 'a,b=0', 'A=0', 'x[3]=0', '$A=0'])
|
285
285
|
expect(cop.messages)
|
@@ -294,7 +294,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
294
294
|
"Surrounding space missing for operator '='."])
|
295
295
|
end
|
296
296
|
|
297
|
-
it 'registers an
|
297
|
+
it 'registers an offense for equality operators without space' do
|
298
298
|
inspect_source(cop, ['x==0', 'y!=0', 'Hash===z'])
|
299
299
|
expect(cop.messages)
|
300
300
|
.to eq(["Surrounding space missing for operator '=='.",
|
@@ -302,20 +302,20 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
|
|
302
302
|
"Surrounding space missing for operator '==='."])
|
303
303
|
end
|
304
304
|
|
305
|
-
it 'registers an
|
305
|
+
it 'registers an offense for - without space with negative lhs operand' do
|
306
306
|
inspect_source(cop, ['-1-arg'])
|
307
307
|
expect(cop.messages)
|
308
308
|
.to eq(["Surrounding space missing for operator '-'."])
|
309
309
|
end
|
310
310
|
|
311
|
-
it 'registers an
|
311
|
+
it 'registers an offense for inheritance < without space' do
|
312
312
|
inspect_source(cop, ['class ShowSourceTestClass<ShowSourceTestSuperClass',
|
313
313
|
'end'])
|
314
314
|
expect(cop.messages)
|
315
315
|
.to eq(["Surrounding space missing for operator '<'."])
|
316
316
|
end
|
317
317
|
|
318
|
-
it 'registers an
|
318
|
+
it 'registers an offense for hash rocket without space at rescue' do
|
319
319
|
inspect_source(cop, ['begin',
|
320
320
|
'rescue Exception=>e',
|
321
321
|
'end'])
|