rubocop 0.29.1 → 0.30.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/CHANGELOG.md +73 -1
- data/README.md +11 -2
- data/config/default.yml +194 -6
- data/config/disabled.yml +25 -1
- data/config/enabled.yml +74 -12
- data/lib/rubocop.rb +19 -2
- data/lib/rubocop/config.rb +23 -3
- data/lib/rubocop/config_loader.rb +9 -1
- data/lib/rubocop/cop/autocorrect_logic.rb +26 -0
- data/lib/rubocop/cop/cop.rb +33 -17
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +16 -4
- data/lib/rubocop/cop/lint/block_alignment.rb +5 -14
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +61 -0
- data/lib/rubocop/cop/lint/void.rb +11 -3
- data/lib/rubocop/cop/mixin/on_normal_if_unless.rb +17 -0
- data/lib/rubocop/cop/performance/detect.rb +72 -0
- data/lib/rubocop/cop/performance/flat_map.rb +64 -0
- data/lib/rubocop/cop/performance/reverse_each.rb +43 -0
- data/lib/rubocop/cop/performance/sample.rb +58 -0
- data/lib/rubocop/cop/performance/size.rb +64 -0
- data/lib/rubocop/cop/rails/date.rb +121 -0
- data/lib/rubocop/cop/rails/find_by.rb +52 -0
- data/lib/rubocop/cop/rails/find_each.rb +41 -0
- data/lib/rubocop/cop/rails/time_zone.rb +93 -0
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +45 -0
- data/lib/rubocop/cop/style/block_delimiters.rb +186 -0
- data/lib/rubocop/cop/style/closing_parenthesis_indentation.rb +76 -0
- data/lib/rubocop/cop/style/command_literal.rb +120 -0
- data/lib/rubocop/cop/style/copyright.rb +87 -0
- data/lib/rubocop/cop/style/documentation.rb +32 -0
- data/lib/rubocop/cop/style/empty_else.rb +85 -16
- data/lib/rubocop/cop/style/encoding.rb +14 -2
- data/lib/rubocop/cop/style/end_of_line.rb +5 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +86 -23
- data/lib/rubocop/cop/style/if_unless_modifier.rb +15 -0
- data/lib/rubocop/cop/style/indentation_consistency.rb +13 -6
- data/lib/rubocop/cop/style/indentation_width.rb +34 -10
- data/lib/rubocop/cop/style/lambda.rb +32 -17
- data/lib/rubocop/cop/style/line_end_concatenation.rb +4 -0
- data/lib/rubocop/cop/style/missing_else.rb +72 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +89 -58
- data/lib/rubocop/cop/style/space_around_operators.rb +13 -2
- data/lib/rubocop/cop/style/space_before_block_braces.rb +3 -3
- data/lib/rubocop/cop/style/space_inside_block_braces.rb +9 -5
- data/lib/rubocop/cop/style/symbol_literal.rb +36 -0
- data/lib/rubocop/cop/style/trailing_blank_lines.rb +7 -0
- data/lib/rubocop/cop/style/trailing_comma.rb +21 -7
- data/lib/rubocop/cop/style/trivial_accessors.rb +17 -3
- data/lib/rubocop/cop/style/unneeded_capital_w.rb +4 -6
- data/lib/rubocop/cop/style/while_until_modifier.rb +10 -0
- data/lib/rubocop/cop/util.rb +24 -19
- data/lib/rubocop/cop/variable_force.rb +14 -0
- data/lib/rubocop/cop/variable_force/reference.rb +10 -4
- data/lib/rubocop/formatter/html_formatter.rb +10 -4
- data/lib/rubocop/formatter/text_util.rb +5 -7
- data/lib/rubocop/options.rb +47 -45
- data/lib/rubocop/path_util.rb +12 -8
- data/lib/rubocop/processed_source.rb +12 -1
- data/lib/rubocop/rake_task.rb +2 -2
- data/lib/rubocop/version.rb +1 -1
- data/relnotes/v0.30.0.md +145 -0
- data/rubocop.gemspec +15 -3
- metadata +22 -545
- data/.gitignore +0 -54
- data/.rspec +0 -1
- data/.rubocop.yml +0 -11
- data/.rubocop_todo.yml +0 -28
- data/.travis.yml +0 -22
- data/Gemfile +0 -15
- data/Rakefile +0 -41
- data/lib/rubocop/cop/style/blocks.rb +0 -80
- data/lib/rubocop/cop/style/unneeded_percent_x.rb +0 -25
- data/logo/rubocop-final-logo.eps +0 -0
- data/spec/.rubocop.yml +0 -5
- data/spec/fixtures/html_formatter/expected.html +0 -495
- data/spec/fixtures/html_formatter/project/app/controllers/application_controller.rb +0 -5
- data/spec/fixtures/html_formatter/project/app/controllers/books_controller.rb +0 -74
- data/spec/fixtures/html_formatter/project/app/models/book.rb +0 -5
- data/spec/isolated_environment_spec.rb +0 -24
- data/spec/project_spec.rb +0 -119
- data/spec/rubocop/cli_spec.rb +0 -2740
- data/spec/rubocop/comment_config_spec.rb +0 -105
- data/spec/rubocop/config_loader_spec.rb +0 -377
- data/spec/rubocop/config_spec.rb +0 -235
- data/spec/rubocop/config_store_spec.rb +0 -53
- data/spec/rubocop/cop/commissioner_spec.rb +0 -85
- data/spec/rubocop/cop/cop_spec.rb +0 -135
- data/spec/rubocop/cop/corrector_spec.rb +0 -59
- data/spec/rubocop/cop/force_spec.rb +0 -29
- data/spec/rubocop/cop/lint/ambiguous_operator_spec.rb +0 -113
- data/spec/rubocop/cop/lint/ambiguous_regexp_literal_spec.rb +0 -35
- data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +0 -130
- data/spec/rubocop/cop/lint/block_alignment_spec.rb +0 -533
- data/spec/rubocop/cop/lint/condition_position_spec.rb +0 -51
- data/spec/rubocop/cop/lint/debugger_spec.rb +0 -73
- data/spec/rubocop/cop/lint/def_end_alignment_spec.rb +0 -108
- data/spec/rubocop/cop/lint/deprecated_class_methods_spec.rb +0 -38
- data/spec/rubocop/cop/lint/duplicate_methods_spec.rb +0 -189
- data/spec/rubocop/cop/lint/else_layout_spec.rb +0 -65
- data/spec/rubocop/cop/lint/empty_ensure_spec.rb +0 -27
- data/spec/rubocop/cop/lint/empty_interpolation_spec.rb +0 -18
- data/spec/rubocop/cop/lint/end_alignment_spec.rb +0 -91
- data/spec/rubocop/cop/lint/end_in_method_spec.rb +0 -29
- data/spec/rubocop/cop/lint/ensure_return_spec.rb +0 -39
- data/spec/rubocop/cop/lint/eval_spec.rb +0 -33
- data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +0 -30
- data/spec/rubocop/cop/lint/invalid_character_literal_spec.rb +0 -33
- data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +0 -172
- data/spec/rubocop/cop/lint/literal_in_interpolation_spec.rb +0 -31
- data/spec/rubocop/cop/lint/loop_spec.rb +0 -27
- data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +0 -57
- data/spec/rubocop/cop/lint/require_parentheses_spec.rb +0 -82
- data/spec/rubocop/cop/lint/rescue_exception_spec.rb +0 -123
- data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +0 -237
- data/spec/rubocop/cop/lint/space_before_first_arg_spec.rb +0 -66
- data/spec/rubocop/cop/lint/string_conversion_in_interpolation_spec.rb +0 -51
- data/spec/rubocop/cop/lint/syntax_spec.rb +0 -34
- data/spec/rubocop/cop/lint/underscore_prefixed_variable_name_spec.rb +0 -179
- data/spec/rubocop/cop/lint/unreachable_code_spec.rb +0 -63
- data/spec/rubocop/cop/lint/unused_block_argument_spec.rb +0 -231
- data/spec/rubocop/cop/lint/unused_method_argument_spec.rb +0 -278
- data/spec/rubocop/cop/lint/useless_access_modifier_spec.rb +0 -192
- data/spec/rubocop/cop/lint/useless_assignment_spec.rb +0 -1778
- data/spec/rubocop/cop/lint/useless_comparison_spec.rb +0 -30
- data/spec/rubocop/cop/lint/useless_else_without_rescue_spec.rb +0 -48
- data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +0 -211
- data/spec/rubocop/cop/lint/void_spec.rb +0 -64
- data/spec/rubocop/cop/metrics/abc_size_spec.rb +0 -109
- data/spec/rubocop/cop/metrics/block_nesting_spec.rb +0 -156
- data/spec/rubocop/cop/metrics/class_length_spec.rb +0 -131
- data/spec/rubocop/cop/metrics/cyclomatic_complexity_spec.rb +0 -204
- data/spec/rubocop/cop/metrics/line_length_spec.rb +0 -136
- data/spec/rubocop/cop/metrics/method_length_spec.rb +0 -147
- data/spec/rubocop/cop/metrics/parameter_lists_spec.rb +0 -44
- data/spec/rubocop/cop/metrics/perceived_complexity_spec.rb +0 -222
- data/spec/rubocop/cop/offense_spec.rb +0 -133
- data/spec/rubocop/cop/rails/action_filter_spec.rb +0 -64
- data/spec/rubocop/cop/rails/default_scope_spec.rb +0 -37
- data/spec/rubocop/cop/rails/delegate_spec.rb +0 -177
- data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +0 -13
- data/spec/rubocop/cop/rails/output_spec.rb +0 -37
- data/spec/rubocop/cop/rails/read_write_attribute_spec.rb +0 -130
- data/spec/rubocop/cop/rails/scope_args_spec.rb +0 -25
- data/spec/rubocop/cop/rails/validation_spec.rb +0 -28
- data/spec/rubocop/cop/severity_spec.rb +0 -113
- data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +0 -421
- data/spec/rubocop/cop/style/accessor_method_name_spec.rb +0 -81
- data/spec/rubocop/cop/style/alias_spec.rb +0 -59
- data/spec/rubocop/cop/style/align_array_spec.rb +0 -123
- data/spec/rubocop/cop/style/align_hash_spec.rb +0 -411
- data/spec/rubocop/cop/style/align_parameters_spec.rb +0 -431
- data/spec/rubocop/cop/style/and_or_spec.rb +0 -235
- data/spec/rubocop/cop/style/array_join_spec.rb +0 -29
- data/spec/rubocop/cop/style/ascii_comments_spec.rb +0 -21
- data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +0 -36
- data/spec/rubocop/cop/style/attr_spec.rb +0 -29
- data/spec/rubocop/cop/style/bare_percent_literals_spec.rb +0 -132
- data/spec/rubocop/cop/style/begin_block_spec.rb +0 -13
- data/spec/rubocop/cop/style/block_comments_spec.rb +0 -45
- data/spec/rubocop/cop/style/block_end_newline_spec.rb +0 -61
- data/spec/rubocop/cop/style/blocks_spec.rb +0 -121
- data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +0 -288
- data/spec/rubocop/cop/style/case_equality_spec.rb +0 -13
- data/spec/rubocop/cop/style/case_indentation_spec.rb +0 -293
- data/spec/rubocop/cop/style/character_literal_spec.rb +0 -37
- data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +0 -40
- data/spec/rubocop/cop/style/class_and_module_children_spec.rb +0 -133
- data/spec/rubocop/cop/style/class_check_spec.rb +0 -41
- data/spec/rubocop/cop/style/class_methods_spec.rb +0 -80
- data/spec/rubocop/cop/style/class_vars_spec.rb +0 -19
- data/spec/rubocop/cop/style/collection_methods_spec.rb +0 -48
- data/spec/rubocop/cop/style/colon_method_call_spec.rb +0 -65
- data/spec/rubocop/cop/style/comment_annotation_spec.rb +0 -86
- data/spec/rubocop/cop/style/comment_indentation_spec.rb +0 -179
- data/spec/rubocop/cop/style/constant_name_spec.rb +0 -65
- data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +0 -43
- data/spec/rubocop/cop/style/deprecated_hash_methods_spec.rb +0 -45
- data/spec/rubocop/cop/style/documentation_spec.rb +0 -146
- data/spec/rubocop/cop/style/dot_position_spec.rb +0 -132
- data/spec/rubocop/cop/style/double_negation_spec.rb +0 -22
- data/spec/rubocop/cop/style/each_with_object_spec.rb +0 -73
- data/spec/rubocop/cop/style/else_alignment_spec.rb +0 -506
- data/spec/rubocop/cop/style/empty_else_spec.rb +0 -100
- data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +0 -135
- data/spec/rubocop/cop/style/empty_lines_around_access_modifier_spec.rb +0 -178
- data/spec/rubocop/cop/style/empty_lines_around_block_body_spec.rb +0 -103
- data/spec/rubocop/cop/style/empty_lines_around_class_body_spec.rb +0 -135
- data/spec/rubocop/cop/style/empty_lines_around_method_body_spec.rb +0 -90
- data/spec/rubocop/cop/style/empty_lines_around_module_body_spec.rb +0 -79
- data/spec/rubocop/cop/style/empty_lines_spec.rb +0 -51
- data/spec/rubocop/cop/style/empty_literal_spec.rb +0 -117
- data/spec/rubocop/cop/style/encoding_spec.rb +0 -139
- data/spec/rubocop/cop/style/end_block_spec.rb +0 -13
- data/spec/rubocop/cop/style/end_of_line_spec.rb +0 -65
- data/spec/rubocop/cop/style/even_odd_spec.rb +0 -164
- data/spec/rubocop/cop/style/extra_spacing_spec.rb +0 -68
- data/spec/rubocop/cop/style/file_name_spec.rb +0 -84
- data/spec/rubocop/cop/style/first_parameter_indentation_spec.rb +0 -304
- data/spec/rubocop/cop/style/flip_flop_spec.rb +0 -23
- data/spec/rubocop/cop/style/for_spec.rb +0 -105
- data/spec/rubocop/cop/style/format_string_spec.rb +0 -184
- data/spec/rubocop/cop/style/global_vars_spec.rb +0 -34
- data/spec/rubocop/cop/style/guard_clause_spec.rb +0 -172
- data/spec/rubocop/cop/style/hash_syntax_spec.rb +0 -137
- data/spec/rubocop/cop/style/if_unless_modifier_spec.rb +0 -146
- data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +0 -24
- data/spec/rubocop/cop/style/indent_array_spec.rb +0 -173
- data/spec/rubocop/cop/style/indent_hash_spec.rb +0 -367
- data/spec/rubocop/cop/style/indentation_consistency_spec.rb +0 -509
- data/spec/rubocop/cop/style/indentation_width_spec.rb +0 -885
- data/spec/rubocop/cop/style/infinite_loop_spec.rb +0 -48
- data/spec/rubocop/cop/style/inline_comment_spec.rb +0 -13
- data/spec/rubocop/cop/style/lambda_call_spec.rb +0 -65
- data/spec/rubocop/cop/style/lambda_spec.rb +0 -76
- data/spec/rubocop/cop/style/leading_comment_space_spec.rb +0 -64
- data/spec/rubocop/cop/style/line_end_concatenation_spec.rb +0 -184
- data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +0 -59
- data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +0 -60
- data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +0 -108
- data/spec/rubocop/cop/style/method_name_spec.rb +0 -125
- data/spec/rubocop/cop/style/module_function_spec.rb +0 -24
- data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +0 -78
- data/spec/rubocop/cop/style/multiline_block_layout_spec.rb +0 -199
- data/spec/rubocop/cop/style/multiline_if_then_spec.rb +0 -134
- data/spec/rubocop/cop/style/multiline_operation_indentation_spec.rb +0 -464
- data/spec/rubocop/cop/style/multiline_ternary_operator_spec.rb +0 -18
- data/spec/rubocop/cop/style/negated_if_spec.rb +0 -102
- data/spec/rubocop/cop/style/negated_while_spec.rb +0 -64
- data/spec/rubocop/cop/style/nested_ternary_operator_spec.rb +0 -21
- data/spec/rubocop/cop/style/next_spec.rb +0 -301
- data/spec/rubocop/cop/style/nil_comparison_spec.rb +0 -29
- data/spec/rubocop/cop/style/non_nil_check_spec.rb +0 -132
- data/spec/rubocop/cop/style/not_spec.rb +0 -28
- data/spec/rubocop/cop/style/numeric_literals_spec.rb +0 -80
- data/spec/rubocop/cop/style/one_line_conditional_spec.rb +0 -13
- data/spec/rubocop/cop/style/op_method_spec.rb +0 -85
- data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +0 -161
- data/spec/rubocop/cop/style/percent_literal_delimiters_spec.rb +0 -316
- data/spec/rubocop/cop/style/percent_q_literals_spec.rb +0 -122
- data/spec/rubocop/cop/style/perl_backrefs_spec.rb +0 -22
- data/spec/rubocop/cop/style/predicate_name_spec.rb +0 -57
- data/spec/rubocop/cop/style/proc_spec.rb +0 -27
- data/spec/rubocop/cop/style/raise_args_spec.rb +0 -87
- data/spec/rubocop/cop/style/redundant_begin_spec.rb +0 -121
- data/spec/rubocop/cop/style/redundant_exception_spec.rb +0 -59
- data/spec/rubocop/cop/style/redundant_return_spec.rb +0 -171
- data/spec/rubocop/cop/style/redundant_self_spec.rb +0 -186
- data/spec/rubocop/cop/style/regexp_literal_spec.rb +0 -188
- data/spec/rubocop/cop/style/rescue_modifier_spec.rb +0 -116
- data/spec/rubocop/cop/style/self_assignment_spec.rb +0 -49
- data/spec/rubocop/cop/style/semicolon_spec.rb +0 -114
- data/spec/rubocop/cop/style/signal_exception_spec.rb +0 -289
- data/spec/rubocop/cop/style/single_line_block_params_spec.rb +0 -82
- data/spec/rubocop/cop/style/single_line_methods_spec.rb +0 -94
- data/spec/rubocop/cop/style/single_space_before_first_arg_spec.rb +0 -63
- data/spec/rubocop/cop/style/space_after_colon_spec.rb +0 -55
- data/spec/rubocop/cop/style/space_after_comma_spec.rb +0 -30
- data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +0 -84
- data/spec/rubocop/cop/style/space_after_method_name_spec.rb +0 -70
- data/spec/rubocop/cop/style/space_after_not_spec.rb +0 -22
- data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +0 -23
- data/spec/rubocop/cop/style/space_around_block_parameters_spec.rb +0 -155
- data/spec/rubocop/cop/style/space_around_equals_in_parameter_default_spec.rb +0 -95
- data/spec/rubocop/cop/style/space_around_operators_spec.rb +0 -330
- data/spec/rubocop/cop/style/space_before_block_braces_spec.rb +0 -73
- data/spec/rubocop/cop/style/space_before_comma_spec.rb +0 -42
- data/spec/rubocop/cop/style/space_before_comment_spec.rb +0 -34
- data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +0 -70
- data/spec/rubocop/cop/style/space_before_semicolon_spec.rb +0 -28
- data/spec/rubocop/cop/style/space_inside_block_braces_spec.rb +0 -317
- data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +0 -83
- data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +0 -147
- data/spec/rubocop/cop/style/space_inside_parens_spec.rb +0 -44
- data/spec/rubocop/cop/style/space_inside_range_literal_spec.rb +0 -64
- data/spec/rubocop/cop/style/special_global_vars_spec.rb +0 -62
- data/spec/rubocop/cop/style/string_literals_in_interpolation_spec.rb +0 -99
- data/spec/rubocop/cop/style/string_literals_spec.rb +0 -228
- data/spec/rubocop/cop/style/struct_inheritance_spec.rb +0 -44
- data/spec/rubocop/cop/style/symbol_array_spec.rb +0 -37
- data/spec/rubocop/cop/style/symbol_proc_spec.rb +0 -100
- data/spec/rubocop/cop/style/tab_spec.rb +0 -47
- data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +0 -83
- data/spec/rubocop/cop/style/trailing_comma_spec.rb +0 -390
- data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +0 -31
- data/spec/rubocop/cop/style/trivial_accessors_spec.rb +0 -558
- data/spec/rubocop/cop/style/unless_else_spec.rb +0 -23
- data/spec/rubocop/cop/style/unneeded_capital_w_spec.rb +0 -90
- data/spec/rubocop/cop/style/unneeded_percent_q_spec.rb +0 -127
- data/spec/rubocop/cop/style/unneeded_percent_x_spec.rb +0 -34
- data/spec/rubocop/cop/style/variable_interpolation_spec.rb +0 -76
- data/spec/rubocop/cop/style/variable_name_spec.rb +0 -107
- data/spec/rubocop/cop/style/when_then_spec.rb +0 -42
- data/spec/rubocop/cop/style/while_until_do_spec.rb +0 -55
- data/spec/rubocop/cop/style/while_until_modifier_spec.rb +0 -93
- data/spec/rubocop/cop/style/word_array_spec.rb +0 -117
- data/spec/rubocop/cop/team_spec.rb +0 -190
- data/spec/rubocop/cop/util_spec.rb +0 -102
- data/spec/rubocop/cop/variable_force/assignment_spec.rb +0 -200
- data/spec/rubocop/cop/variable_force/locatable_spec.rb +0 -699
- data/spec/rubocop/cop/variable_force/reference_spec.rb +0 -19
- data/spec/rubocop/cop/variable_force/scope_spec.rb +0 -319
- data/spec/rubocop/cop/variable_force/variable_spec.rb +0 -59
- data/spec/rubocop/cop/variable_force/variable_table_spec.rb +0 -276
- data/spec/rubocop/cop/variable_force_spec.rb +0 -26
- data/spec/rubocop/formatter/base_formatter_spec.rb +0 -191
- data/spec/rubocop/formatter/clang_style_formatter_spec.rb +0 -114
- data/spec/rubocop/formatter/colorizable_spec.rb +0 -107
- data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +0 -50
- data/spec/rubocop/formatter/disabled_lines_formatter_spec.rb +0 -67
- data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +0 -63
- data/spec/rubocop/formatter/file_list_formatter_spec.rb +0 -33
- data/spec/rubocop/formatter/formatter_set_spec.rb +0 -141
- data/spec/rubocop/formatter/fuubar_style_formatter_spec.rb +0 -129
- data/spec/rubocop/formatter/html_formatter_spec.rb +0 -48
- data/spec/rubocop/formatter/json_formatter_spec.rb +0 -152
- data/spec/rubocop/formatter/offense_count_formatter_spec.rb +0 -75
- data/spec/rubocop/formatter/progress_formatter_spec.rb +0 -182
- data/spec/rubocop/formatter/simple_text_formatter_spec.rb +0 -135
- data/spec/rubocop/formatter/text_util_spec.rb +0 -55
- data/spec/rubocop/options_spec.rb +0 -181
- data/spec/rubocop/path_util_spec.rb +0 -77
- data/spec/rubocop/processed_source_spec.rb +0 -184
- data/spec/rubocop/rake_task_spec.rb +0 -122
- data/spec/rubocop/runner_spec.rb +0 -99
- data/spec/rubocop/string_util_spec.rb +0 -46
- data/spec/rubocop/target_finder_spec.rb +0 -245
- data/spec/rubocop/token_spec.rb +0 -29
- data/spec/spec_helper.rb +0 -39
- data/spec/support/cop_helper.rb +0 -75
- data/spec/support/cops/class_must_be_a_module_cop.rb +0 -19
- data/spec/support/cops/module_must_be_a_class_cop.rb +0 -19
- data/spec/support/coverage.rb +0 -15
- data/spec/support/custom_matchers.rb +0 -58
- data/spec/support/file_helper.rb +0 -23
- data/spec/support/jruby_workaround.rb +0 -15
- data/spec/support/mri_syntax_checker.rb +0 -73
- data/spec/support/shared_contexts.rb +0 -53
- data/spec/support/shared_examples.rb +0 -55
- data/spec/support/statement_modifier_helper.rb +0 -41
@@ -1,278 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UnusedMethodArgument do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
describe 'inspection' do
|
9
|
-
before do
|
10
|
-
inspect_source(cop, source)
|
11
|
-
end
|
12
|
-
|
13
|
-
context 'when a method takes multiple arguments' do
|
14
|
-
context 'and an argument is unused' do
|
15
|
-
let(:source) { <<-END }
|
16
|
-
def some_method(foo, bar)
|
17
|
-
puts bar
|
18
|
-
end
|
19
|
-
END
|
20
|
-
|
21
|
-
it 'registers an offense' do
|
22
|
-
expect(cop.offenses.size).to eq(1)
|
23
|
-
expect(cop.offenses.first.message).to eq(
|
24
|
-
'Unused method argument - `foo`. ' \
|
25
|
-
"If it's necessary, use `_` or `_foo` " \
|
26
|
-
"as an argument name to indicate that it won't be used."
|
27
|
-
)
|
28
|
-
expect(cop.offenses.first.severity.name).to eq(:warning)
|
29
|
-
expect(cop.offenses.first.line).to eq(1)
|
30
|
-
expect(cop.highlights).to eq(['foo'])
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context 'and all the arguments are unused' do
|
35
|
-
let(:source) { <<-END }
|
36
|
-
def some_method(foo, bar)
|
37
|
-
end
|
38
|
-
END
|
39
|
-
|
40
|
-
it 'registers offenses and suggests the use of `*`' do
|
41
|
-
expect(cop.offenses.size).to eq(2)
|
42
|
-
expect(cop.offenses.first.message).to eq(
|
43
|
-
'Unused method argument - `foo`. ' \
|
44
|
-
"If it's necessary, use `_` or `_foo` " \
|
45
|
-
"as an argument name to indicate that it won't be used. " \
|
46
|
-
'You can also write as `some_method(*)` if you want the method ' \
|
47
|
-
"to accept any arguments but don't care about them.")
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context 'when a required keyword argument is unused', ruby: 2.1 do
|
53
|
-
let(:source) { <<-END }
|
54
|
-
def self.some_method(foo, bar:)
|
55
|
-
puts foo
|
56
|
-
end
|
57
|
-
END
|
58
|
-
|
59
|
-
it 'registers an offense but does not suggest underscore-prefix' do
|
60
|
-
expect(cop.offenses.size).to eq(1)
|
61
|
-
expect(cop.highlights).to eq(['bar'])
|
62
|
-
expect(cop.offenses.first.message)
|
63
|
-
.to eq('Unused method argument - `bar`.')
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
context 'when an optional keyword argument is unused', ruby: 2 do
|
68
|
-
let(:source) { <<-END }
|
69
|
-
def self.some_method(foo, bar: 1)
|
70
|
-
puts foo
|
71
|
-
end
|
72
|
-
END
|
73
|
-
|
74
|
-
it 'registers an offense but does not suggest underscore-prefix' do
|
75
|
-
expect(cop.offenses.size).to eq(1)
|
76
|
-
expect(cop.highlights).to eq(['bar'])
|
77
|
-
expect(cop.offenses.first.message)
|
78
|
-
.to eq('Unused method argument - `bar`.')
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
context 'when a singleton method argument is unused' do
|
83
|
-
let(:source) { <<-END }
|
84
|
-
def self.some_method(foo)
|
85
|
-
end
|
86
|
-
END
|
87
|
-
|
88
|
-
it 'registers an offense' do
|
89
|
-
expect(cop.offenses.size).to eq(1)
|
90
|
-
expect(cop.offenses.first.line).to eq(1)
|
91
|
-
expect(cop.highlights).to eq(['foo'])
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
context 'when an underscore-prefixed method argument is unused' do
|
96
|
-
let(:source) { <<-END }
|
97
|
-
def some_method(_foo)
|
98
|
-
end
|
99
|
-
END
|
100
|
-
|
101
|
-
it 'accepts' do
|
102
|
-
expect(cop.offenses).to be_empty
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
context 'when a method argument is used' do
|
107
|
-
let(:source) { <<-END }
|
108
|
-
def some_method(foo)
|
109
|
-
puts foo
|
110
|
-
end
|
111
|
-
END
|
112
|
-
|
113
|
-
it 'accepts' do
|
114
|
-
expect(cop.offenses).to be_empty
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
context 'when a variable is unused' do
|
119
|
-
let(:source) { <<-END }
|
120
|
-
def some_method
|
121
|
-
foo = 1
|
122
|
-
end
|
123
|
-
END
|
124
|
-
|
125
|
-
it 'does not care' do
|
126
|
-
expect(cop.offenses).to be_empty
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
context 'when a block argument is unused' do
|
131
|
-
let(:source) { <<-END }
|
132
|
-
1.times do |foo|
|
133
|
-
end
|
134
|
-
END
|
135
|
-
|
136
|
-
it 'does not care' do
|
137
|
-
expect(cop.offenses).to be_empty
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
context 'in a method calling `super` without arguments' do
|
142
|
-
context 'when a method argument is not used explicitly' do
|
143
|
-
let(:source) { <<-END }
|
144
|
-
def some_method(foo)
|
145
|
-
super
|
146
|
-
end
|
147
|
-
END
|
148
|
-
|
149
|
-
it 'accepts since the arguments are guaranteed to be the same as ' \
|
150
|
-
"superclass' ones and the user has no control on them" do
|
151
|
-
expect(cop.offenses).to be_empty
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
context 'in a method calling `super` with arguments' do
|
157
|
-
context 'when a method argument is unused' do
|
158
|
-
let(:source) { <<-END }
|
159
|
-
def some_method(foo)
|
160
|
-
super(:something)
|
161
|
-
end
|
162
|
-
END
|
163
|
-
|
164
|
-
it 'registers an offense' do
|
165
|
-
expect(cop.offenses.size).to eq(1)
|
166
|
-
expect(cop.offenses.first.line).to eq(1)
|
167
|
-
expect(cop.highlights).to eq(['foo'])
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
173
|
-
describe 'auto-correction' do
|
174
|
-
let(:corrected_source) { autocorrect_source(cop, source) }
|
175
|
-
|
176
|
-
context 'when multiple arguments are unused' do
|
177
|
-
let(:source) { <<-END }
|
178
|
-
def some_method(foo, bar)
|
179
|
-
end
|
180
|
-
END
|
181
|
-
|
182
|
-
let(:expected_source) { <<-END }
|
183
|
-
def some_method(_foo, _bar)
|
184
|
-
end
|
185
|
-
END
|
186
|
-
|
187
|
-
it 'adds underscore-prefix to them' do
|
188
|
-
expect(corrected_source).to eq(expected_source)
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
context 'when only a part of arguments is unused' do
|
193
|
-
let(:source) { <<-END }
|
194
|
-
def some_method(foo, bar)
|
195
|
-
puts foo
|
196
|
-
end
|
197
|
-
END
|
198
|
-
|
199
|
-
let(:expected_source) { <<-END }
|
200
|
-
def some_method(foo, _bar)
|
201
|
-
puts foo
|
202
|
-
end
|
203
|
-
END
|
204
|
-
|
205
|
-
it 'modifies only the unused one' do
|
206
|
-
expect(corrected_source).to eq(expected_source)
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
|
-
context 'when there are some whitespaces around the argument' do
|
211
|
-
let(:source) { <<-END }
|
212
|
-
def some_method(foo,
|
213
|
-
bar)
|
214
|
-
puts foo
|
215
|
-
end
|
216
|
-
END
|
217
|
-
|
218
|
-
let(:expected_source) { <<-END }
|
219
|
-
def some_method(foo,
|
220
|
-
_bar)
|
221
|
-
puts foo
|
222
|
-
end
|
223
|
-
END
|
224
|
-
|
225
|
-
it 'preserves the whitespace' do
|
226
|
-
expect(corrected_source).to eq(expected_source)
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
context 'when a splat argument is unused' do
|
231
|
-
let(:source) { <<-END }
|
232
|
-
def some_method(foo, *bar)
|
233
|
-
puts foo
|
234
|
-
end
|
235
|
-
END
|
236
|
-
|
237
|
-
let(:expected_source) { <<-END }
|
238
|
-
def some_method(foo, *_bar)
|
239
|
-
puts foo
|
240
|
-
end
|
241
|
-
END
|
242
|
-
|
243
|
-
it 'preserves the splat' do
|
244
|
-
expect(corrected_source).to eq(expected_source)
|
245
|
-
end
|
246
|
-
end
|
247
|
-
|
248
|
-
context 'when an unused argument has default value' do
|
249
|
-
let(:source) { <<-END }
|
250
|
-
def some_method(foo, bar = 1)
|
251
|
-
puts foo
|
252
|
-
end
|
253
|
-
END
|
254
|
-
|
255
|
-
let(:expected_source) { <<-END }
|
256
|
-
def some_method(foo, _bar = 1)
|
257
|
-
puts foo
|
258
|
-
end
|
259
|
-
END
|
260
|
-
|
261
|
-
it 'preserves the default value' do
|
262
|
-
expect(corrected_source).to eq(expected_source)
|
263
|
-
end
|
264
|
-
end
|
265
|
-
|
266
|
-
context 'when a keyword argument is unused', ruby: 2 do
|
267
|
-
let(:source) { <<-END }
|
268
|
-
def some_method(foo, bar: 1)
|
269
|
-
puts foo
|
270
|
-
end
|
271
|
-
END
|
272
|
-
|
273
|
-
it 'ignores that since modifying the name changes the method interface' do
|
274
|
-
expect(corrected_source).to eq(source)
|
275
|
-
end
|
276
|
-
end
|
277
|
-
end
|
278
|
-
end
|
@@ -1,192 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UselessAccessModifier do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
context 'when an access modifier has no effect' do
|
9
|
-
let(:source) do
|
10
|
-
[
|
11
|
-
'class SomeClass',
|
12
|
-
' def some_method',
|
13
|
-
' puts 10',
|
14
|
-
' end',
|
15
|
-
' private',
|
16
|
-
' def self.some_method',
|
17
|
-
' puts 10',
|
18
|
-
' end',
|
19
|
-
'end'
|
20
|
-
]
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers an offense' do
|
24
|
-
inspect_source(cop, source)
|
25
|
-
expect(cop.offenses.size).to eq(1)
|
26
|
-
expect(cop.offenses.first.message)
|
27
|
-
.to eq('Useless `private` access modifier.')
|
28
|
-
expect(cop.offenses.first.line).to eq(5)
|
29
|
-
expect(cop.highlights).to eq(['private'])
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'when an access modifier has no methods' do
|
34
|
-
let(:source) do
|
35
|
-
[
|
36
|
-
'class SomeClass',
|
37
|
-
' protected',
|
38
|
-
'end'
|
39
|
-
]
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'registers an offense' do
|
43
|
-
inspect_source(cop, source)
|
44
|
-
expect(cop.offenses.size).to eq(1)
|
45
|
-
expect(cop.offenses.first.message)
|
46
|
-
.to eq('Useless `protected` access modifier.')
|
47
|
-
expect(cop.offenses.first.line).to eq(2)
|
48
|
-
expect(cop.highlights).to eq(['protected'])
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context 'when an access modifier is followed by attr_*' do
|
53
|
-
let(:source) do
|
54
|
-
[
|
55
|
-
'class SomeClass',
|
56
|
-
' protected',
|
57
|
-
' attr_accessor :some_property',
|
58
|
-
'end'
|
59
|
-
]
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'does not register an offense' do
|
63
|
-
inspect_source(cop, source)
|
64
|
-
expect(cop.offenses.size).to eq(0)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
context 'when an access modifier is followed by a ' \
|
69
|
-
'class method defined on constant' do
|
70
|
-
let(:source) do
|
71
|
-
[
|
72
|
-
'class SomeClass',
|
73
|
-
' protected',
|
74
|
-
' def SomeClass.some_method',
|
75
|
-
' end',
|
76
|
-
'end'
|
77
|
-
]
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'registers an offense' do
|
81
|
-
inspect_source(cop, source)
|
82
|
-
expect(cop.offenses.size).to eq(1)
|
83
|
-
expect(cop.offenses.first.message)
|
84
|
-
.to eq('Useless `protected` access modifier.')
|
85
|
-
expect(cop.offenses.first.line).to eq(2)
|
86
|
-
expect(cop.highlights).to eq(['protected'])
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
context 'when consecutive access modifiers' do
|
91
|
-
let(:source) do
|
92
|
-
[
|
93
|
-
'class SomeClass',
|
94
|
-
' private',
|
95
|
-
' private',
|
96
|
-
' def some_method',
|
97
|
-
' puts 10',
|
98
|
-
' end',
|
99
|
-
' def some_other_method',
|
100
|
-
' puts 10',
|
101
|
-
' end',
|
102
|
-
'end'
|
103
|
-
]
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'registers an offense' do
|
107
|
-
inspect_source(cop, source)
|
108
|
-
expect(cop.offenses.size).to eq(1)
|
109
|
-
expect(cop.offenses.first.message)
|
110
|
-
.to eq('Useless `private` access modifier.')
|
111
|
-
expect(cop.offenses.first.line).to eq(2)
|
112
|
-
expect(cop.highlights).to eq(['private'])
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
context 'when passing method as symbol' do
|
117
|
-
let(:source) do
|
118
|
-
[
|
119
|
-
'class SomeClass',
|
120
|
-
' def some_method',
|
121
|
-
' puts 10',
|
122
|
-
' end',
|
123
|
-
' private :some_method',
|
124
|
-
'end'
|
125
|
-
]
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'does not register an offense' do
|
129
|
-
inspect_source(cop, source)
|
130
|
-
expect(cop.offenses.size).to eq(0)
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
context 'when class is empty save modifier' do
|
135
|
-
let(:source) do
|
136
|
-
[
|
137
|
-
'class SomeClass',
|
138
|
-
' private',
|
139
|
-
'end'
|
140
|
-
]
|
141
|
-
end
|
142
|
-
|
143
|
-
it 'registers an offense' do
|
144
|
-
inspect_source(cop, source)
|
145
|
-
expect(cop.offenses.size).to eq(1)
|
146
|
-
expect(cop.offenses.first.message)
|
147
|
-
.to eq('Useless `private` access modifier.')
|
148
|
-
expect(cop.offenses.first.line).to eq(2)
|
149
|
-
expect(cop.highlights).to eq(['private'])
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
context 'when multiple class definitions in file but only one has offense' do
|
154
|
-
let(:source) do
|
155
|
-
[
|
156
|
-
'class SomeClass',
|
157
|
-
' private',
|
158
|
-
'end',
|
159
|
-
'class SomeOtherClass',
|
160
|
-
'end'
|
161
|
-
]
|
162
|
-
end
|
163
|
-
|
164
|
-
it 'registers an offense' do
|
165
|
-
inspect_source(cop, source)
|
166
|
-
expect(cop.offenses.size).to eq(1)
|
167
|
-
expect(cop.offenses.first.message)
|
168
|
-
.to eq('Useless `private` access modifier.')
|
169
|
-
expect(cop.offenses.first.line).to eq(2)
|
170
|
-
expect(cop.highlights).to eq(['private'])
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
if RUBY_ENGINE == 'ruby' && RUBY_VERSION.start_with?('2.1')
|
175
|
-
context 'ruby 2.1 style modifiers' do
|
176
|
-
let(:source) do
|
177
|
-
[
|
178
|
-
'class SomeClass',
|
179
|
-
' private def some_method',
|
180
|
-
' puts 10',
|
181
|
-
' end',
|
182
|
-
'end'
|
183
|
-
]
|
184
|
-
end
|
185
|
-
|
186
|
-
it 'does not register an offense' do
|
187
|
-
inspect_source(cop, source)
|
188
|
-
expect(cop.offenses.size).to eq(0)
|
189
|
-
end
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|