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
@@ -15,25 +15,25 @@ module Rubocop
|
|
15
15
|
end
|
16
16
|
o
|
17
17
|
end
|
18
|
-
let(:
|
19
|
-
[Rubocop::Cop::
|
20
|
-
Rubocop::Cop::
|
18
|
+
let(:offenses) do
|
19
|
+
[Rubocop::Cop::Offense.new(:convention, location, 'message', 'Cop1'),
|
20
|
+
Rubocop::Cop::Offense.new(:convention, location, 'message', 'Cop2')]
|
21
21
|
end
|
22
22
|
let(:location) { OpenStruct.new(line: 1, column: 5) }
|
23
23
|
before { $stdout = StringIO.new }
|
24
24
|
|
25
25
|
describe '#finished' do
|
26
|
-
it 'displays YAML configuration disabling all cops with
|
27
|
-
formatter.file_finished('test.rb',
|
26
|
+
it 'displays YAML configuration disabling all cops with offenses' do
|
27
|
+
formatter.file_finished('test.rb', offenses)
|
28
28
|
formatter.finished(['test.rb'])
|
29
29
|
expect(output.string).to eq(described_class::HEADING +
|
30
30
|
['',
|
31
31
|
'',
|
32
|
-
'#
|
32
|
+
'# Offense count: 1',
|
33
33
|
'Cop1:',
|
34
34
|
' Enabled: false',
|
35
35
|
'',
|
36
|
-
'#
|
36
|
+
'# Offense count: 1',
|
37
37
|
'Cop2:',
|
38
38
|
' Enabled: false',
|
39
39
|
''].join("\n"))
|
@@ -15,23 +15,23 @@ module Rubocop
|
|
15
15
|
source_buffer = Parser::Source::Buffer.new('test', 1)
|
16
16
|
source_buffer.source = %w(a b cdefghi).join("\n")
|
17
17
|
|
18
|
-
cop.
|
18
|
+
cop.add_offense(nil,
|
19
19
|
Parser::Source::Range.new(source_buffer, 0, 1),
|
20
20
|
'message 1')
|
21
|
-
cop.
|
21
|
+
cop.add_offense(nil,
|
22
22
|
Parser::Source::Range.new(source_buffer, 9, 10),
|
23
23
|
'message 2')
|
24
24
|
|
25
|
-
formatter.file_finished('test', cop.
|
25
|
+
formatter.file_finished('test', cop.offenses)
|
26
26
|
expect(output.string).to eq ['test:1:1: C: message 1',
|
27
27
|
"test:3:6: C: message 2\n"].join("\n")
|
28
28
|
end
|
29
29
|
|
30
|
-
context 'when the
|
30
|
+
context 'when the offense is automatically corrected' do
|
31
31
|
let(:file) { '/path/to/file' }
|
32
32
|
|
33
|
-
let(:
|
34
|
-
Cop::
|
33
|
+
let(:offense) do
|
34
|
+
Cop::Offense.new(:convention, location,
|
35
35
|
'This is a message.', 'CopName', corrected)
|
36
36
|
end
|
37
37
|
|
@@ -44,7 +44,7 @@ module Rubocop
|
|
44
44
|
let(:corrected) { true }
|
45
45
|
|
46
46
|
it 'prints [Corrected] along with message' do
|
47
|
-
formatter.file_finished(file, [
|
47
|
+
formatter.file_finished(file, [offense])
|
48
48
|
expect(output.string)
|
49
49
|
.to include(': [Corrected] This is a message.')
|
50
50
|
end
|
@@ -15,15 +15,15 @@ module Rubocop
|
|
15
15
|
source_buffer = Parser::Source::Buffer.new('test', 1)
|
16
16
|
source_buffer.source = %w(a b cdefghi).join("\n")
|
17
17
|
|
18
|
-
cop.
|
18
|
+
cop.add_offense(nil,
|
19
19
|
Parser::Source::Range.new(source_buffer, 0, 1),
|
20
20
|
'message 1')
|
21
|
-
cop.
|
21
|
+
cop.add_offense(nil,
|
22
22
|
Parser::Source::Range.new(source_buffer, 9, 10),
|
23
23
|
'message 2')
|
24
24
|
|
25
|
-
formatter.file_finished('test', cop.
|
26
|
-
formatter.file_finished('test_2', cop.
|
25
|
+
formatter.file_finished('test', cop.offenses)
|
26
|
+
formatter.file_finished('test_2', cop.offenses)
|
27
27
|
expect(output.string).to eq ['test',
|
28
28
|
"test_2\n"].join("\n")
|
29
29
|
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'stringio'
|
5
|
+
|
6
|
+
module Rubocop
|
7
|
+
describe Formatter::FuubarStyleFormatter do
|
8
|
+
subject(:formatter) { described_class.new(output) }
|
9
|
+
let(:output) { StringIO.new }
|
10
|
+
|
11
|
+
let(:files) do
|
12
|
+
%w(lib/rubocop.rb spec/spec_helper.rb).map do |path|
|
13
|
+
File.expand_path(path)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#with_color' do
|
18
|
+
around do |example|
|
19
|
+
original_state = formatter.rainbow.enabled
|
20
|
+
|
21
|
+
begin
|
22
|
+
example.run
|
23
|
+
ensure
|
24
|
+
formatter.rainbow.enabled = original_state
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when color is enabled' do
|
29
|
+
before do
|
30
|
+
formatter.rainbow.enabled = true
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'outputs coloring sequence code at the beginning and the end' do
|
34
|
+
formatter.with_color { formatter.output.write 'foo' }
|
35
|
+
expect(output.string).to eq("\e[32mfoo\e[0m")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when color is enabled' do
|
40
|
+
before do
|
41
|
+
formatter.rainbow.enabled = false
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'outputs nothing' do
|
45
|
+
formatter.with_color { formatter.output.write 'foo' }
|
46
|
+
expect(output.string).to eq('foo')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe '#progressbar_color' do
|
52
|
+
before do
|
53
|
+
formatter.started(files)
|
54
|
+
end
|
55
|
+
|
56
|
+
def offense(severity, corrected = false)
|
57
|
+
source_range = double('source_range').as_null_object
|
58
|
+
Cop::Offense.new(severity, source_range, 'message', 'Cop', corrected)
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'initially' do
|
62
|
+
it 'is green' do
|
63
|
+
expect(formatter.progressbar_color).to eq(:green)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'when no offenses are detected in a file' do
|
68
|
+
before do
|
69
|
+
formatter.file_finished(files[0], [])
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'is still green' do
|
73
|
+
expect(formatter.progressbar_color).to eq(:green)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context 'when a convention offense is detected in a file' do
|
78
|
+
before do
|
79
|
+
formatter.file_finished(files[0], [offense(:convention)])
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'is yellow' do
|
83
|
+
expect(formatter.progressbar_color).to eq(:yellow)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context 'when an error offense is detected in a file' do
|
88
|
+
before do
|
89
|
+
formatter.file_finished(files[0], [offense(:error)])
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'is red' do
|
93
|
+
expect(formatter.progressbar_color).to eq(:red)
|
94
|
+
end
|
95
|
+
|
96
|
+
context 'and then a convention offense is detected in the next file' do
|
97
|
+
before do
|
98
|
+
formatter.file_finished(files[1], [offense(:convention)])
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'is still red' do
|
102
|
+
expect(formatter.progressbar_color).to eq(:red)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context 'when convention and error offenses are detected in a file' do
|
108
|
+
before do
|
109
|
+
offenses = [offense(:convention), offense(:error)]
|
110
|
+
formatter.file_finished(files[0], offenses)
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'is red' do
|
114
|
+
expect(formatter.progressbar_color).to eq(:red)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context 'when a offense is detected in a file and auto-corrected' do
|
119
|
+
before do
|
120
|
+
formatter.file_finished(files[0], [offense(:convention, true)])
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'is green' do
|
124
|
+
expect(formatter.progressbar_color).to eq(:green)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -13,8 +13,8 @@ module Rubocop
|
|
13
13
|
source_buffer.source = %w(a b cdefghi).join("\n")
|
14
14
|
Parser::Source::Range.new(source_buffer, 9, 10)
|
15
15
|
end
|
16
|
-
let(:
|
17
|
-
Cop::
|
16
|
+
let(:offense) do
|
17
|
+
Cop::Offense.new(:convention, location,
|
18
18
|
'This is message', 'CopName', true)
|
19
19
|
end
|
20
20
|
|
@@ -38,15 +38,15 @@ module Rubocop
|
|
38
38
|
|
39
39
|
let(:summary) { formatter.output_hash[:summary] }
|
40
40
|
|
41
|
-
it 'adds detected
|
42
|
-
expect(summary[:
|
41
|
+
it 'adds detected offense count in summary' do
|
42
|
+
expect(summary[:offense_count]).to eq(0)
|
43
43
|
|
44
44
|
formatter.file_started(files[0], {})
|
45
|
-
expect(summary[:
|
45
|
+
expect(summary[:offense_count]).to eq(0)
|
46
46
|
formatter.file_finished(files[0], [
|
47
|
-
double('
|
47
|
+
double('offense1'), double('offense2')
|
48
48
|
])
|
49
|
-
expect(summary[:
|
49
|
+
expect(summary[:offense_count]).to eq(2)
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'adds value of #hash_for_file to #output_hash[:files]' do
|
@@ -82,9 +82,9 @@ module Rubocop
|
|
82
82
|
end
|
83
83
|
|
84
84
|
describe '#hash_for_file' do
|
85
|
-
subject(:hash) { formatter.hash_for_file(file,
|
85
|
+
subject(:hash) { formatter.hash_for_file(file, offenses) }
|
86
86
|
let(:file) { File.expand_path('spec/spec_helper.rb') }
|
87
|
-
let(:
|
87
|
+
let(:offenses) { [double('offense1'), double('offense2')] }
|
88
88
|
|
89
89
|
it 'sets relative file path for :path key' do
|
90
90
|
expect(hash[:path]).to eq('spec/spec_helper.rb')
|
@@ -92,32 +92,32 @@ module Rubocop
|
|
92
92
|
|
93
93
|
before do
|
94
94
|
count = 0
|
95
|
-
allow(formatter).to receive(:
|
95
|
+
allow(formatter).to receive(:hash_for_offense) do
|
96
96
|
count += 1
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
|
-
it 'sets an array of #
|
101
|
-
expect(hash[:
|
100
|
+
it 'sets an array of #hash_for_offense values for :offenses key' do
|
101
|
+
expect(hash[:offenses]).to eq([1, 2])
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
-
describe '#
|
106
|
-
subject(:hash) { formatter.
|
105
|
+
describe '#hash_for_offense' do
|
106
|
+
subject(:hash) { formatter.hash_for_offense(offense) }
|
107
107
|
|
108
|
-
it 'sets
|
108
|
+
it 'sets Offense#severity value for :severity key' do
|
109
109
|
expect(hash[:severity]).to eq(:convention)
|
110
110
|
end
|
111
111
|
|
112
|
-
it 'sets
|
112
|
+
it 'sets Offense#message value for :message key' do
|
113
113
|
expect(hash[:message]).to eq('This is message')
|
114
114
|
end
|
115
115
|
|
116
|
-
it 'sets
|
116
|
+
it 'sets Offense#cop_name value for :cop_name key' do
|
117
117
|
expect(hash[:cop_name]).to eq('CopName')
|
118
118
|
end
|
119
119
|
|
120
|
-
it 'sets
|
120
|
+
it 'sets Offense#corrected? value for :corrected key' do
|
121
121
|
expect(hash[:corrected]).to be_true
|
122
122
|
end
|
123
123
|
|
@@ -134,7 +134,7 @@ module Rubocop
|
|
134
134
|
end
|
135
135
|
|
136
136
|
describe '#hash_for_location' do
|
137
|
-
subject(:hash) { formatter.hash_for_location(
|
137
|
+
subject(:hash) { formatter.hash_for_location(offense) }
|
138
138
|
|
139
139
|
it 'sets line value for :line key' do
|
140
140
|
expect(hash[:line]).to eq(3)
|
@@ -143,6 +143,10 @@ module Rubocop
|
|
143
143
|
it 'sets column value for :column key' do
|
144
144
|
expect(hash[:column]).to eq(6)
|
145
145
|
end
|
146
|
+
|
147
|
+
it 'sets length value for :length key' do
|
148
|
+
expect(hash[:length]).to eq(1)
|
149
|
+
end
|
146
150
|
end
|
147
151
|
end
|
148
152
|
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'stringio'
|
5
|
+
require 'tempfile'
|
6
|
+
|
7
|
+
module Rubocop
|
8
|
+
module Formatter
|
9
|
+
describe OffenseCountFormatter do
|
10
|
+
subject(:formatter) { described_class.new(output) }
|
11
|
+
let(:output) { StringIO.new }
|
12
|
+
|
13
|
+
let(:files) do
|
14
|
+
%w(lib/rubocop.rb spec/spec_helper.rb bin/rubocop).map do |path|
|
15
|
+
File.expand_path(path)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
let(:finish) { formatter.file_finished(files.first, offenses) }
|
20
|
+
|
21
|
+
describe '#file_finished' do
|
22
|
+
before { formatter.started(files) }
|
23
|
+
|
24
|
+
context 'when no offenses are detected' do
|
25
|
+
let(:offenses) { [] }
|
26
|
+
it 'shouldn\'t add to offense_counts' do
|
27
|
+
expect { finish }.to_not change { formatter.offense_counts }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'when any offenses are detected' do
|
32
|
+
let(:offenses) { [double('offense', cop_name: 'OffendedCop')] }
|
33
|
+
it 'should increment the count for the cop in offense_counts' do
|
34
|
+
expect { finish }.to change { formatter.offense_counts }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#report_summary' do
|
40
|
+
context 'when an offense is detected' do
|
41
|
+
let(:cop_counts) { { 'OffendedCop' => 1 } }
|
42
|
+
it 'shows the cop and the offense count' do
|
43
|
+
formatter.report_summary(1, cop_counts)
|
44
|
+
expect(output.string).to include(
|
45
|
+
"\n1 OffendedCop\n--\n1 Total")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#finished' do
|
51
|
+
context 'when there are many offenses' do
|
52
|
+
let(:offenses) do
|
53
|
+
%w(CopB CopA CopC CopC).map { |c| double('offense', cop_name: c) }
|
54
|
+
end
|
55
|
+
|
56
|
+
before do
|
57
|
+
formatter.started(files)
|
58
|
+
finish
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'sorts by offense count first and then by cop name' do
|
62
|
+
formatter.finished(files)
|
63
|
+
expect(output.string).to eq(['',
|
64
|
+
'2 CopC',
|
65
|
+
'1 CopA',
|
66
|
+
'1 CopB',
|
67
|
+
'--',
|
68
|
+
'4 Total',
|
69
|
+
'',
|
70
|
+
''].join("\n"))
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -23,64 +23,64 @@ module Rubocop
|
|
23
23
|
shared_examples 'calls #report_file_as_mark' do
|
24
24
|
it 'calls #report_as_with_mark' do
|
25
25
|
expect(formatter).to receive(:report_file_as_mark)
|
26
|
-
formatter.file_finished(files.first,
|
26
|
+
formatter.file_finished(files.first, offenses)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
context 'when no
|
31
|
-
let(:
|
30
|
+
context 'when no offenses are detected' do
|
31
|
+
let(:offenses) { [] }
|
32
32
|
include_examples 'calls #report_file_as_mark'
|
33
33
|
end
|
34
34
|
|
35
|
-
context 'when any
|
36
|
-
let(:
|
35
|
+
context 'when any offenses are detected' do
|
36
|
+
let(:offenses) { [double('offense').as_null_object] }
|
37
37
|
include_examples 'calls #report_file_as_mark'
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
describe '#report_file_as_mark' do
|
42
42
|
before do
|
43
|
-
formatter.report_file_as_mark(files.first,
|
43
|
+
formatter.report_file_as_mark(files.first, offenses)
|
44
44
|
end
|
45
45
|
|
46
|
-
def
|
46
|
+
def offense_with_severity(severity)
|
47
47
|
source_buffer = Parser::Source::Buffer.new('test', 1)
|
48
48
|
source_buffer.source = "a\n"
|
49
|
-
Cop::
|
49
|
+
Cop::Offense.new(severity,
|
50
50
|
Parser::Source::Range.new(source_buffer, 0, 1),
|
51
51
|
'message',
|
52
52
|
'CopName')
|
53
53
|
end
|
54
54
|
|
55
|
-
context 'when no
|
56
|
-
let(:
|
55
|
+
context 'when no offenses are detected' do
|
56
|
+
let(:offenses) { [] }
|
57
57
|
|
58
58
|
it 'prints "."' do
|
59
59
|
expect(output.string).to eq('.')
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
context 'when a refactor severity
|
64
|
-
let(:
|
63
|
+
context 'when a refactor severity offense is detected' do
|
64
|
+
let(:offenses) { [offense_with_severity(:refactor)] }
|
65
65
|
|
66
66
|
it 'prints "R"' do
|
67
67
|
expect(output.string).to eq('R')
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
context 'when a refactor convention
|
72
|
-
let(:
|
71
|
+
context 'when a refactor convention offense is detected' do
|
72
|
+
let(:offenses) { [offense_with_severity(:convention)] }
|
73
73
|
|
74
74
|
it 'prints "C"' do
|
75
75
|
expect(output.string).to eq('C')
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
-
context 'when different severity
|
80
|
-
let(:
|
79
|
+
context 'when different severity offenses are detected' do
|
80
|
+
let(:offenses) do
|
81
81
|
[
|
82
|
-
|
83
|
-
|
82
|
+
offense_with_severity(:refactor),
|
83
|
+
offense_with_severity(:error)
|
84
84
|
]
|
85
85
|
end
|
86
86
|
|
@@ -95,7 +95,7 @@ module Rubocop
|
|
95
95
|
formatter.started(files)
|
96
96
|
end
|
97
97
|
|
98
|
-
context 'when any
|
98
|
+
context 'when any offenses are detected' do
|
99
99
|
before do
|
100
100
|
source_buffer = Parser::Source::Buffer.new('test', 1)
|
101
101
|
source = 9.times.map do |index|
|
@@ -106,7 +106,7 @@ module Rubocop
|
|
106
106
|
|
107
107
|
formatter.file_started(files[0], {})
|
108
108
|
formatter.file_finished(files[0], [
|
109
|
-
Cop::
|
109
|
+
Cop::Offense.new(
|
110
110
|
:convention,
|
111
111
|
Parser::Source::Range.new(source_buffer,
|
112
112
|
line_length + 2,
|
@@ -122,7 +122,7 @@ module Rubocop
|
|
122
122
|
|
123
123
|
formatter.file_started(files[2], {})
|
124
124
|
formatter.file_finished(files[2], [
|
125
|
-
Cop::
|
125
|
+
Cop::Offense.new(
|
126
126
|
:error,
|
127
127
|
Parser::Source::Range.new(source_buffer,
|
128
128
|
4 * line_length + 1,
|
@@ -130,7 +130,7 @@ module Rubocop
|
|
130
130
|
'bar',
|
131
131
|
'Cop'
|
132
132
|
),
|
133
|
-
Cop::
|
133
|
+
Cop::Offense.new(
|
134
134
|
:convention,
|
135
135
|
Parser::Source::Range.new(source_buffer,
|
136
136
|
5 * line_length,
|
@@ -141,10 +141,10 @@ module Rubocop
|
|
141
141
|
])
|
142
142
|
end
|
143
143
|
|
144
|
-
it 'reports all detected
|
144
|
+
it 'reports all detected offenses for all failed files' do
|
145
145
|
formatter.finished(files)
|
146
146
|
expect(output.string).to include([
|
147
|
-
'
|
147
|
+
'Offenses:',
|
148
148
|
'',
|
149
149
|
'lib/rubocop.rb:2:3: C: foo',
|
150
150
|
'This is line 2.',
|
@@ -159,7 +159,7 @@ module Rubocop
|
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
162
|
-
context 'when no
|
162
|
+
context 'when no offenses are detected' do
|
163
163
|
before do
|
164
164
|
files.each do |file|
|
165
165
|
formatter.file_started(file, {})
|
@@ -167,9 +167,9 @@ module Rubocop
|
|
167
167
|
end
|
168
168
|
end
|
169
169
|
|
170
|
-
it 'does not report
|
170
|
+
it 'does not report offenses' do
|
171
171
|
formatter.finished(files)
|
172
|
-
expect(output.string).not_to include('
|
172
|
+
expect(output.string).not_to include('Offenses:')
|
173
173
|
end
|
174
174
|
end
|
175
175
|
|