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
@@ -4,80 +4,101 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Rubocop::Cop::Style::RegexpLiteral, :config do
|
6
6
|
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
expect(cop.messages)
|
15
|
-
.to eq(['Use %r for regular expressions matching more ' \
|
16
|
-
"than 1 '/' character."] * 2)
|
17
|
-
expect(cop.config_to_allow_offences).to eq('MaxSlashes' => 2)
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'accepts zero or one slash in regexp' do
|
21
|
-
inspect_source(cop, ['x =~ /\/home/',
|
22
|
-
'y =~ /\//',
|
23
|
-
'w =~ /\//m',
|
24
|
-
'z =~ /a/'])
|
25
|
-
expect(cop.offences).to be_empty
|
26
|
-
end
|
7
|
+
|
8
|
+
context 'when MaxSlashes is -1' do
|
9
|
+
let(:cop_config) { { 'MaxSlashes' => -1 } }
|
10
|
+
|
11
|
+
it 'fails' do
|
12
|
+
expect { inspect_source(cop, ['x =~ /home/']) }
|
13
|
+
.to raise_error(RuntimeError)
|
27
14
|
end
|
15
|
+
end
|
28
16
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'accepts zero slashes in regexp' do
|
41
|
-
inspect_source(cop, ['z =~ /a/'])
|
42
|
-
expect(cop.offences).to be_empty
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'registers an offence for zero slashes in regexp' do
|
46
|
-
inspect_source(cop, ['y =~ %r(etc)'])
|
47
|
-
expect(cop.messages)
|
48
|
-
.to eq(['Use %r only for regular expressions matching more ' \
|
49
|
-
"than 0 '/' characters."])
|
50
|
-
expect(cop.config_to_allow_offences).to eq('MaxSlashes' => 1)
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'accepts regexp with one slash' do
|
54
|
-
inspect_source(cop, ['x =~ %r(/home)'])
|
55
|
-
expect(cop.offences).to be_empty
|
56
|
-
end
|
17
|
+
context 'when MaxSlashes is 0' do
|
18
|
+
let(:cop_config) { { 'MaxSlashes' => 0 } }
|
19
|
+
|
20
|
+
it 'registers an offense for one slash in // regexp' do
|
21
|
+
inspect_source(cop, ['x =~ /home\//'])
|
22
|
+
expect(cop.messages)
|
23
|
+
.to eq(['Use %r for regular expressions matching more ' \
|
24
|
+
"than 0 '/' characters."])
|
25
|
+
expect(cop.config_to_allow_offenses).to eq('MaxSlashes' => 1)
|
57
26
|
end
|
58
27
|
|
59
|
-
it '
|
60
|
-
inspect_source(cop, ['
|
61
|
-
expect(cop.
|
28
|
+
it 'accepts zero slashes in // regexp' do
|
29
|
+
inspect_source(cop, ['z =~ /a/'])
|
30
|
+
expect(cop.offenses).to be_empty
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'registers an offense for zero slashes in %r regexp' do
|
34
|
+
inspect_source(cop, ['y =~ %r(etc)'])
|
35
|
+
expect(cop.messages)
|
36
|
+
.to eq(['Use %r only for regular expressions matching more ' \
|
37
|
+
"than 0 '/' characters."])
|
38
|
+
expect(cop.config_to_allow_offenses).to eq('MaxSlashes' => -1)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'accepts %r regexp with one slash' do
|
42
|
+
inspect_source(cop, ['x =~ %r(/home)'])
|
43
|
+
expect(cop.offenses).to be_empty
|
62
44
|
end
|
63
45
|
end
|
64
46
|
|
65
|
-
context 'when
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
47
|
+
context 'when MaxSlashes is 1' do
|
48
|
+
let(:cop_config) { { 'MaxSlashes' => 1 } }
|
49
|
+
|
50
|
+
it 'registers an offense for two slashes in // regexp' do
|
51
|
+
inspect_source(cop, ['x =~ /home\/\//',
|
52
|
+
'y =~ /etc\/top\//'])
|
53
|
+
expect(cop.messages)
|
54
|
+
.to eq(['Use %r for regular expressions matching more ' \
|
55
|
+
"than 1 '/' character."] * 2)
|
56
|
+
expect(cop.config_to_allow_offenses).to eq('MaxSlashes' => 2)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'registers offenses for slashes with too many and %r with too few' do
|
60
|
+
inspect_source(cop, ['x =~ /home\/\//',
|
61
|
+
'y =~ %r{home}'])
|
62
|
+
expect(cop.messages)
|
63
|
+
.to eq(['Use %r for regular expressions matching more ' \
|
64
|
+
"than 1 '/' character.",
|
65
|
+
'Use %r only for regular expressions matching more ' \
|
66
|
+
"than 1 '/' character."])
|
67
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'registers offenses for %r with too few and slashes with too many' do
|
71
|
+
inspect_source(cop, ['y =~ %r{home}',
|
72
|
+
'x =~ /home\/\//'])
|
73
|
+
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'accepts zero or one slash in // regexp' do
|
77
|
+
inspect_source(cop, ['x =~ /\/home/',
|
78
|
+
'y =~ /\//',
|
79
|
+
'w =~ /\//m',
|
80
|
+
'z =~ /a/'])
|
81
|
+
expect(cop.offenses).to be_empty
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'ignores slashes do not belong // regexp' do
|
85
|
+
inspect_source(cop, ['x =~ /\s{#{x[/\s+/].length}}/'])
|
86
|
+
expect(cop.offenses).to be_empty
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'registers an offense for zero or one slash in %r regexp' do
|
90
|
+
inspect_source(cop, ['x =~ %r(/home)',
|
91
|
+
'y =~ %r(etc)'])
|
92
|
+
expect(cop.messages)
|
93
|
+
.to eq(['Use %r only for regular expressions matching more ' \
|
94
|
+
"than 1 '/' character."] * 2)
|
95
|
+
expect(cop.config_to_allow_offenses).to eq('MaxSlashes' => -1)
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'accepts %r regexp with two or more slashes' do
|
99
|
+
inspect_source(cop, ['x =~ %r(/home/)',
|
100
|
+
'y =~ %r(/////)'])
|
101
|
+
expect(cop.offenses).to be_empty
|
81
102
|
end
|
82
103
|
end
|
83
104
|
end
|
@@ -5,10 +5,10 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::RescueModifier do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for modifier rescue' do
|
9
9
|
inspect_source(cop,
|
10
10
|
['method rescue handle'])
|
11
|
-
expect(cop.
|
11
|
+
expect(cop.offenses.size).to eq(1)
|
12
12
|
expect(cop.messages)
|
13
13
|
.to eq(['Avoid using rescue in its modifier form.'])
|
14
14
|
end
|
@@ -16,7 +16,7 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
16
16
|
it 'handles more complex expression with modifier rescue' do
|
17
17
|
inspect_source(cop,
|
18
18
|
['method1 or method2 rescue handle'])
|
19
|
-
expect(cop.
|
19
|
+
expect(cop.offenses.size).to eq(1)
|
20
20
|
expect(cop.messages)
|
21
21
|
.to eq(['Avoid using rescue in its modifier form.'])
|
22
22
|
end
|
@@ -28,21 +28,21 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
28
28
|
'rescue',
|
29
29
|
' normal_handle',
|
30
30
|
'end'])
|
31
|
-
expect(cop.
|
32
|
-
expect(cop.
|
31
|
+
expect(cop.offenses.size).to eq(1)
|
32
|
+
expect(cop.offenses.first.line).to eq(2)
|
33
33
|
end
|
34
34
|
|
35
|
-
it 'does not register an
|
35
|
+
it 'does not register an offense for normal rescue' do
|
36
36
|
inspect_source(cop,
|
37
37
|
['begin',
|
38
38
|
' test',
|
39
39
|
'rescue',
|
40
40
|
' handle',
|
41
41
|
'end'])
|
42
|
-
expect(cop.
|
42
|
+
expect(cop.offenses).to be_empty
|
43
43
|
end
|
44
44
|
|
45
|
-
it 'does not register an
|
45
|
+
it 'does not register an offense for normal rescue with ensure' do
|
46
46
|
inspect_source(cop,
|
47
47
|
['begin',
|
48
48
|
' test',
|
@@ -51,10 +51,10 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
51
51
|
'ensure',
|
52
52
|
' cleanup',
|
53
53
|
'end'])
|
54
|
-
expect(cop.
|
54
|
+
expect(cop.offenses).to be_empty
|
55
55
|
end
|
56
56
|
|
57
|
-
it 'does not register an
|
57
|
+
it 'does not register an offense for nested normal rescue' do
|
58
58
|
inspect_source(cop,
|
59
59
|
['begin',
|
60
60
|
' begin',
|
@@ -65,7 +65,7 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
65
65
|
'rescue',
|
66
66
|
' handle_outer',
|
67
67
|
'end'])
|
68
|
-
expect(cop.
|
68
|
+
expect(cop.offenses).to be_empty
|
69
69
|
end
|
70
70
|
|
71
71
|
context 'when an instance method has implicit begin' do
|
@@ -76,7 +76,7 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
76
76
|
'rescue',
|
77
77
|
' handle',
|
78
78
|
'end'])
|
79
|
-
expect(cop.
|
79
|
+
expect(cop.offenses).to be_empty
|
80
80
|
end
|
81
81
|
|
82
82
|
it 'handles modifier rescue in body of implicit begin' do
|
@@ -86,8 +86,8 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
86
86
|
'rescue',
|
87
87
|
' normal_handle',
|
88
88
|
'end'])
|
89
|
-
expect(cop.
|
90
|
-
expect(cop.
|
89
|
+
expect(cop.offenses.size).to eq(1)
|
90
|
+
expect(cop.offenses.first.line).to eq(2)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
@@ -99,7 +99,7 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
99
99
|
'rescue',
|
100
100
|
' handle',
|
101
101
|
'end'])
|
102
|
-
expect(cop.
|
102
|
+
expect(cop.offenses).to be_empty
|
103
103
|
end
|
104
104
|
|
105
105
|
it 'handles modifier rescue in body of implicit begin' do
|
@@ -109,8 +109,8 @@ describe Rubocop::Cop::Style::RescueModifier do
|
|
109
109
|
'rescue',
|
110
110
|
' normal_handle',
|
111
111
|
'end'])
|
112
|
-
expect(cop.
|
113
|
-
expect(cop.
|
112
|
+
expect(cop.offenses.size).to eq(1)
|
113
|
+
expect(cop.offenses.first.line).to eq(2)
|
114
114
|
end
|
115
115
|
end
|
116
116
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Rubocop::Cop::Style::SelfAssignment do
|
6
|
+
subject(:cop) { described_class.new }
|
7
|
+
|
8
|
+
described_class::OPS.product(['x', '@x', '@@x']).each do |op, var|
|
9
|
+
it "registers an offense for non-shorthand assignment #{op} and #{var}" do
|
10
|
+
inspect_source(cop,
|
11
|
+
["#{var} = #{var} #{op} y"])
|
12
|
+
expect(cop.offenses.size).to eq(1)
|
13
|
+
expect(cop.messages)
|
14
|
+
.to eq(["Use self-assignment shorthand #{op}=."])
|
15
|
+
end
|
16
|
+
|
17
|
+
it "accepts shorthand assignment for #{op} and #{var}" do
|
18
|
+
inspect_source(cop,
|
19
|
+
["#{var} = #{var} #{op} y"])
|
20
|
+
expect(cop.offenses.size).to eq(1)
|
21
|
+
expect(cop.messages)
|
22
|
+
.to eq(["Use self-assignment shorthand #{op}=."])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
['||', '&&'].product(['x', '@x', '@@x']).each do |op, var|
|
27
|
+
it "registers an offense for non-shorthand assignment #{op} and #{var}" do
|
28
|
+
inspect_source(cop,
|
29
|
+
["#{var} = #{var} #{op} y"])
|
30
|
+
expect(cop.offenses.size).to eq(1)
|
31
|
+
expect(cop.messages)
|
32
|
+
.to eq(["Use self-assignment shorthand #{op}=."])
|
33
|
+
end
|
34
|
+
|
35
|
+
it "accepts shorthand assignment for #{op} and #{var}" do
|
36
|
+
inspect_source(cop,
|
37
|
+
["#{var} = #{var} #{op} y"])
|
38
|
+
expect(cop.offenses.size).to eq(1)
|
39
|
+
expect(cop.messages)
|
40
|
+
.to eq(["Use self-assignment shorthand #{op}=."])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -6,34 +6,34 @@ describe Rubocop::Cop::Style::Semicolon, :config do
|
|
6
6
|
subject(:cop) { described_class.new(config) }
|
7
7
|
let(:cop_config) { { 'AllowAsExpressionSeparator' => false } }
|
8
8
|
|
9
|
-
it 'registers an
|
9
|
+
it 'registers an offense for a single expression' do
|
10
10
|
inspect_source(cop,
|
11
11
|
['puts "this is a test";'])
|
12
|
-
expect(cop.
|
12
|
+
expect(cop.offenses.size).to eq(1)
|
13
13
|
end
|
14
14
|
|
15
|
-
it 'registers an
|
15
|
+
it 'registers an offense for several expressions' do
|
16
16
|
inspect_source(cop,
|
17
17
|
['puts "this is a test"; puts "So is this"'])
|
18
|
-
expect(cop.
|
18
|
+
expect(cop.offenses.size).to eq(1)
|
19
19
|
end
|
20
20
|
|
21
|
-
it 'registers an
|
21
|
+
it 'registers an offense for one line method with two statements' do
|
22
22
|
inspect_source(cop,
|
23
23
|
['def foo(a) x(1); y(2); z(3); end'])
|
24
|
-
expect(cop.
|
24
|
+
expect(cop.offenses.size).to eq(1)
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'accepts semicolon before end if so configured' do
|
28
28
|
inspect_source(cop,
|
29
29
|
['def foo(a) z(3); end'])
|
30
|
-
expect(cop.
|
30
|
+
expect(cop.offenses).to be_empty
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'accepts semicolon after params if so configured' do
|
34
34
|
inspect_source(cop,
|
35
35
|
['def foo(a); z(3) end'])
|
36
|
-
expect(cop.
|
36
|
+
expect(cop.offenses).to be_empty
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'accepts one line method definitions' do
|
@@ -42,7 +42,7 @@ describe Rubocop::Cop::Style::Semicolon, :config do
|
|
42
42
|
'def initialize(*_); end',
|
43
43
|
'def foo2() x(3); end',
|
44
44
|
'def foo3; x(3); end'])
|
45
|
-
expect(cop.
|
45
|
+
expect(cop.offenses).to be_empty
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'accepts one line empty class definitions' do
|
@@ -51,7 +51,7 @@ describe Rubocop::Cop::Style::Semicolon, :config do
|
|
51
51
|
'class Foo < Exception; end',
|
52
52
|
'',
|
53
53
|
'class Bar; end'])
|
54
|
-
expect(cop.
|
54
|
+
expect(cop.offenses).to be_empty
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'accepts one line empty method definitions' do
|
@@ -60,26 +60,40 @@ describe Rubocop::Cop::Style::Semicolon, :config do
|
|
60
60
|
'def no_op; end',
|
61
61
|
'',
|
62
62
|
'def foo; end'])
|
63
|
-
expect(cop.
|
63
|
+
expect(cop.offenses).to be_empty
|
64
64
|
end
|
65
65
|
|
66
66
|
it 'accepts one line empty module definitions' do
|
67
67
|
inspect_source(cop,
|
68
68
|
['module Foo; end'])
|
69
|
-
expect(cop.
|
69
|
+
expect(cop.offenses).to be_empty
|
70
70
|
end
|
71
71
|
|
72
|
-
it 'registers an
|
72
|
+
it 'registers an offense for semicolon at the end no matter what' do
|
73
73
|
inspect_source(cop,
|
74
74
|
['module Foo; end;'])
|
75
|
-
expect(cop.
|
75
|
+
expect(cop.offenses.size).to eq(1)
|
76
76
|
end
|
77
77
|
|
78
78
|
it 'accept semicolons inside strings' do
|
79
79
|
inspect_source(cop,
|
80
80
|
['string = ";',
|
81
81
|
'multi-line string"'])
|
82
|
-
expect(cop.
|
82
|
+
expect(cop.offenses).to be_empty
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'auto-corrects semicolons when syntactically possible' do
|
86
|
+
corrected =
|
87
|
+
autocorrect_source(cop,
|
88
|
+
['module Foo; end;',
|
89
|
+
'puts "this is a test";',
|
90
|
+
'puts "this is a test"; puts "So is this"',
|
91
|
+
'def foo(a) x(1); y(2); z(3); end'])
|
92
|
+
expect(corrected)
|
93
|
+
.to eq(['module Foo; end',
|
94
|
+
'puts "this is a test"',
|
95
|
+
'puts "this is a test"; puts "So is this"',
|
96
|
+
'def foo(a) x(1); y(2); z(3); end'].join("\n"))
|
83
97
|
end
|
84
98
|
|
85
99
|
context 'when AllowAsExpressionSeparator is true' do
|
@@ -88,13 +102,13 @@ describe Rubocop::Cop::Style::Semicolon, :config do
|
|
88
102
|
it 'accepts several expressions' do
|
89
103
|
inspect_source(cop,
|
90
104
|
['puts "this is a test"; puts "So is this"'])
|
91
|
-
expect(cop.
|
105
|
+
expect(cop.offenses).to be_empty
|
92
106
|
end
|
93
107
|
|
94
108
|
it 'accepts one line method with two statements' do
|
95
109
|
inspect_source(cop,
|
96
110
|
['def foo(a) x(1); y(2); z(3); end'])
|
97
|
-
expect(cop.
|
111
|
+
expect(cop.offenses).to be_empty
|
98
112
|
end
|
99
113
|
end
|
100
114
|
end
|
@@ -8,38 +8,38 @@ describe Rubocop::Cop::Style::SignalException, :config do
|
|
8
8
|
context 'when enforced style is `semantic`' do
|
9
9
|
let(:cop_config) { { 'EnforcedStyle' => 'semantic' } }
|
10
10
|
|
11
|
-
it 'registers an
|
11
|
+
it 'registers an offense for raise in begin section' do
|
12
12
|
inspect_source(cop,
|
13
13
|
['begin',
|
14
14
|
' raise',
|
15
15
|
'rescue Exception',
|
16
16
|
' #do nothing',
|
17
17
|
'end'])
|
18
|
-
expect(cop.
|
18
|
+
expect(cop.offenses.size).to eq(1)
|
19
19
|
expect(cop.messages)
|
20
20
|
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
21
21
|
end
|
22
22
|
|
23
|
-
it 'registers an
|
23
|
+
it 'registers an offense for raise in def body' do
|
24
24
|
inspect_source(cop,
|
25
25
|
['def test',
|
26
26
|
' raise',
|
27
27
|
'rescue Exception',
|
28
28
|
' #do nothing',
|
29
29
|
'end'])
|
30
|
-
expect(cop.
|
30
|
+
expect(cop.offenses.size).to eq(1)
|
31
31
|
expect(cop.messages)
|
32
32
|
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
33
33
|
end
|
34
34
|
|
35
|
-
it 'registers an
|
35
|
+
it 'registers an offense for fail in rescue section' do
|
36
36
|
inspect_source(cop,
|
37
37
|
['begin',
|
38
38
|
' fail',
|
39
39
|
'rescue Exception',
|
40
40
|
' fail',
|
41
41
|
'end'])
|
42
|
-
expect(cop.
|
42
|
+
expect(cop.offenses.size).to eq(1)
|
43
43
|
expect(cop.messages)
|
44
44
|
.to eq(['Use `raise` instead of `fail` to rethrow exceptions.'])
|
45
45
|
end
|
@@ -51,28 +51,28 @@ describe Rubocop::Cop::Style::SignalException, :config do
|
|
51
51
|
'rescue Exception',
|
52
52
|
' raise RuntimeError',
|
53
53
|
'end'])
|
54
|
-
expect(cop.
|
54
|
+
expect(cop.offenses).to be_empty
|
55
55
|
end
|
56
56
|
|
57
|
-
it 'registers an
|
57
|
+
it 'registers an offense for fail in def rescue section' do
|
58
58
|
inspect_source(cop,
|
59
59
|
['def test',
|
60
60
|
' fail',
|
61
61
|
'rescue Exception',
|
62
62
|
' fail',
|
63
63
|
'end'])
|
64
|
-
expect(cop.
|
64
|
+
expect(cop.offenses.size).to eq(1)
|
65
65
|
expect(cop.messages)
|
66
66
|
.to eq(['Use `raise` instead of `fail` to rethrow exceptions.'])
|
67
67
|
end
|
68
68
|
|
69
|
-
it 'registers only
|
69
|
+
it 'registers only offense for one raise that should be fail' do
|
70
70
|
# This is a special case that has caused double reporting.
|
71
71
|
inspect_source(cop,
|
72
72
|
['map do',
|
73
73
|
" raise 'I'",
|
74
74
|
'end.flatten.compact'])
|
75
|
-
expect(cop.
|
75
|
+
expect(cop.offenses.size).to eq(1)
|
76
76
|
expect(cop.messages)
|
77
77
|
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
78
78
|
end
|
@@ -84,26 +84,26 @@ describe Rubocop::Cop::Style::SignalException, :config do
|
|
84
84
|
'rescue Exception',
|
85
85
|
' raise',
|
86
86
|
'end'])
|
87
|
-
expect(cop.
|
87
|
+
expect(cop.offenses).to be_empty
|
88
88
|
end
|
89
89
|
|
90
|
-
it 'registers an
|
90
|
+
it 'registers an offense for raise not in a begin/rescue/end' do
|
91
91
|
inspect_source(cop,
|
92
92
|
["case cop_config['EnforcedStyle']",
|
93
93
|
"when 'single_quotes' then true",
|
94
94
|
"when 'double_quotes' then false",
|
95
95
|
"else raise 'Unknown StringLiterals style'",
|
96
96
|
'end'])
|
97
|
-
expect(cop.
|
97
|
+
expect(cop.offenses.size).to eq(1)
|
98
98
|
expect(cop.messages)
|
99
99
|
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
100
100
|
end
|
101
101
|
|
102
|
-
it 'registers one
|
102
|
+
it 'registers one offense for each raise' do
|
103
103
|
inspect_source(cop,
|
104
104
|
['cop.stub(:on_def) { raise RuntimeError }',
|
105
105
|
'cop.stub(:on_def) { raise RuntimeError }'])
|
106
|
-
expect(cop.
|
106
|
+
expect(cop.offenses.size).to eq(2)
|
107
107
|
expect(cop.messages)
|
108
108
|
.to eq(['Use `fail` instead of `raise` to signal exceptions.'] * 2)
|
109
109
|
end
|
@@ -120,7 +120,7 @@ describe Rubocop::Cop::Style::SignalException, :config do
|
|
120
120
|
'rescue Exception',
|
121
121
|
' #do nothing',
|
122
122
|
'end'])
|
123
|
-
expect(cop.
|
123
|
+
expect(cop.offenses.size).to eq(3)
|
124
124
|
expect(cop.messages)
|
125
125
|
.to eq(['Use `fail` instead of `raise` to signal exceptions.'] * 2 +
|
126
126
|
['Use `raise` instead of `fail` to rethrow exceptions.'])
|
@@ -158,38 +158,38 @@ describe Rubocop::Cop::Style::SignalException, :config do
|
|
158
158
|
context 'when enforced style is `raise`' do
|
159
159
|
let(:cop_config) { { 'EnforcedStyle' => 'only_raise' } }
|
160
160
|
|
161
|
-
it 'registers an
|
161
|
+
it 'registers an offense for fail in begin section' do
|
162
162
|
inspect_source(cop,
|
163
163
|
['begin',
|
164
164
|
' fail',
|
165
165
|
'rescue Exception',
|
166
166
|
' #do nothing',
|
167
167
|
'end'])
|
168
|
-
expect(cop.
|
168
|
+
expect(cop.offenses.size).to eq(1)
|
169
169
|
expect(cop.messages)
|
170
170
|
.to eq(['Always use `raise` to signal exceptions.'])
|
171
171
|
end
|
172
172
|
|
173
|
-
it 'registers an
|
173
|
+
it 'registers an offense for fail in def body' do
|
174
174
|
inspect_source(cop,
|
175
175
|
['def test',
|
176
176
|
' fail',
|
177
177
|
'rescue Exception',
|
178
178
|
' #do nothing',
|
179
179
|
'end'])
|
180
|
-
expect(cop.
|
180
|
+
expect(cop.offenses.size).to eq(1)
|
181
181
|
expect(cop.messages)
|
182
182
|
.to eq(['Always use `raise` to signal exceptions.'])
|
183
183
|
end
|
184
184
|
|
185
|
-
it 'registers an
|
185
|
+
it 'registers an offense for fail in rescue section' do
|
186
186
|
inspect_source(cop,
|
187
187
|
['begin',
|
188
188
|
' raise',
|
189
189
|
'rescue Exception',
|
190
190
|
' fail',
|
191
191
|
'end'])
|
192
|
-
expect(cop.
|
192
|
+
expect(cop.offenses.size).to eq(1)
|
193
193
|
expect(cop.messages)
|
194
194
|
.to eq(['Always use `raise` to signal exceptions.'])
|
195
195
|
end
|
@@ -213,38 +213,38 @@ describe Rubocop::Cop::Style::SignalException, :config do
|
|
213
213
|
context 'when enforced style is `fail`' do
|
214
214
|
let(:cop_config) { { 'EnforcedStyle' => 'only_fail' } }
|
215
215
|
|
216
|
-
it 'registers an
|
216
|
+
it 'registers an offense for raise in begin section' do
|
217
217
|
inspect_source(cop,
|
218
218
|
['begin',
|
219
219
|
' raise',
|
220
220
|
'rescue Exception',
|
221
221
|
' #do nothing',
|
222
222
|
'end'])
|
223
|
-
expect(cop.
|
223
|
+
expect(cop.offenses.size).to eq(1)
|
224
224
|
expect(cop.messages)
|
225
225
|
.to eq(['Always use `fail` to signal exceptions.'])
|
226
226
|
end
|
227
227
|
|
228
|
-
it 'registers an
|
228
|
+
it 'registers an offense for raise in def body' do
|
229
229
|
inspect_source(cop,
|
230
230
|
['def test',
|
231
231
|
' raise',
|
232
232
|
'rescue Exception',
|
233
233
|
' #do nothing',
|
234
234
|
'end'])
|
235
|
-
expect(cop.
|
235
|
+
expect(cop.offenses.size).to eq(1)
|
236
236
|
expect(cop.messages)
|
237
237
|
.to eq(['Always use `fail` to signal exceptions.'])
|
238
238
|
end
|
239
239
|
|
240
|
-
it 'registers an
|
240
|
+
it 'registers an offense for raise in rescue section' do
|
241
241
|
inspect_source(cop,
|
242
242
|
['begin',
|
243
243
|
' fail',
|
244
244
|
'rescue Exception',
|
245
245
|
' raise',
|
246
246
|
'end'])
|
247
|
-
expect(cop.
|
247
|
+
expect(cop.offenses.size).to eq(1)
|
248
248
|
expect(cop.messages)
|
249
249
|
.to eq(['Always use `fail` to signal exceptions.'])
|
250
250
|
end
|