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,66 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::SpaceBeforeFirstArg do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
context 'for method calls without parentheses' do
|
9
|
-
it 'registers an offense for method call with no space before the ' \
|
10
|
-
'first arg' do
|
11
|
-
inspect_source(cop, ['something?x',
|
12
|
-
'a.something!y, z'])
|
13
|
-
expect(cop.messages)
|
14
|
-
.to eq(['Put space between the method name and the first ' \
|
15
|
-
'argument.'] * 2)
|
16
|
-
expect(cop.highlights).to eq(%w(x y))
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'accepts a method call with space before the first arg' do
|
20
|
-
inspect_source(cop, ['something? x',
|
21
|
-
'a.something! y, z'])
|
22
|
-
expect(cop.offenses).to be_empty
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'accepts square brackets operator' do
|
26
|
-
inspect_source(cop, 'something[:x]')
|
27
|
-
expect(cop.offenses).to be_empty
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'accepts a method call with space before a multiline arg' do
|
31
|
-
inspect_source(cop, "something [\n 'foo',\n 'bar'\n]")
|
32
|
-
expect(cop.offenses).to be_empty
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'accepts an assignment without space before first arg' do
|
36
|
-
inspect_source(cop, ['a.something=c',
|
37
|
-
'a.something,b=c,d'])
|
38
|
-
expect(cop.offenses).to be_empty
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'auto-corrects method call with no space before the first arg' do
|
42
|
-
new_source = autocorrect_source(cop, ['something?x',
|
43
|
-
'a.something!y, z'])
|
44
|
-
expect(new_source).to eq(['something? x',
|
45
|
-
'a.something! y, z'].join("\n"))
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
context 'for method calls with parentheses' do
|
50
|
-
it 'accepts a method call without space' do
|
51
|
-
inspect_source(cop, ['something?(x)',
|
52
|
-
'a.something(y, z)'])
|
53
|
-
expect(cop.offenses).to be_empty
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'accepts a method call with space after the left parenthesis' do
|
57
|
-
inspect_source(cop, 'something?( x )')
|
58
|
-
expect(cop.offenses).to be_empty
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'accepts setter call' do
|
62
|
-
inspect_source(cop, 'self.class.controller_path=(path)')
|
63
|
-
expect(cop.offenses).to be_empty
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::StringConversionInInterpolation do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for #to_s in interpolation' do
|
9
|
-
inspect_source(cop, '"this is the #{result.to_s}"')
|
10
|
-
expect(cop.offenses.size).to eq(1)
|
11
|
-
expect(cop.messages)
|
12
|
-
.to eq(['Redundant use of `Object#to_s` in interpolation.'])
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'detects #to_s in an interpolation with several expressions' do
|
16
|
-
inspect_source(cop, '"this is the #{top; result.to_s}"')
|
17
|
-
expect(cop.offenses.size).to eq(1)
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'accepts #to_s with arguments in an interpolation' do
|
21
|
-
inspect_source(cop, '"this is a #{result.to_s(8)}"')
|
22
|
-
expect(cop.offenses).to be_empty
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'accepts interpolation without #to_s' do
|
26
|
-
inspect_source(cop, '"this is the #{result}"')
|
27
|
-
expect(cop.offenses).to be_empty
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'does not explode on implicit receiver' do
|
31
|
-
inspect_source(cop, '"#{to_s}"')
|
32
|
-
expect(cop.offenses.size).to eq(1)
|
33
|
-
expect(cop.messages)
|
34
|
-
.to eq(['Use `self` instead of `Object#to_s` in interpolation.'])
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'does not explode on empty interpolation' do
|
38
|
-
inspect_source(cop, '"this is #{} silly"')
|
39
|
-
expect(cop.offenses).to be_empty
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'autocorrects by removing the redundant to_s' do
|
43
|
-
corrected = autocorrect_source(cop, ['"some #{something.to_s}"'])
|
44
|
-
expect(corrected).to eq '"some #{something}"'
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'autocorrects implicit receiver by replacing to_s with self' do
|
48
|
-
corrected = autocorrect_source(cop, ['"some #{to_s}"'])
|
49
|
-
expect(corrected).to eq '"some #{self}"'
|
50
|
-
end
|
51
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::Syntax do
|
6
|
-
describe '.offense_from_diagnostic' do
|
7
|
-
subject(:offense) { described_class.offense_from_diagnostic(diagnostic) }
|
8
|
-
let(:diagnostic) { Parser::Diagnostic.new(level, reason, args, location) }
|
9
|
-
let(:level) { :warning }
|
10
|
-
let(:reason) { :odd_hash }
|
11
|
-
let(:args) { [] }
|
12
|
-
let(:location) { double('location').as_null_object }
|
13
|
-
|
14
|
-
it 'returns an offense' do
|
15
|
-
expect(offense).to be_a(RuboCop::Cop::Offense)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "sets diagnostic's level to offense's severity" do
|
19
|
-
expect(offense.severity).to eq(level)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "sets diagnostic's message to offense's message" do
|
23
|
-
expect(offense.message).to eq('odd number of entries for a hash')
|
24
|
-
end
|
25
|
-
|
26
|
-
it "sets diagnostic's location to offense's location" do
|
27
|
-
expect(offense.location).to eq(location)
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'sets Syntax as a cop name' do
|
31
|
-
expect(offense.cop_name).to eq('Syntax')
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,179 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UnderscorePrefixedVariableName do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
before do
|
9
|
-
inspect_source(cop, source)
|
10
|
-
end
|
11
|
-
|
12
|
-
context 'when an underscore-prefixed variable is used' do
|
13
|
-
let(:source) { <<-END }
|
14
|
-
def some_method
|
15
|
-
_foo = 1
|
16
|
-
puts _foo
|
17
|
-
end
|
18
|
-
END
|
19
|
-
|
20
|
-
it 'registers an offense' do
|
21
|
-
expect(cop.offenses.size).to eq(1)
|
22
|
-
expect(cop.offenses.first.message)
|
23
|
-
.to eq('Do not use prefix `_` for a variable that is used.')
|
24
|
-
expect(cop.offenses.first.severity.name).to eq(:warning)
|
25
|
-
expect(cop.offenses.first.line).to eq(2)
|
26
|
-
expect(cop.highlights).to eq(['_foo'])
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context 'when non-underscore-prefixed variable is used' do
|
31
|
-
let(:source) { <<-END }
|
32
|
-
def some_method
|
33
|
-
foo = 1
|
34
|
-
puts foo
|
35
|
-
end
|
36
|
-
END
|
37
|
-
|
38
|
-
it 'accepts' do
|
39
|
-
expect(cop.offenses).to be_empty
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'when an underscore-prefixed variable is reassigned' do
|
44
|
-
let(:source) { <<-END }
|
45
|
-
def some_method
|
46
|
-
_foo = 1
|
47
|
-
_foo = 2
|
48
|
-
end
|
49
|
-
END
|
50
|
-
|
51
|
-
it 'accepts' do
|
52
|
-
expect(cop.offenses).to be_empty
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context 'when an underscore-prefixed method argument is used' do
|
57
|
-
let(:source) { <<-END }
|
58
|
-
def some_method(_foo)
|
59
|
-
puts _foo
|
60
|
-
end
|
61
|
-
END
|
62
|
-
|
63
|
-
it 'registers an offense' do
|
64
|
-
expect(cop.offenses.size).to eq(1)
|
65
|
-
expect(cop.offenses.first.line).to eq(1)
|
66
|
-
expect(cop.highlights).to eq(['_foo'])
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context 'when an underscore-prefixed block argument is used' do
|
71
|
-
let(:source) { <<-END }
|
72
|
-
1.times do |_foo|
|
73
|
-
puts _foo
|
74
|
-
end
|
75
|
-
END
|
76
|
-
|
77
|
-
it 'registers an offense' do
|
78
|
-
expect(cop.offenses.size).to eq(1)
|
79
|
-
expect(cop.offenses.first.line).to eq(1)
|
80
|
-
expect(cop.highlights).to eq(['_foo'])
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context 'when an underscore-prefixed variable in top-level scope is used' do
|
85
|
-
let(:source) { <<-END }
|
86
|
-
_foo = 1
|
87
|
-
puts _foo
|
88
|
-
END
|
89
|
-
|
90
|
-
it 'registers an offense' do
|
91
|
-
expect(cop.offenses.size).to eq(1)
|
92
|
-
expect(cop.offenses.first.line).to eq(1)
|
93
|
-
expect(cop.highlights).to eq(['_foo'])
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
context 'when an underscore-prefixed variable is captured by a block' do
|
98
|
-
let(:source) { <<-END }
|
99
|
-
_foo = 1
|
100
|
-
1.times do
|
101
|
-
_foo = 2
|
102
|
-
end
|
103
|
-
END
|
104
|
-
|
105
|
-
it 'accepts' do
|
106
|
-
expect(cop.offenses).to be_empty
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
context 'when an underscore-prefixed named capture variable is used' do
|
111
|
-
let(:source) { <<-END }
|
112
|
-
/(?<_foo>\\w+)/ =~ 'FOO'
|
113
|
-
puts _foo
|
114
|
-
END
|
115
|
-
|
116
|
-
it 'registers an offense' do
|
117
|
-
expect(cop.offenses.size).to eq(1)
|
118
|
-
expect(cop.offenses.first.line).to eq(1)
|
119
|
-
expect(cop.highlights).to eq(['/(?<_foo>\\w+)/'])
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
context 'in a method calling `super` without arguments' do
|
124
|
-
context 'when an underscore-prefixed argument is not used explicitly' do
|
125
|
-
let(:source) { <<-END }
|
126
|
-
def some_method(*_)
|
127
|
-
super
|
128
|
-
end
|
129
|
-
END
|
130
|
-
|
131
|
-
it 'accepts' do
|
132
|
-
expect(cop.offenses).to be_empty
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
context 'when an underscore-prefixed argument is used explicitly' do
|
137
|
-
let(:source) { <<-END }
|
138
|
-
def some_method(*_)
|
139
|
-
super
|
140
|
-
puts _
|
141
|
-
end
|
142
|
-
END
|
143
|
-
|
144
|
-
it 'registers an offense' do
|
145
|
-
expect(cop.offenses.size).to eq(1)
|
146
|
-
expect(cop.offenses.first.line).to eq(1)
|
147
|
-
expect(cop.highlights).to eq(['_'])
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
context 'in a method calling `super` with arguments' do
|
153
|
-
context 'when an underscore-prefixed argument is not used' do
|
154
|
-
let(:source) { <<-END }
|
155
|
-
def some_method(*_)
|
156
|
-
super(:something)
|
157
|
-
end
|
158
|
-
END
|
159
|
-
|
160
|
-
it 'accepts' do
|
161
|
-
expect(cop.offenses).to be_empty
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
context 'when an underscore-prefixed argument is used explicitly' do
|
166
|
-
let(:source) { <<-END }
|
167
|
-
def some_method(*_)
|
168
|
-
super(*_)
|
169
|
-
end
|
170
|
-
END
|
171
|
-
|
172
|
-
it 'registers an offense' do
|
173
|
-
expect(cop.offenses.size).to eq(1)
|
174
|
-
expect(cop.offenses.first.line).to eq(1)
|
175
|
-
expect(cop.highlights).to eq(['_'])
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
179
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UnreachableCode do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
described_class::NODE_TYPES.each do |t|
|
9
|
-
it "registers an offense for #{t} before other statements" do
|
10
|
-
inspect_source(cop,
|
11
|
-
['foo = 5',
|
12
|
-
"#{t}",
|
13
|
-
'bar'
|
14
|
-
])
|
15
|
-
expect(cop.offenses.size).to eq(1)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "accepts code with conditional #{t}" do
|
19
|
-
inspect_source(cop,
|
20
|
-
['foo = 5',
|
21
|
-
"#{t} if test",
|
22
|
-
'bar'
|
23
|
-
])
|
24
|
-
expect(cop.offenses).to be_empty
|
25
|
-
end
|
26
|
-
|
27
|
-
it "accepts #{t} as the final expression" do
|
28
|
-
inspect_source(cop,
|
29
|
-
['foo = 5',
|
30
|
-
"#{t} if test"
|
31
|
-
])
|
32
|
-
expect(cop.offenses).to be_empty
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
described_class::FLOW_COMMANDS.each do |t|
|
37
|
-
it "registers an offense for #{t} before other statements" do
|
38
|
-
inspect_source(cop,
|
39
|
-
['foo = 5',
|
40
|
-
"#{t} something",
|
41
|
-
'bar'
|
42
|
-
])
|
43
|
-
expect(cop.offenses.size).to eq(1)
|
44
|
-
end
|
45
|
-
|
46
|
-
it "accepts code with conditional #{t}" do
|
47
|
-
inspect_source(cop,
|
48
|
-
['foo = 5',
|
49
|
-
"#{t} something if test",
|
50
|
-
'bar'
|
51
|
-
])
|
52
|
-
expect(cop.offenses).to be_empty
|
53
|
-
end
|
54
|
-
|
55
|
-
it "accepts #{t} as the final expression" do
|
56
|
-
inspect_source(cop,
|
57
|
-
['foo = 5',
|
58
|
-
"#{t} something if test"
|
59
|
-
])
|
60
|
-
expect(cop.offenses).to be_empty
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,231 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UnusedBlockArgument do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
context 'inspection' do
|
9
|
-
before do
|
10
|
-
inspect_source(cop, source)
|
11
|
-
end
|
12
|
-
|
13
|
-
context 'when a block takes multiple arguments' do
|
14
|
-
context 'and an argument is unused' do
|
15
|
-
let(:source) { <<-END }
|
16
|
-
hash = { foo: 'FOO', bar: 'BAR' }
|
17
|
-
hash.each do |key, value|
|
18
|
-
puts key
|
19
|
-
end
|
20
|
-
END
|
21
|
-
|
22
|
-
it 'registers an offense' do
|
23
|
-
expect(cop.offenses.size).to eq(1)
|
24
|
-
expect(cop.offenses.first.message).to eq(
|
25
|
-
'Unused block argument - `value`. ' \
|
26
|
-
"If it's necessary, use `_` or `_value` as an argument name " \
|
27
|
-
"to indicate that it won't be used."
|
28
|
-
)
|
29
|
-
expect(cop.offenses.first.severity.name).to eq(:warning)
|
30
|
-
expect(cop.offenses.first.line).to eq(2)
|
31
|
-
expect(cop.highlights).to eq(['value'])
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
context 'and all the arguments are unused' do
|
36
|
-
let(:source) { <<-END }
|
37
|
-
hash = { foo: 'FOO', bar: 'BAR' }
|
38
|
-
hash.each do |key, value|
|
39
|
-
puts :something
|
40
|
-
end
|
41
|
-
END
|
42
|
-
|
43
|
-
it 'registers offenses and suggests omitting them' do
|
44
|
-
expect(cop.offenses.size).to eq(2)
|
45
|
-
expect(cop.offenses.first.message).to eq(
|
46
|
-
'Unused block argument - `key`. ' \
|
47
|
-
"You can omit all the arguments if you don't care about them."
|
48
|
-
)
|
49
|
-
expect(cop.offenses.first.line).to eq(2)
|
50
|
-
expect(cop.highlights).to eq(%w(key value))
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
context 'when a block takes single argument' do
|
56
|
-
context 'and the argument is unused' do
|
57
|
-
let(:source) { <<-END }
|
58
|
-
1.times do |index|
|
59
|
-
puts :something
|
60
|
-
end
|
61
|
-
END
|
62
|
-
|
63
|
-
it 'registers an offense and suggests omitting that' do
|
64
|
-
expect(cop.offenses.size).to eq(1)
|
65
|
-
expect(cop.offenses.first.message).to eq(
|
66
|
-
'Unused block argument - `index`. ' \
|
67
|
-
"You can omit the argument if you don't care about it."
|
68
|
-
)
|
69
|
-
expect(cop.offenses.first.line).to eq(1)
|
70
|
-
expect(cop.highlights).to eq(['index'])
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context 'when a block have a block local variable' do
|
76
|
-
context 'and the variable is unused' do
|
77
|
-
let(:source) { <<-END }
|
78
|
-
1.times do |index; block_local_variable|
|
79
|
-
puts index
|
80
|
-
end
|
81
|
-
END
|
82
|
-
|
83
|
-
it 'registers an offense' do
|
84
|
-
expect(cop.offenses.size).to eq(1)
|
85
|
-
expect(cop.offenses.first.message).to eq(
|
86
|
-
'Unused block local variable - `block_local_variable`.'
|
87
|
-
)
|
88
|
-
expect(cop.offenses.first.line).to eq(1)
|
89
|
-
expect(cop.highlights).to eq(['block_local_variable'])
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
context 'when a lambda block takes arguments' do
|
95
|
-
context 'and all the arguments are unused' do
|
96
|
-
let(:source) { <<-END }
|
97
|
-
-> (foo, bar) { do_something }
|
98
|
-
END
|
99
|
-
|
100
|
-
it 'registers offenses and suggests using a proc' do
|
101
|
-
expect(cop.offenses.size).to eq(2)
|
102
|
-
expect(cop.offenses.first.message).to eq(
|
103
|
-
'Unused block argument - `foo`. ' \
|
104
|
-
"If it's necessary, use `_` or `_foo` as an argument name " \
|
105
|
-
"to indicate that it won't be used. " \
|
106
|
-
'Also consider using a proc without arguments instead of a ' \
|
107
|
-
"lambda if you want it to accept any arguments but don't care " \
|
108
|
-
'about them.'
|
109
|
-
|
110
|
-
)
|
111
|
-
expect(cop.offenses.first.line).to eq(1)
|
112
|
-
expect(cop.highlights).to eq(%w(foo bar))
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
context 'and an arguments is unused' do
|
117
|
-
let(:source) { <<-END }
|
118
|
-
-> (foo, bar) { puts bar }
|
119
|
-
END
|
120
|
-
|
121
|
-
it 'registers an offense' do
|
122
|
-
expect(cop.offenses.size).to eq(1)
|
123
|
-
expect(cop.offenses.first.message).to eq(
|
124
|
-
'Unused block argument - `foo`. ' \
|
125
|
-
"If it's necessary, use `_` or `_foo` as an argument name " \
|
126
|
-
"to indicate that it won't be used."
|
127
|
-
)
|
128
|
-
expect(cop.offenses.first.line).to eq(1)
|
129
|
-
expect(cop.highlights).to eq(['foo'])
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
context 'when an underscore-prefixed block argument is not used' do
|
135
|
-
let(:source) { <<-END }
|
136
|
-
1.times do |_index|
|
137
|
-
puts 'foo'
|
138
|
-
end
|
139
|
-
END
|
140
|
-
|
141
|
-
it 'accepts' do
|
142
|
-
expect(cop.offenses).to be_empty
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
context 'when a method argument is not used' do
|
147
|
-
let(:source) { <<-END }
|
148
|
-
def some_method(foo)
|
149
|
-
end
|
150
|
-
END
|
151
|
-
|
152
|
-
it 'does not care' do
|
153
|
-
expect(cop.offenses).to be_empty
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
context 'when a variable is not used' do
|
158
|
-
let(:source) { <<-END }
|
159
|
-
1.times do
|
160
|
-
foo = 1
|
161
|
-
end
|
162
|
-
END
|
163
|
-
|
164
|
-
it 'does not care' do
|
165
|
-
expect(cop.offenses).to be_empty
|
166
|
-
end
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
context 'auto-correct' do
|
171
|
-
it 'fixes single' do
|
172
|
-
expect(autocorrect_source(cop, <<-SOURCE
|
173
|
-
arr.map { |foo| stuff }
|
174
|
-
SOURCE
|
175
|
-
)).to eq(<<-CORRECTED_SOURCE
|
176
|
-
arr.map { |_foo| stuff }
|
177
|
-
CORRECTED_SOURCE
|
178
|
-
)
|
179
|
-
end
|
180
|
-
|
181
|
-
it 'fixes multiple' do
|
182
|
-
expect(autocorrect_source(cop, <<-SOURCE
|
183
|
-
hash.map { |key, val| stuff }
|
184
|
-
SOURCE
|
185
|
-
)).to eq(<<-CORRECTED_SOURCE
|
186
|
-
hash.map { |_key, _val| stuff }
|
187
|
-
CORRECTED_SOURCE
|
188
|
-
)
|
189
|
-
end
|
190
|
-
|
191
|
-
it 'preserves whitespace' do
|
192
|
-
expect(autocorrect_source(cop, <<-SOURCE
|
193
|
-
hash.map { |key,
|
194
|
-
val| stuff }
|
195
|
-
SOURCE
|
196
|
-
)).to eq(<<-CORRECTED_SOURCE
|
197
|
-
hash.map { |_key,
|
198
|
-
_val| stuff }
|
199
|
-
CORRECTED_SOURCE
|
200
|
-
)
|
201
|
-
end
|
202
|
-
|
203
|
-
it 'preserves splat' do
|
204
|
-
expect(autocorrect_source(cop, <<-SOURCE
|
205
|
-
obj.method { |foo, *bars, baz| stuff(foo, baz) }
|
206
|
-
SOURCE
|
207
|
-
)).to eq(<<-CORRECTED_SOURCE
|
208
|
-
obj.method { |foo, *_bars, baz| stuff(foo, baz) }
|
209
|
-
CORRECTED_SOURCE
|
210
|
-
)
|
211
|
-
end
|
212
|
-
|
213
|
-
it 'preserves default' do
|
214
|
-
expect(autocorrect_source(cop, <<-SOURCE
|
215
|
-
obj.method { |foo, bar = baz| stuff(foo) }
|
216
|
-
SOURCE
|
217
|
-
)).to eq(<<-CORRECTED_SOURCE
|
218
|
-
obj.method { |foo, _bar = baz| stuff(foo) }
|
219
|
-
CORRECTED_SOURCE
|
220
|
-
)
|
221
|
-
end
|
222
|
-
|
223
|
-
it 'ignores used' do
|
224
|
-
original_source = <<-SOURCE
|
225
|
-
obj.method { |foo, baz| stuff(foo, baz) }
|
226
|
-
SOURCE
|
227
|
-
|
228
|
-
expect(autocorrect_source(cop, original_source)).to eq(original_source)
|
229
|
-
end
|
230
|
-
end
|
231
|
-
end
|