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
@@ -5,24 +5,24 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::CharacterLiteral do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for character literals' do
|
9
9
|
inspect_source(cop, ['x = ?x'])
|
10
|
-
expect(cop.
|
10
|
+
expect(cop.offenses.size).to eq(1)
|
11
11
|
end
|
12
12
|
|
13
|
-
it 'registers an
|
13
|
+
it 'registers an offense for literals like \n' do
|
14
14
|
inspect_source(cop, ['x = ?\n'])
|
15
|
-
expect(cop.
|
15
|
+
expect(cop.offenses.size).to eq(1)
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'accepts literals like ?\C-\M-d' do
|
19
19
|
inspect_source(cop, ['x = ?\C-\M-d'])
|
20
|
-
expect(cop.
|
20
|
+
expect(cop.offenses).to be_empty
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'accepts ? in a %w literal' do
|
24
24
|
inspect_source(cop, ['%w{? A}'])
|
25
|
-
expect(cop.
|
25
|
+
expect(cop.offenses).to be_empty
|
26
26
|
end
|
27
27
|
|
28
28
|
it "auto-corrects ?x to 'x'" do
|
@@ -5,7 +5,7 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::ClassAndModuleCamelCase do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for underscore in class and module name' do
|
9
9
|
inspect_source(cop,
|
10
10
|
['class My_Class',
|
11
11
|
'end',
|
@@ -13,7 +13,7 @@ describe Rubocop::Cop::Style::ClassAndModuleCamelCase do
|
|
13
13
|
'module My_Module',
|
14
14
|
'end'
|
15
15
|
])
|
16
|
-
expect(cop.
|
16
|
+
expect(cop.offenses.size).to eq(2)
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'is not fooled by qualified names' do
|
@@ -24,7 +24,7 @@ describe Rubocop::Cop::Style::ClassAndModuleCamelCase do
|
|
24
24
|
'module My_Module::Ala',
|
25
25
|
'end'
|
26
26
|
])
|
27
|
-
expect(cop.
|
27
|
+
expect(cop.offenses.size).to eq(2)
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'accepts CamelCase names' do
|
@@ -35,6 +35,6 @@ describe Rubocop::Cop::Style::ClassAndModuleCamelCase do
|
|
35
35
|
'module Mine',
|
36
36
|
'end'
|
37
37
|
])
|
38
|
-
expect(cop.
|
38
|
+
expect(cop.offenses).to be_empty
|
39
39
|
end
|
40
40
|
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Rubocop::Cop::Style::ClassAndModuleChildren, :config do
|
6
|
+
subject(:cop) { described_class.new(config) }
|
7
|
+
|
8
|
+
context 'nested style' do
|
9
|
+
let(:cop_config) do
|
10
|
+
{
|
11
|
+
'EnforcedStyle' => 'nested'
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'registers an offense for not nested classes' do
|
16
|
+
inspect_source(cop, ['class FooClass::BarClass', 'end'])
|
17
|
+
|
18
|
+
expect(cop.offenses.size).to eq 1
|
19
|
+
expect(cop.messages).to eq [
|
20
|
+
'Use nested module/class definitions instead of compact style.'
|
21
|
+
]
|
22
|
+
expect(cop.highlights).to eq ['FooClass::BarClass']
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'registers an offense for not nested modules' do
|
26
|
+
inspect_source(cop, ['module FooModule::BarModule', 'end'])
|
27
|
+
|
28
|
+
expect(cop.offenses.size).to eq 1
|
29
|
+
expect(cop.messages).to eq [
|
30
|
+
'Use nested module/class definitions instead of compact style.'
|
31
|
+
]
|
32
|
+
expect(cop.highlights).to eq ['FooModule::BarModule']
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'accepts nested children' do
|
36
|
+
inspect_source(cop,
|
37
|
+
['class FooClass',
|
38
|
+
' class BarClass',
|
39
|
+
' end',
|
40
|
+
'end',
|
41
|
+
'',
|
42
|
+
'module FooModule',
|
43
|
+
' module BarModule',
|
44
|
+
' end',
|
45
|
+
'end'
|
46
|
+
])
|
47
|
+
expect(cop.offenses).to be_empty
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'accepts :: in parent class on inheritance' do
|
51
|
+
inspect_source(cop,
|
52
|
+
['class FooClass',
|
53
|
+
' class BarClass',
|
54
|
+
' end',
|
55
|
+
'end',
|
56
|
+
'',
|
57
|
+
'class BazClass < FooClass::BarClass',
|
58
|
+
'end'
|
59
|
+
])
|
60
|
+
expect(cop.offenses).to be_empty
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'compact style' do
|
65
|
+
let(:cop_config) do
|
66
|
+
{
|
67
|
+
'EnforcedStyle' => 'compact'
|
68
|
+
}
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'registers a offense for classes with nested children' do
|
72
|
+
inspect_source(cop,
|
73
|
+
['class FooClass',
|
74
|
+
' class BarClass',
|
75
|
+
' end',
|
76
|
+
'end'
|
77
|
+
])
|
78
|
+
expect(cop.offenses.size).to eq 1
|
79
|
+
expect(cop.messages).to eq [
|
80
|
+
'Use compact module/class definition instead of nested style.'
|
81
|
+
]
|
82
|
+
expect(cop.highlights).to eq ['FooClass']
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'registers a offense for modules with nested children' do
|
86
|
+
inspect_source(cop,
|
87
|
+
['module FooModule',
|
88
|
+
' module BarModule',
|
89
|
+
' end',
|
90
|
+
'end'
|
91
|
+
])
|
92
|
+
expect(cop.offenses.size).to eq 1
|
93
|
+
expect(cop.messages).to eq [
|
94
|
+
'Use compact module/class definition instead of nested style.'
|
95
|
+
]
|
96
|
+
expect(cop.highlights).to eq ['FooModule']
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'accepts compact style for classes / modules' do
|
100
|
+
inspect_source(cop,
|
101
|
+
['class FooClass::BarClass',
|
102
|
+
'end',
|
103
|
+
'',
|
104
|
+
'module FooClass::BarModule',
|
105
|
+
'end'
|
106
|
+
])
|
107
|
+
expect(cop.offenses).to be_empty
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'accepts nesting for classes / modules with more than one child' do
|
111
|
+
inspect_source(cop,
|
112
|
+
['class FooClass',
|
113
|
+
' class BarClass',
|
114
|
+
' end',
|
115
|
+
' class BazClass',
|
116
|
+
' end',
|
117
|
+
'end',
|
118
|
+
'',
|
119
|
+
'module FooModule',
|
120
|
+
' module BarModule',
|
121
|
+
' end',
|
122
|
+
' class BazModule',
|
123
|
+
' end',
|
124
|
+
'end'
|
125
|
+
])
|
126
|
+
expect(cop.offenses).to be_empty
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -15,9 +15,9 @@ describe Rubocop::Cop::Style::ClassLength, :config do
|
|
15
15
|
' a = 5',
|
16
16
|
' a = 6',
|
17
17
|
'end'])
|
18
|
-
expect(cop.
|
18
|
+
expect(cop.offenses.size).to eq(1)
|
19
19
|
expect(cop.messages).to eq(['Class definition is too long. [6/5]'])
|
20
|
-
expect(cop.
|
20
|
+
expect(cop.config_to_allow_offenses).to eq('Max' => 6)
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'accepts a class with 5 lines' do
|
@@ -28,7 +28,7 @@ describe Rubocop::Cop::Style::ClassLength, :config do
|
|
28
28
|
' a = 4',
|
29
29
|
' a = 5',
|
30
30
|
'end'])
|
31
|
-
expect(cop.
|
31
|
+
expect(cop.offenses).to be_empty
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'accepts a class with less than 5 lines' do
|
@@ -38,7 +38,7 @@ describe Rubocop::Cop::Style::ClassLength, :config do
|
|
38
38
|
' a = 3',
|
39
39
|
' a = 4',
|
40
40
|
'end'])
|
41
|
-
expect(cop.
|
41
|
+
expect(cop.offenses).to be_empty
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'does not count blank lines' do
|
@@ -51,13 +51,13 @@ describe Rubocop::Cop::Style::ClassLength, :config do
|
|
51
51
|
'',
|
52
52
|
' a = 7',
|
53
53
|
'end'])
|
54
|
-
expect(cop.
|
54
|
+
expect(cop.offenses).to be_empty
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'accepts empty classes' do
|
58
58
|
inspect_source(cop, ['class Test',
|
59
59
|
'end'])
|
60
|
-
expect(cop.
|
60
|
+
expect(cop.offenses).to be_empty
|
61
61
|
end
|
62
62
|
|
63
63
|
context 'when a class has inner classes' do
|
@@ -83,7 +83,7 @@ describe Rubocop::Cop::Style::ClassLength, :config do
|
|
83
83
|
' a = 4',
|
84
84
|
' a = 5',
|
85
85
|
'end'])
|
86
|
-
expect(cop.
|
86
|
+
expect(cop.offenses).to be_empty
|
87
87
|
end
|
88
88
|
|
89
89
|
it 'rejects a class with 6 lines that belong to the class directly' do
|
@@ -109,7 +109,7 @@ describe Rubocop::Cop::Style::ClassLength, :config do
|
|
109
109
|
' a = 5',
|
110
110
|
' a = 6',
|
111
111
|
'end'])
|
112
|
-
expect(cop.
|
112
|
+
expect(cop.offenses.size).to eq(1)
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -125,7 +125,7 @@ describe Rubocop::Cop::Style::ClassLength, :config do
|
|
125
125
|
' a = 5',
|
126
126
|
' a = 6',
|
127
127
|
'end'])
|
128
|
-
expect(cop.
|
128
|
+
expect(cop.offenses.size).to eq(1)
|
129
129
|
end
|
130
130
|
end
|
131
131
|
end
|
@@ -5,41 +5,41 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::ClassMethods do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for methods using a class name' do
|
9
9
|
inspect_source(cop,
|
10
10
|
['class Test',
|
11
11
|
' def Test.some_method',
|
12
12
|
' do_something',
|
13
13
|
' end',
|
14
14
|
'end'])
|
15
|
-
expect(cop.
|
15
|
+
expect(cop.offenses.size).to eq(1)
|
16
16
|
end
|
17
17
|
|
18
|
-
it 'registers an
|
18
|
+
it 'registers an offense for methods using a module name' do
|
19
19
|
inspect_source(cop,
|
20
20
|
['module Test',
|
21
21
|
' def Test.some_method',
|
22
22
|
' do_something',
|
23
23
|
' end',
|
24
24
|
'end'])
|
25
|
-
expect(cop.
|
25
|
+
expect(cop.offenses.size).to eq(1)
|
26
26
|
end
|
27
27
|
|
28
|
-
it 'does not register an
|
28
|
+
it 'does not register an offense for methods using self' do
|
29
29
|
inspect_source(cop,
|
30
30
|
['module Test',
|
31
31
|
' def self.some_method',
|
32
32
|
' do_something',
|
33
33
|
' end',
|
34
34
|
'end'])
|
35
|
-
expect(cop.
|
35
|
+
expect(cop.offenses).to be_empty
|
36
36
|
end
|
37
37
|
|
38
|
-
it 'does not register an
|
38
|
+
it 'does not register an offense outside class/module bodies' do
|
39
39
|
inspect_source(cop,
|
40
40
|
['def self.some_method',
|
41
41
|
' do_something',
|
42
42
|
'end'])
|
43
|
-
expect(cop.
|
43
|
+
expect(cop.offenses).to be_empty
|
44
44
|
end
|
45
45
|
end
|
@@ -5,15 +5,15 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::ClassVars do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for class variable declaration' do
|
9
9
|
inspect_source(cop, ['class TestClass; @@test = 10; end'])
|
10
|
-
expect(cop.
|
10
|
+
expect(cop.offenses.size).to eq(1)
|
11
11
|
expect(cop.messages)
|
12
12
|
.to eq(['Replace class var @@test with a class instance var.'])
|
13
13
|
end
|
14
14
|
|
15
|
-
it 'does not register an
|
15
|
+
it 'does not register an offense for class variable usage' do
|
16
16
|
inspect_source(cop, ['@@test.test(20)'])
|
17
|
-
expect(cop.
|
17
|
+
expect(cop.offenses).to be_empty
|
18
18
|
end
|
19
19
|
end
|
@@ -16,28 +16,28 @@ describe Rubocop::Cop::Style::CollectionMethods, :config do
|
|
16
16
|
let(:cop_config) { cop_config }
|
17
17
|
|
18
18
|
cop_config['PreferredMethods'].each do |method, preferred_method|
|
19
|
-
it "registers an
|
19
|
+
it "registers an offense for #{method} with block" do
|
20
20
|
inspect_source(cop, ["[1, 2, 3].#{method} { |e| e + 1 }"])
|
21
|
-
expect(cop.
|
21
|
+
expect(cop.offenses.size).to eq(1)
|
22
22
|
expect(cop.messages)
|
23
23
|
.to eq(["Prefer #{preferred_method} over #{method}."])
|
24
24
|
end
|
25
25
|
|
26
|
-
it "registers an
|
26
|
+
it "registers an offense for #{method} with proc param" do
|
27
27
|
inspect_source(cop, ["[1, 2, 3].#{method}(&:test)"])
|
28
|
-
expect(cop.
|
28
|
+
expect(cop.offenses.size).to eq(1)
|
29
29
|
expect(cop.messages)
|
30
30
|
.to eq(["Prefer #{preferred_method} over #{method}."])
|
31
31
|
end
|
32
32
|
|
33
33
|
it "accepts #{method} with more than 1 param" do
|
34
34
|
inspect_source(cop, ["[1, 2, 3].#{method}(other, &:test)"])
|
35
|
-
expect(cop.
|
35
|
+
expect(cop.offenses).to be_empty
|
36
36
|
end
|
37
37
|
|
38
38
|
it "accepts #{method} without a block" do
|
39
39
|
inspect_source(cop, ["[1, 2, 3].#{method}"])
|
40
|
-
expect(cop.
|
40
|
+
expect(cop.offenses).to be_empty
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'auto-corrects to preferred method' do
|
@@ -5,52 +5,52 @@ require 'spec_helper'
|
|
5
5
|
describe Rubocop::Cop::Style::ColonMethodCall do
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
|
-
it 'registers an
|
8
|
+
it 'registers an offense for instance method call' do
|
9
9
|
inspect_source(cop,
|
10
10
|
['test::method_name'])
|
11
|
-
expect(cop.
|
11
|
+
expect(cop.offenses.size).to eq(1)
|
12
12
|
end
|
13
13
|
|
14
|
-
it 'registers an
|
14
|
+
it 'registers an offense for instance method call with arg' do
|
15
15
|
inspect_source(cop,
|
16
16
|
['test::method_name(arg)'])
|
17
|
-
expect(cop.
|
17
|
+
expect(cop.offenses.size).to eq(1)
|
18
18
|
end
|
19
19
|
|
20
|
-
it 'registers an
|
20
|
+
it 'registers an offense for class method call' do
|
21
21
|
inspect_source(cop,
|
22
22
|
['Class::method_name'])
|
23
|
-
expect(cop.
|
23
|
+
expect(cop.offenses.size).to eq(1)
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'registers an
|
26
|
+
it 'registers an offense for class method call with arg' do
|
27
27
|
inspect_source(cop,
|
28
28
|
['Class::method_name(arg, arg2)'])
|
29
|
-
expect(cop.
|
29
|
+
expect(cop.offenses.size).to eq(1)
|
30
30
|
end
|
31
31
|
|
32
|
-
it 'does not register an
|
32
|
+
it 'does not register an offense for constant access' do
|
33
33
|
inspect_source(cop,
|
34
34
|
['Tip::Top::SOME_CONST'])
|
35
|
-
expect(cop.
|
35
|
+
expect(cop.offenses).to be_empty
|
36
36
|
end
|
37
37
|
|
38
|
-
it 'does not register an
|
38
|
+
it 'does not register an offense for nested class' do
|
39
39
|
inspect_source(cop,
|
40
40
|
['Tip::Top.some_method'])
|
41
|
-
expect(cop.
|
41
|
+
expect(cop.offenses).to be_empty
|
42
42
|
end
|
43
43
|
|
44
|
-
it 'does not register an
|
44
|
+
it 'does not register an offense for op methods' do
|
45
45
|
inspect_source(cop,
|
46
46
|
['Tip::Top.some_method[3]'])
|
47
|
-
expect(cop.
|
47
|
+
expect(cop.offenses).to be_empty
|
48
48
|
end
|
49
49
|
|
50
|
-
it 'does not register an
|
50
|
+
it 'does not register an offense when for constructor methods' do
|
51
51
|
inspect_source(cop,
|
52
52
|
['Tip::Top(some_arg)'])
|
53
|
-
expect(cop.
|
53
|
+
expect(cop.offenses).to be_empty
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'auto-corrects "::" with "."' do
|
@@ -8,17 +8,17 @@ describe Rubocop::Cop::Style::CommentAnnotation, :config do
|
|
8
8
|
{ 'Keywords' => %w(TODO FIXME OPTIMIZE HACK REVIEW) }
|
9
9
|
end
|
10
10
|
|
11
|
-
it 'registers an
|
11
|
+
it 'registers an offense for a missing colon' do
|
12
12
|
inspect_source(cop, ['# TODO make better'])
|
13
|
-
expect(cop.
|
13
|
+
expect(cop.offenses.size).to eq(1)
|
14
14
|
end
|
15
15
|
|
16
16
|
context 'with configured keyword' do
|
17
17
|
let(:cop_config) { { 'Keywords' => %w(ISSUE) } }
|
18
18
|
|
19
|
-
it 'registers an
|
19
|
+
it 'registers an offense for a missing colon after the word' do
|
20
20
|
inspect_source(cop, ['# ISSUE wrong order'])
|
21
|
-
expect(cop.
|
21
|
+
expect(cop.offenses.size).to eq(1)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -28,7 +28,7 @@ describe Rubocop::Cop::Style::CommentAnnotation, :config do
|
|
28
28
|
|
29
29
|
it 'marks the annotation keyword' do
|
30
30
|
inspect_source(cop, ['# TODO:make better'])
|
31
|
-
formatter.report_file('t', cop.
|
31
|
+
formatter.report_file('t', cop.offenses)
|
32
32
|
expect(output.string).to eq(["t:1:3: C: #{described_class::MSG}",
|
33
33
|
'# TODO:make better',
|
34
34
|
' ^^^^^',
|
@@ -36,41 +36,41 @@ describe Rubocop::Cop::Style::CommentAnnotation, :config do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
it 'registers an
|
39
|
+
it 'registers an offense for lower case' do
|
40
40
|
inspect_source(cop, ['# fixme: does not work'])
|
41
|
-
expect(cop.
|
41
|
+
expect(cop.offenses.size).to eq(1)
|
42
42
|
end
|
43
43
|
|
44
|
-
it 'registers an
|
44
|
+
it 'registers an offense for capitalized annotation keyword' do
|
45
45
|
inspect_source(cop, ['# Optimize: does not work'])
|
46
|
-
expect(cop.
|
46
|
+
expect(cop.offenses.size).to eq(1)
|
47
47
|
end
|
48
48
|
|
49
|
-
it 'registers an
|
49
|
+
it 'registers an offense for upper case with colon but no note' do
|
50
50
|
inspect_source(cop, ['# HACK:'])
|
51
|
-
expect(cop.
|
51
|
+
expect(cop.offenses.size).to eq(1)
|
52
52
|
end
|
53
53
|
|
54
54
|
it 'accepts upper case keyword with colon, space and note' do
|
55
55
|
inspect_source(cop, ['# REVIEW: not sure about this'])
|
56
|
-
expect(cop.
|
56
|
+
expect(cop.offenses).to be_empty
|
57
57
|
end
|
58
58
|
|
59
59
|
it 'accepts upper case keyword alone' do
|
60
60
|
inspect_source(cop, ['# OPTIMIZE'])
|
61
|
-
expect(cop.
|
61
|
+
expect(cop.offenses).to be_empty
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'accepts a comment that is obviously a code example' do
|
65
65
|
inspect_source(cop, ['# Todo.destroy(1)'])
|
66
|
-
expect(cop.
|
66
|
+
expect(cop.offenses).to be_empty
|
67
67
|
end
|
68
68
|
|
69
69
|
it 'accepts a keyword that is just the beginning of a sentence' do
|
70
70
|
inspect_source(cop,
|
71
71
|
["# Optimize if you want. I wouldn't recommend it.",
|
72
72
|
'# Hack is a fun game.'])
|
73
|
-
expect(cop.
|
73
|
+
expect(cop.offenses).to be_empty
|
74
74
|
end
|
75
75
|
|
76
76
|
context 'when a keyword is not in the configuration' do
|
@@ -80,7 +80,7 @@ describe Rubocop::Cop::Style::CommentAnnotation, :config do
|
|
80
80
|
|
81
81
|
it 'accepts the word without colon' do
|
82
82
|
inspect_source(cop, ['# TODO make better'])
|
83
|
-
expect(cop.
|
83
|
+
expect(cop.offenses).to be_empty
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|