rubocop 0.18.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -6,8 +6,8 @@ module Rubocop
|
|
6
6
|
# The precise location of the problem is shown together with the
|
7
7
|
# relevant source code.
|
8
8
|
class ClangStyleFormatter < SimpleTextFormatter
|
9
|
-
def report_file(file,
|
10
|
-
|
9
|
+
def report_file(file, offenses)
|
10
|
+
offenses.each do |o|
|
11
11
|
output.printf("%s:%d:%d: %s: %s\n",
|
12
12
|
cyan(smart_path(file)), o.line, o.real_column,
|
13
13
|
colored_severity_code(o), message(o))
|
@@ -3,37 +3,37 @@
|
|
3
3
|
module Rubocop
|
4
4
|
module Formatter
|
5
5
|
# This formatter displays a YAML configuration file where all cops that
|
6
|
-
# detected any
|
6
|
+
# detected any offenses are configured to not detect the offense.
|
7
7
|
class DisabledConfigFormatter < BaseFormatter
|
8
8
|
HEADING =
|
9
9
|
['# This configuration was generated by `rubocop --auto-gen-config`',
|
10
10
|
"# on #{Time.now} using RuboCop version #{Version.version}.",
|
11
11
|
'# The point is for the user to remove these configuration records',
|
12
|
-
'# one by one as the
|
12
|
+
'# one by one as the offenses are removed from the code base.',
|
13
13
|
'# Note that changes in the inspected code, or installation of new',
|
14
14
|
'# versions of RuboCop, may require this file to be generated again.']
|
15
15
|
.join("\n")
|
16
16
|
|
17
|
-
@
|
17
|
+
@config_to_allow_offenses = {}
|
18
18
|
|
19
19
|
COPS = Cop::Cop.all.group_by { |c| c.cop_name }
|
20
20
|
|
21
21
|
class << self
|
22
|
-
attr_accessor :
|
22
|
+
attr_accessor :config_to_allow_offenses
|
23
23
|
end
|
24
24
|
|
25
|
-
def file_finished(file,
|
26
|
-
@
|
27
|
-
|
25
|
+
def file_finished(file, offenses)
|
26
|
+
@cops_with_offenses ||= Hash.new(0)
|
27
|
+
offenses.each { |o| @cops_with_offenses[o.cop_name] += 1 }
|
28
28
|
end
|
29
29
|
|
30
30
|
def finished(inspected_files)
|
31
31
|
output.puts HEADING
|
32
|
-
@
|
32
|
+
@cops_with_offenses.sort.each do |cop_name, offense_count|
|
33
33
|
output.puts
|
34
|
-
cfg = self.class.
|
34
|
+
cfg = self.class.config_to_allow_offenses[cop_name]
|
35
35
|
cfg ||= { 'Enabled' => false }
|
36
|
-
output_cop_comments(output, cfg, cop_name,
|
36
|
+
output_cop_comments(output, cfg, cop_name, offense_count)
|
37
37
|
output.puts "#{cop_name}:"
|
38
38
|
cfg.each { |key, value| output.puts " #{key}: #{value}" }
|
39
39
|
end
|
@@ -42,8 +42,8 @@ module Rubocop
|
|
42
42
|
puts "add inherit_from: #{output.path} in a .rubocop.yml file."
|
43
43
|
end
|
44
44
|
|
45
|
-
def output_cop_comments(output, cfg, cop_name,
|
46
|
-
output.puts "#
|
45
|
+
def output_cop_comments(output, cfg, cop_name, offense_count)
|
46
|
+
output.puts "# Offense count: #{offense_count}"
|
47
47
|
if COPS[cop_name] && COPS[cop_name].first.new.support_autocorrect?
|
48
48
|
output.puts '# Cop supports --auto-correct.'
|
49
49
|
end
|
@@ -4,9 +4,10 @@ module Rubocop
|
|
4
4
|
module Formatter
|
5
5
|
# This formatter displays the report data in format that's
|
6
6
|
# easy to process in the Emacs text editor.
|
7
|
+
# The output is machine-parsable.
|
7
8
|
class EmacsStyleFormatter < BaseFormatter
|
8
|
-
def file_finished(file,
|
9
|
-
|
9
|
+
def file_finished(file, offenses)
|
10
|
+
offenses.each do |o|
|
10
11
|
message = o.corrected? ? '[Corrected] ' : ''
|
11
12
|
message << o.message
|
12
13
|
|
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
module Rubocop
|
4
4
|
module Formatter
|
5
|
-
# This formatter displays just a list of the files with
|
6
|
-
# separated by newlines.
|
5
|
+
# This formatter displays just a list of the files with offenses in them,
|
6
|
+
# separated by newlines. The output is machine-parsable.
|
7
7
|
#
|
8
8
|
# Here's the format:
|
9
9
|
#
|
10
10
|
# /some/file
|
11
11
|
# /some/other/file
|
12
12
|
class FileListFormatter < BaseFormatter
|
13
|
-
def file_finished(file,
|
14
|
-
return if
|
13
|
+
def file_finished(file, offenses)
|
14
|
+
return if offenses.empty?
|
15
15
|
output.printf("%s\n", file)
|
16
16
|
end
|
17
17
|
end
|
@@ -10,10 +10,11 @@ module Rubocop
|
|
10
10
|
'progress' => ProgressFormatter,
|
11
11
|
'simple' => SimpleTextFormatter,
|
12
12
|
'clang' => ClangStyleFormatter,
|
13
|
+
'fuubar' => FuubarStyleFormatter,
|
13
14
|
'emacs' => EmacsStyleFormatter,
|
14
15
|
'json' => JSONFormatter,
|
15
16
|
'files' => FileListFormatter,
|
16
|
-
'
|
17
|
+
'offenses' => OffenseCountFormatter
|
17
18
|
}
|
18
19
|
|
19
20
|
FORMATTER_APIS = [:started, :file_started, :file_finished, :finished]
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'ruby-progressbar'
|
4
|
+
|
5
|
+
module Rubocop
|
6
|
+
module Formatter
|
7
|
+
# This formatter displays a progress bar and shows details of offenses as
|
8
|
+
# soon as they are detected.
|
9
|
+
# This is inspired by the Fuubar formatter for RSpec by Jeff Kreeftmeijer.
|
10
|
+
# https://github.com/jeffkreeftmeijer/fuubar
|
11
|
+
class FuubarStyleFormatter < ClangStyleFormatter
|
12
|
+
RESET_SEQUENCE = "\e[0m"
|
13
|
+
|
14
|
+
def started(target_files)
|
15
|
+
super
|
16
|
+
|
17
|
+
@severest_offense = nil
|
18
|
+
|
19
|
+
file_phrase = target_files.count == 1 ? 'file' : 'files'
|
20
|
+
|
21
|
+
# 185/407 files |====== 45 ======> | ETA: 00:00:04
|
22
|
+
# %c / %C | %w > %i | %e
|
23
|
+
bar_format = " %c/%C #{file_phrase} |%w>%i| %e "
|
24
|
+
|
25
|
+
@progressbar = ProgressBar.create(
|
26
|
+
output: output,
|
27
|
+
total: target_files.count,
|
28
|
+
format: bar_format,
|
29
|
+
autostart: false
|
30
|
+
)
|
31
|
+
with_color { @progressbar.start }
|
32
|
+
end
|
33
|
+
|
34
|
+
def file_finished(file, offenses)
|
35
|
+
count_stats(offenses)
|
36
|
+
|
37
|
+
unless offenses.empty?
|
38
|
+
@progressbar.clear
|
39
|
+
report_file(file, offenses)
|
40
|
+
end
|
41
|
+
|
42
|
+
with_color { @progressbar.increment }
|
43
|
+
end
|
44
|
+
|
45
|
+
def count_stats(offenses)
|
46
|
+
super
|
47
|
+
|
48
|
+
offenses = offenses.reject(&:corrected?)
|
49
|
+
return if offenses.empty?
|
50
|
+
|
51
|
+
offenses << @severest_offense if @severest_offense
|
52
|
+
@severest_offense = offenses.max do |a, b|
|
53
|
+
a.severity_level <=> b.severity_level
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def with_color
|
58
|
+
if rainbow.enabled
|
59
|
+
output.write colorize('', progressbar_color).chomp(RESET_SEQUENCE)
|
60
|
+
yield
|
61
|
+
output.write RESET_SEQUENCE
|
62
|
+
else
|
63
|
+
yield
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def progressbar_color
|
68
|
+
if @severest_offense
|
69
|
+
COLOR_FOR_SEVERITY[@severest_offense.severity]
|
70
|
+
else
|
71
|
+
:green
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -14,7 +14,7 @@ module Rubocop
|
|
14
14
|
@output_hash = {
|
15
15
|
metadata: metadata_hash,
|
16
16
|
files: [],
|
17
|
-
summary: {
|
17
|
+
summary: { offense_count: 0 }
|
18
18
|
}
|
19
19
|
end
|
20
20
|
|
@@ -22,9 +22,9 @@ module Rubocop
|
|
22
22
|
output_hash[:summary][:target_file_count] = target_files.count
|
23
23
|
end
|
24
24
|
|
25
|
-
def file_finished(file,
|
26
|
-
output_hash[:files] << hash_for_file(file,
|
27
|
-
output_hash[:summary][:
|
25
|
+
def file_finished(file, offenses)
|
26
|
+
output_hash[:files] << hash_for_file(file, offenses)
|
27
|
+
output_hash[:summary][:offense_count] += offenses.count
|
28
28
|
end
|
29
29
|
|
30
30
|
def finished(inspected_files)
|
@@ -42,28 +42,29 @@ module Rubocop
|
|
42
42
|
}
|
43
43
|
end
|
44
44
|
|
45
|
-
def hash_for_file(file,
|
45
|
+
def hash_for_file(file, offenses)
|
46
46
|
{
|
47
47
|
path: relative_path(file),
|
48
|
-
|
48
|
+
offenses: offenses.map { |o| hash_for_offense(o) }
|
49
49
|
}
|
50
50
|
end
|
51
51
|
|
52
|
-
def
|
52
|
+
def hash_for_offense(offense)
|
53
53
|
{
|
54
|
-
severity:
|
55
|
-
message:
|
56
|
-
cop_name:
|
57
|
-
corrected:
|
58
|
-
location: hash_for_location(
|
54
|
+
severity: offense.severity,
|
55
|
+
message: offense.message,
|
56
|
+
cop_name: offense.cop_name,
|
57
|
+
corrected: offense.corrected?,
|
58
|
+
location: hash_for_location(offense)
|
59
59
|
}
|
60
60
|
end
|
61
61
|
|
62
|
-
# TODO: Consider better solution for
|
63
|
-
def hash_for_location(
|
62
|
+
# TODO: Consider better solution for Offense#real_column.
|
63
|
+
def hash_for_location(offense)
|
64
64
|
{
|
65
|
-
line:
|
66
|
-
column:
|
65
|
+
line: offense.line,
|
66
|
+
column: offense.real_column,
|
67
|
+
length: offense.location.length
|
67
68
|
}
|
68
69
|
end
|
69
70
|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Rubocop
|
4
|
+
module Formatter
|
5
|
+
# This formatter displays the list of offended cops with a count of how
|
6
|
+
# many offenses of their kind were found. Ordered by desc offense count
|
7
|
+
#
|
8
|
+
# Here's the format:
|
9
|
+
#
|
10
|
+
# 26 LineLength
|
11
|
+
# 3 OneLineConditional
|
12
|
+
# --
|
13
|
+
# 29 Total
|
14
|
+
class OffenseCountFormatter < BaseFormatter
|
15
|
+
attr_reader :offense_counts
|
16
|
+
|
17
|
+
def started(target_files)
|
18
|
+
super
|
19
|
+
@offense_counts = Hash.new(0)
|
20
|
+
end
|
21
|
+
|
22
|
+
def file_finished(file, offenses)
|
23
|
+
offenses.each { |o| @offense_counts[o.cop_name] += 1 }
|
24
|
+
end
|
25
|
+
|
26
|
+
def finished(inspected_files)
|
27
|
+
report_summary(inspected_files.count,
|
28
|
+
ordered_offense_counts(@offense_counts))
|
29
|
+
end
|
30
|
+
|
31
|
+
def report_summary(file_count, offense_counts)
|
32
|
+
output.puts
|
33
|
+
|
34
|
+
offense_count = total_offense_count(offense_counts)
|
35
|
+
offense_counts.each do |cop_name, count|
|
36
|
+
output.puts "#{count.to_s.ljust(offense_count.to_s.length + 2)}" \
|
37
|
+
"#{cop_name}\n"
|
38
|
+
end
|
39
|
+
output.puts '--'
|
40
|
+
output.puts "#{offense_count} Total"
|
41
|
+
|
42
|
+
output.puts
|
43
|
+
end
|
44
|
+
|
45
|
+
def ordered_offense_counts(offense_counts)
|
46
|
+
Hash[offense_counts.sort_by { |k, v| [-v, k] }]
|
47
|
+
end
|
48
|
+
|
49
|
+
def total_offense_count(offense_counts = {})
|
50
|
+
offense_counts.values.inject(0, :+)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -2,52 +2,52 @@
|
|
2
2
|
|
3
3
|
module Rubocop
|
4
4
|
module Formatter
|
5
|
-
# This formatter display dots for files with no
|
5
|
+
# This formatter display dots for files with no offenses and
|
6
6
|
# letters for files with problems in the them. In the end it
|
7
7
|
# appends the regular report data in the clang style format.
|
8
8
|
class ProgressFormatter < ClangStyleFormatter
|
9
9
|
def started(target_files)
|
10
10
|
super
|
11
|
-
@
|
11
|
+
@offenses_for_files = {}
|
12
12
|
file_phrase = target_files.count == 1 ? 'file' : 'files'
|
13
13
|
output.puts "Inspecting #{target_files.count} #{file_phrase}"
|
14
14
|
end
|
15
15
|
|
16
|
-
def file_finished(file,
|
17
|
-
unless
|
18
|
-
count_stats(
|
19
|
-
@
|
16
|
+
def file_finished(file, offenses)
|
17
|
+
unless offenses.empty?
|
18
|
+
count_stats(offenses)
|
19
|
+
@offenses_for_files[file] = offenses
|
20
20
|
end
|
21
21
|
|
22
|
-
report_file_as_mark(file,
|
22
|
+
report_file_as_mark(file, offenses)
|
23
23
|
end
|
24
24
|
|
25
25
|
def finished(inspected_files)
|
26
26
|
output.puts
|
27
27
|
|
28
|
-
unless @
|
28
|
+
unless @offenses_for_files.empty?
|
29
29
|
output.puts
|
30
|
-
output.puts '
|
30
|
+
output.puts 'Offenses:'
|
31
31
|
output.puts
|
32
32
|
|
33
|
-
@
|
34
|
-
report_file(file,
|
33
|
+
@offenses_for_files.each do |file, offenses|
|
34
|
+
report_file(file, offenses)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
report_summary(inspected_files.count,
|
39
|
-
@
|
39
|
+
@total_offense_count,
|
40
40
|
@total_correction_count)
|
41
41
|
end
|
42
42
|
|
43
|
-
def report_file_as_mark(file,
|
44
|
-
mark = if
|
43
|
+
def report_file_as_mark(file, offenses)
|
44
|
+
mark = if offenses.empty?
|
45
45
|
green('.')
|
46
46
|
else
|
47
|
-
|
47
|
+
highest_offense = offenses.max do |a, b|
|
48
48
|
a.severity_level <=> b.severity_level
|
49
49
|
end
|
50
|
-
colored_severity_code(
|
50
|
+
colored_severity_code(highest_offense)
|
51
51
|
end
|
52
52
|
|
53
53
|
output.write mark
|
@@ -4,8 +4,8 @@ require 'rubocop/formatter/colorizable'
|
|
4
4
|
|
5
5
|
module Rubocop
|
6
6
|
module Formatter
|
7
|
-
# A basic formatter that displays only files with
|
8
|
-
#
|
7
|
+
# A basic formatter that displays only files with offenses.
|
8
|
+
# Offenses are displayed at compact form - just the
|
9
9
|
# location of the problem and the associated message.
|
10
10
|
class SimpleTextFormatter < BaseFormatter
|
11
11
|
include Colorizable
|
@@ -20,45 +20,45 @@ module Rubocop
|
|
20
20
|
}.freeze
|
21
21
|
|
22
22
|
def started(target_files)
|
23
|
-
@
|
23
|
+
@total_offense_count = 0
|
24
24
|
@total_correction_count = 0
|
25
25
|
end
|
26
26
|
|
27
|
-
def file_finished(file,
|
28
|
-
return if
|
29
|
-
count_stats(
|
30
|
-
report_file(file,
|
27
|
+
def file_finished(file, offenses)
|
28
|
+
return if offenses.empty?
|
29
|
+
count_stats(offenses)
|
30
|
+
report_file(file, offenses)
|
31
31
|
end
|
32
32
|
|
33
33
|
def finished(inspected_files)
|
34
34
|
report_summary(inspected_files.count,
|
35
|
-
@
|
35
|
+
@total_offense_count,
|
36
36
|
@total_correction_count)
|
37
37
|
end
|
38
38
|
|
39
|
-
def report_file(file,
|
39
|
+
def report_file(file, offenses)
|
40
40
|
output.puts yellow("== #{smart_path(file)} ==")
|
41
41
|
|
42
|
-
|
42
|
+
offenses.each do |o|
|
43
43
|
output.printf("%s:%3d:%3d: %s\n",
|
44
44
|
colored_severity_code(o),
|
45
45
|
o.line, o.real_column, message(o))
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
def report_summary(file_count,
|
49
|
+
def report_summary(file_count, offense_count, correction_count)
|
50
50
|
summary = pluralize(file_count, 'file')
|
51
51
|
summary << ' inspected, '
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
summary << colorize(
|
53
|
+
offenses_text = pluralize(offense_count, 'offense', no_for_zero: true)
|
54
|
+
offenses_text << ' detected'
|
55
|
+
summary << colorize(offenses_text, offense_count.zero? ? :green : :red)
|
56
56
|
|
57
57
|
if correction_count > 0
|
58
58
|
summary << ', '
|
59
|
-
correction_text = pluralize(correction_count, '
|
59
|
+
correction_text = pluralize(correction_count, 'offense')
|
60
60
|
correction_text << ' corrected'
|
61
|
-
color = correction_count ==
|
61
|
+
color = correction_count == offense_count ? :green : :cyan
|
62
62
|
summary << colorize(correction_text, color)
|
63
63
|
end
|
64
64
|
|
@@ -68,9 +68,9 @@ module Rubocop
|
|
68
68
|
|
69
69
|
private
|
70
70
|
|
71
|
-
def count_stats(
|
72
|
-
@
|
73
|
-
@total_correction_count +=
|
71
|
+
def count_stats(offenses)
|
72
|
+
@total_offense_count += offenses.count
|
73
|
+
@total_correction_count += offenses.select(&:corrected?).count
|
74
74
|
end
|
75
75
|
|
76
76
|
def smart_path(path)
|
@@ -84,14 +84,14 @@ module Rubocop
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
-
def colored_severity_code(
|
88
|
-
color = COLOR_FOR_SEVERITY[
|
89
|
-
colorize(
|
87
|
+
def colored_severity_code(offense)
|
88
|
+
color = COLOR_FOR_SEVERITY[offense.severity]
|
89
|
+
colorize(offense.severity_code, color)
|
90
90
|
end
|
91
91
|
|
92
|
-
def message(
|
93
|
-
message =
|
94
|
-
message <<
|
92
|
+
def message(offense)
|
93
|
+
message = offense.corrected? ? green('[Corrected] ') : ''
|
94
|
+
message << offense.message
|
95
95
|
end
|
96
96
|
|
97
97
|
def pluralize(number, thing, options = {})
|