rubocop 0.29.1 → 0.30.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/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,49 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SelfAssignment do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
[:+, :-, :*, :**, :/, :|, :&].product(['x', '@x', '@@x']).each do |op, var|
|
9
|
-
it "registers an offense for non-shorthand assignment #{op} and #{var}" do
|
10
|
-
inspect_source(cop,
|
11
|
-
"#{var} = #{var} #{op} y")
|
12
|
-
expect(cop.offenses.size).to eq(1)
|
13
|
-
expect(cop.messages)
|
14
|
-
.to eq(["Use self-assignment shorthand `#{op}=`."])
|
15
|
-
end
|
16
|
-
|
17
|
-
it "accepts shorthand assignment for #{op} and #{var}" do
|
18
|
-
inspect_source(cop,
|
19
|
-
"#{var} #{op}= y")
|
20
|
-
expect(cop.offenses).to be_empty
|
21
|
-
end
|
22
|
-
|
23
|
-
it "auto-corrects a non-shorthand assignment #{op} and #{var}" do
|
24
|
-
new_source = autocorrect_source(cop, "#{var} = #{var} #{op} y")
|
25
|
-
expect(new_source).to eq("#{var} #{op}= y")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
['||', '&&'].product(['x', '@x', '@@x']).each do |op, var|
|
30
|
-
it "registers an offense for non-shorthand assignment #{op} and #{var}" do
|
31
|
-
inspect_source(cop,
|
32
|
-
"#{var} = #{var} #{op} y")
|
33
|
-
expect(cop.offenses.size).to eq(1)
|
34
|
-
expect(cop.messages)
|
35
|
-
.to eq(["Use self-assignment shorthand `#{op}=`."])
|
36
|
-
end
|
37
|
-
|
38
|
-
it "accepts shorthand assignment for #{op} and #{var}" do
|
39
|
-
inspect_source(cop,
|
40
|
-
"#{var} #{op}= y")
|
41
|
-
expect(cop.offenses).to be_empty
|
42
|
-
end
|
43
|
-
|
44
|
-
it "auto-corrects a non-shorthand assignment #{op} and #{var}" do
|
45
|
-
new_source = autocorrect_source(cop, "#{var} = #{var} #{op} y")
|
46
|
-
expect(new_source).to eq("#{var} #{op}= y")
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,114 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::Semicolon, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) { { 'AllowAsExpressionSeparator' => false } }
|
8
|
-
|
9
|
-
it 'registers an offense for a single expression' do
|
10
|
-
inspect_source(cop,
|
11
|
-
'puts "this is a test";')
|
12
|
-
expect(cop.offenses.size).to eq(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'registers an offense for several expressions' do
|
16
|
-
inspect_source(cop,
|
17
|
-
'puts "this is a test"; puts "So is this"')
|
18
|
-
expect(cop.offenses.size).to eq(1)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'registers an offense for one line method with two statements' do
|
22
|
-
inspect_source(cop,
|
23
|
-
'def foo(a) x(1); y(2); z(3); end')
|
24
|
-
expect(cop.offenses.size).to eq(1)
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'accepts semicolon before end if so configured' do
|
28
|
-
inspect_source(cop,
|
29
|
-
'def foo(a) z(3); end')
|
30
|
-
expect(cop.offenses).to be_empty
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'accepts semicolon after params if so configured' do
|
34
|
-
inspect_source(cop,
|
35
|
-
'def foo(a); z(3) end')
|
36
|
-
expect(cop.offenses).to be_empty
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'accepts one line method definitions' do
|
40
|
-
inspect_source(cop,
|
41
|
-
['def foo1; x(3) end',
|
42
|
-
'def initialize(*_); end',
|
43
|
-
'def foo2() x(3); end',
|
44
|
-
'def foo3; x(3); end'])
|
45
|
-
expect(cop.offenses).to be_empty
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'accepts one line empty class definitions' do
|
49
|
-
inspect_source(cop,
|
50
|
-
['# Prefer a single-line format for class ...',
|
51
|
-
'class Foo < Exception; end',
|
52
|
-
'',
|
53
|
-
'class Bar; end'])
|
54
|
-
expect(cop.offenses).to be_empty
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'accepts one line empty method definitions' do
|
58
|
-
inspect_source(cop,
|
59
|
-
['# One exception to the rule are empty-body methods',
|
60
|
-
'def no_op; end',
|
61
|
-
'',
|
62
|
-
'def foo; end'])
|
63
|
-
expect(cop.offenses).to be_empty
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'accepts one line empty module definitions' do
|
67
|
-
inspect_source(cop,
|
68
|
-
'module Foo; end')
|
69
|
-
expect(cop.offenses).to be_empty
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'registers an offense for semicolon at the end no matter what' do
|
73
|
-
inspect_source(cop,
|
74
|
-
'module Foo; end;')
|
75
|
-
expect(cop.offenses.size).to eq(1)
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'accept semicolons inside strings' do
|
79
|
-
inspect_source(cop,
|
80
|
-
['string = ";',
|
81
|
-
'multi-line string"'])
|
82
|
-
expect(cop.offenses).to be_empty
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'auto-corrects semicolons when syntactically possible' do
|
86
|
-
corrected =
|
87
|
-
autocorrect_source(cop,
|
88
|
-
['module Foo; end;',
|
89
|
-
'puts "this is a test";',
|
90
|
-
'puts "this is a test"; puts "So is this"',
|
91
|
-
'def foo(a) x(1); y(2); z(3); end'])
|
92
|
-
expect(corrected)
|
93
|
-
.to eq(['module Foo; end',
|
94
|
-
'puts "this is a test"',
|
95
|
-
'puts "this is a test"; puts "So is this"',
|
96
|
-
'def foo(a) x(1); y(2); z(3); end'].join("\n"))
|
97
|
-
end
|
98
|
-
|
99
|
-
context 'when AllowAsExpressionSeparator is true' do
|
100
|
-
let(:cop_config) { { 'AllowAsExpressionSeparator' => true } }
|
101
|
-
|
102
|
-
it 'accepts several expressions' do
|
103
|
-
inspect_source(cop,
|
104
|
-
'puts "this is a test"; puts "So is this"')
|
105
|
-
expect(cop.offenses).to be_empty
|
106
|
-
end
|
107
|
-
|
108
|
-
it 'accepts one line method with two statements' do
|
109
|
-
inspect_source(cop,
|
110
|
-
'def foo(a) x(1); y(2); z(3); end')
|
111
|
-
expect(cop.offenses).to be_empty
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
@@ -1,289 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SignalException, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
context 'when enforced style is `semantic`' do
|
9
|
-
let(:cop_config) { { 'EnforcedStyle' => 'semantic' } }
|
10
|
-
|
11
|
-
it 'registers an offense for raise in begin section' do
|
12
|
-
inspect_source(cop,
|
13
|
-
['begin',
|
14
|
-
' raise',
|
15
|
-
'rescue Exception',
|
16
|
-
' #do nothing',
|
17
|
-
'end'])
|
18
|
-
expect(cop.offenses.size).to eq(1)
|
19
|
-
expect(cop.messages)
|
20
|
-
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers an offense for raise in def body' do
|
24
|
-
inspect_source(cop,
|
25
|
-
['def test',
|
26
|
-
' raise',
|
27
|
-
'rescue Exception',
|
28
|
-
' #do nothing',
|
29
|
-
'end'])
|
30
|
-
expect(cop.offenses.size).to eq(1)
|
31
|
-
expect(cop.messages)
|
32
|
-
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'registers an offense for fail in rescue section' do
|
36
|
-
inspect_source(cop,
|
37
|
-
['begin',
|
38
|
-
' fail',
|
39
|
-
'rescue Exception',
|
40
|
-
' fail',
|
41
|
-
'end'])
|
42
|
-
expect(cop.offenses.size).to eq(1)
|
43
|
-
expect(cop.messages)
|
44
|
-
.to eq(['Use `raise` instead of `fail` to rethrow exceptions.'])
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'accepts raise in rescue section' do
|
48
|
-
inspect_source(cop,
|
49
|
-
['begin',
|
50
|
-
' fail',
|
51
|
-
'rescue Exception',
|
52
|
-
' raise RuntimeError',
|
53
|
-
'end'])
|
54
|
-
expect(cop.offenses).to be_empty
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'accepts raise in def with multiple rescues' do
|
58
|
-
inspect_source(cop,
|
59
|
-
['def test',
|
60
|
-
' fail',
|
61
|
-
'rescue StandardError',
|
62
|
-
' # handle error',
|
63
|
-
'rescue Exception',
|
64
|
-
' raise',
|
65
|
-
'end'])
|
66
|
-
expect(cop.offenses).to be_empty
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'registers an offense for fail in def rescue section' do
|
70
|
-
inspect_source(cop,
|
71
|
-
['def test',
|
72
|
-
' fail',
|
73
|
-
'rescue Exception',
|
74
|
-
' fail',
|
75
|
-
'end'])
|
76
|
-
expect(cop.offenses.size).to eq(1)
|
77
|
-
expect(cop.messages)
|
78
|
-
.to eq(['Use `raise` instead of `fail` to rethrow exceptions.'])
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'registers an offense for fail in second rescue' do
|
82
|
-
inspect_source(cop,
|
83
|
-
['def test',
|
84
|
-
' fail',
|
85
|
-
'rescue StandardError',
|
86
|
-
' # handle error',
|
87
|
-
'rescue Exception',
|
88
|
-
' fail',
|
89
|
-
'end'])
|
90
|
-
expect(cop.offenses.size).to eq(1)
|
91
|
-
end
|
92
|
-
|
93
|
-
it 'registers only offense for one raise that should be fail' do
|
94
|
-
# This is a special case that has caused double reporting.
|
95
|
-
inspect_source(cop,
|
96
|
-
['map do',
|
97
|
-
" raise 'I'",
|
98
|
-
'end.flatten.compact'])
|
99
|
-
expect(cop.offenses.size).to eq(1)
|
100
|
-
expect(cop.messages)
|
101
|
-
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
102
|
-
end
|
103
|
-
|
104
|
-
it 'accepts raise in def rescue section' do
|
105
|
-
inspect_source(cop,
|
106
|
-
['def test',
|
107
|
-
' fail',
|
108
|
-
'rescue Exception',
|
109
|
-
' raise',
|
110
|
-
'end'])
|
111
|
-
expect(cop.offenses).to be_empty
|
112
|
-
end
|
113
|
-
|
114
|
-
it 'registers an offense for raise not in a begin/rescue/end' do
|
115
|
-
inspect_source(cop,
|
116
|
-
["case cop_config['EnforcedStyle']",
|
117
|
-
"when 'single_quotes' then true",
|
118
|
-
"when 'double_quotes' then false",
|
119
|
-
"else raise 'Unknown StringLiterals style'",
|
120
|
-
'end'])
|
121
|
-
expect(cop.offenses.size).to eq(1)
|
122
|
-
expect(cop.messages)
|
123
|
-
.to eq(['Use `fail` instead of `raise` to signal exceptions.'])
|
124
|
-
end
|
125
|
-
|
126
|
-
it 'registers one offense for each raise' do
|
127
|
-
inspect_source(cop,
|
128
|
-
['cop.stub(:on_def) { raise RuntimeError }',
|
129
|
-
'cop.stub(:on_def) { raise RuntimeError }'])
|
130
|
-
expect(cop.offenses.size).to eq(2)
|
131
|
-
expect(cop.messages)
|
132
|
-
.to eq(['Use `fail` instead of `raise` to signal exceptions.'] * 2)
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'is not confused by nested begin/rescue' do
|
136
|
-
inspect_source(cop,
|
137
|
-
['begin',
|
138
|
-
' raise',
|
139
|
-
' begin',
|
140
|
-
' raise',
|
141
|
-
' rescue',
|
142
|
-
' fail',
|
143
|
-
' end',
|
144
|
-
'rescue Exception',
|
145
|
-
' #do nothing',
|
146
|
-
'end'])
|
147
|
-
expect(cop.offenses.size).to eq(3)
|
148
|
-
expect(cop.messages)
|
149
|
-
.to eq(['Use `fail` instead of `raise` to signal exceptions.'] * 2 +
|
150
|
-
['Use `raise` instead of `fail` to rethrow exceptions.'])
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'auto-corrects raise to fail when appropriate' do
|
154
|
-
new_source = autocorrect_source(cop,
|
155
|
-
['begin',
|
156
|
-
' raise',
|
157
|
-
'rescue Exception',
|
158
|
-
' raise',
|
159
|
-
'end'])
|
160
|
-
expect(new_source).to eq(['begin',
|
161
|
-
' fail',
|
162
|
-
'rescue Exception',
|
163
|
-
' raise',
|
164
|
-
'end'].join("\n"))
|
165
|
-
end
|
166
|
-
|
167
|
-
it 'auto-corrects fail to raise when appropriate' do
|
168
|
-
new_source = autocorrect_source(cop,
|
169
|
-
['begin',
|
170
|
-
' fail',
|
171
|
-
'rescue Exception',
|
172
|
-
' fail',
|
173
|
-
'end'])
|
174
|
-
expect(new_source).to eq(['begin',
|
175
|
-
' fail',
|
176
|
-
'rescue Exception',
|
177
|
-
' raise',
|
178
|
-
'end'].join("\n"))
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
context 'when enforced style is `raise`' do
|
183
|
-
let(:cop_config) { { 'EnforcedStyle' => 'only_raise' } }
|
184
|
-
|
185
|
-
it 'registers an offense for fail in begin section' do
|
186
|
-
inspect_source(cop,
|
187
|
-
['begin',
|
188
|
-
' fail',
|
189
|
-
'rescue Exception',
|
190
|
-
' #do nothing',
|
191
|
-
'end'])
|
192
|
-
expect(cop.offenses.size).to eq(1)
|
193
|
-
expect(cop.messages)
|
194
|
-
.to eq(['Always use `raise` to signal exceptions.'])
|
195
|
-
end
|
196
|
-
|
197
|
-
it 'registers an offense for fail in def body' do
|
198
|
-
inspect_source(cop,
|
199
|
-
['def test',
|
200
|
-
' fail',
|
201
|
-
'rescue Exception',
|
202
|
-
' #do nothing',
|
203
|
-
'end'])
|
204
|
-
expect(cop.offenses.size).to eq(1)
|
205
|
-
expect(cop.messages)
|
206
|
-
.to eq(['Always use `raise` to signal exceptions.'])
|
207
|
-
end
|
208
|
-
|
209
|
-
it 'registers an offense for fail in rescue section' do
|
210
|
-
inspect_source(cop,
|
211
|
-
['begin',
|
212
|
-
' raise',
|
213
|
-
'rescue Exception',
|
214
|
-
' fail',
|
215
|
-
'end'])
|
216
|
-
expect(cop.offenses.size).to eq(1)
|
217
|
-
expect(cop.messages)
|
218
|
-
.to eq(['Always use `raise` to signal exceptions.'])
|
219
|
-
end
|
220
|
-
|
221
|
-
it 'auto-corrects fail to raise always' do
|
222
|
-
new_source = autocorrect_source(cop,
|
223
|
-
['begin',
|
224
|
-
' fail',
|
225
|
-
'rescue Exception',
|
226
|
-
' fail',
|
227
|
-
'end'])
|
228
|
-
expect(new_source).to eq(['begin',
|
229
|
-
' raise',
|
230
|
-
'rescue Exception',
|
231
|
-
' raise',
|
232
|
-
'end'].join("\n"))
|
233
|
-
end
|
234
|
-
end
|
235
|
-
|
236
|
-
context 'when enforced style is `fail`' do
|
237
|
-
let(:cop_config) { { 'EnforcedStyle' => 'only_fail' } }
|
238
|
-
|
239
|
-
it 'registers an offense for raise in begin section' do
|
240
|
-
inspect_source(cop,
|
241
|
-
['begin',
|
242
|
-
' raise',
|
243
|
-
'rescue Exception',
|
244
|
-
' #do nothing',
|
245
|
-
'end'])
|
246
|
-
expect(cop.offenses.size).to eq(1)
|
247
|
-
expect(cop.messages)
|
248
|
-
.to eq(['Always use `fail` to signal exceptions.'])
|
249
|
-
end
|
250
|
-
|
251
|
-
it 'registers an offense for raise in def body' do
|
252
|
-
inspect_source(cop,
|
253
|
-
['def test',
|
254
|
-
' raise',
|
255
|
-
'rescue Exception',
|
256
|
-
' #do nothing',
|
257
|
-
'end'])
|
258
|
-
expect(cop.offenses.size).to eq(1)
|
259
|
-
expect(cop.messages)
|
260
|
-
.to eq(['Always use `fail` to signal exceptions.'])
|
261
|
-
end
|
262
|
-
|
263
|
-
it 'registers an offense for raise in rescue section' do
|
264
|
-
inspect_source(cop,
|
265
|
-
['begin',
|
266
|
-
' fail',
|
267
|
-
'rescue Exception',
|
268
|
-
' raise',
|
269
|
-
'end'])
|
270
|
-
expect(cop.offenses.size).to eq(1)
|
271
|
-
expect(cop.messages)
|
272
|
-
.to eq(['Always use `fail` to signal exceptions.'])
|
273
|
-
end
|
274
|
-
|
275
|
-
it 'auto-corrects raise to fail always' do
|
276
|
-
new_source = autocorrect_source(cop,
|
277
|
-
['begin',
|
278
|
-
' raise',
|
279
|
-
'rescue Exception',
|
280
|
-
' raise',
|
281
|
-
'end'])
|
282
|
-
expect(new_source).to eq(['begin',
|
283
|
-
' fail',
|
284
|
-
'rescue Exception',
|
285
|
-
' fail',
|
286
|
-
'end'].join("\n"))
|
287
|
-
end
|
288
|
-
end
|
289
|
-
end
|