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,30 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UselessComparison do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
described_class::OPS.each do |op|
|
9
|
-
it "registers an offense for a simple comparison with #{op}" do
|
10
|
-
inspect_source(cop,
|
11
|
-
["5 #{op} 5",
|
12
|
-
"a #{op} a"
|
13
|
-
])
|
14
|
-
expect(cop.offenses.size).to eq(2)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "registers an offense for a complex comparison with #{op}" do
|
18
|
-
inspect_source(cop,
|
19
|
-
["5 + 10 * 30 #{op} 5 + 10 * 30",
|
20
|
-
"a.top(x) #{op} a.top(x)"
|
21
|
-
])
|
22
|
-
expect(cop.offenses.size).to eq(2)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'works with lambda.()' do
|
27
|
-
inspect_source(cop, 'a.(x) > a.(x)')
|
28
|
-
expect(cop.offenses.size).to eq(1)
|
29
|
-
end
|
30
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UselessElseWithoutRescue do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
before do
|
9
|
-
inspect_source(cop, source)
|
10
|
-
end
|
11
|
-
|
12
|
-
context 'with `else` without `rescue`' do
|
13
|
-
let(:source) do
|
14
|
-
[
|
15
|
-
'begin',
|
16
|
-
' do_something',
|
17
|
-
'else',
|
18
|
-
' handle_unknown_errors',
|
19
|
-
'end'
|
20
|
-
]
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers an offense' do
|
24
|
-
expect(cop.offenses.size).to eq(1)
|
25
|
-
expect(cop.offenses.first.message)
|
26
|
-
.to eq('`else` without `rescue` is useless.')
|
27
|
-
expect(cop.highlights).to eq(['else'])
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
context 'with `else` with `rescue`' do
|
32
|
-
let(:source) do
|
33
|
-
[
|
34
|
-
'begin',
|
35
|
-
' do_something',
|
36
|
-
'rescue ArgumentError',
|
37
|
-
' handle_argument_error',
|
38
|
-
'else',
|
39
|
-
' handle_unknown_errors',
|
40
|
-
'end'
|
41
|
-
]
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'accepts' do
|
45
|
-
expect(cop.offenses).to be_empty
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,211 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::UselessSetterCall do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
context 'with method ending with setter call on local object' do
|
9
|
-
it 'registers an offense' do
|
10
|
-
inspect_source(cop,
|
11
|
-
['def test',
|
12
|
-
' top = Top.new',
|
13
|
-
' top.attr = 5',
|
14
|
-
'end'
|
15
|
-
])
|
16
|
-
expect(cop.offenses.size).to eq(1)
|
17
|
-
expect(cop.messages)
|
18
|
-
.to eq(['Useless setter call to local variable `top`.'])
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
context 'with singleton method ending with setter call on local object' do
|
23
|
-
it 'registers an offense' do
|
24
|
-
inspect_source(cop,
|
25
|
-
['def Top.test',
|
26
|
-
' top = Top.new',
|
27
|
-
' top.attr = 5',
|
28
|
-
'end'
|
29
|
-
])
|
30
|
-
expect(cop.offenses.size).to eq(1)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context 'with method ending with square bracket setter on local object' do
|
35
|
-
it 'registers an offense' do
|
36
|
-
inspect_source(cop,
|
37
|
-
['def test',
|
38
|
-
' top = Top.new',
|
39
|
-
' top[:attr] = 5',
|
40
|
-
'end'
|
41
|
-
])
|
42
|
-
expect(cop.offenses.size).to eq(1)
|
43
|
-
expect(cop.messages)
|
44
|
-
.to eq(['Useless setter call to local variable `top`.'])
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context 'with method ending with ivar assignment' do
|
49
|
-
it 'accepts' do
|
50
|
-
inspect_source(cop,
|
51
|
-
['def test',
|
52
|
-
' something',
|
53
|
-
' @top = 5',
|
54
|
-
'end'
|
55
|
-
])
|
56
|
-
expect(cop.offenses).to be_empty
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context 'with method ending with setter call on ivar' do
|
61
|
-
it 'accepts' do
|
62
|
-
inspect_source(cop,
|
63
|
-
['def test',
|
64
|
-
' something',
|
65
|
-
' @top.attr = 5',
|
66
|
-
'end'
|
67
|
-
])
|
68
|
-
expect(cop.offenses).to be_empty
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'with method ending with setter call on argument' do
|
73
|
-
it 'accepts' do
|
74
|
-
inspect_source(cop,
|
75
|
-
['def test(some_arg)',
|
76
|
-
' unrelated_local_variable = Top.new',
|
77
|
-
' some_arg.attr = 5',
|
78
|
-
'end'
|
79
|
-
])
|
80
|
-
expect(cop.offenses).to be_empty
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context 'when a lvar contains an object passed as argument ' \
|
85
|
-
'at the end of the method' do
|
86
|
-
it 'accepts the setter call on the lvar' do
|
87
|
-
inspect_source(cop,
|
88
|
-
['def test(some_arg)',
|
89
|
-
' @some_ivar = some_arg',
|
90
|
-
' @some_ivar.do_something',
|
91
|
-
' some_lvar = @some_ivar',
|
92
|
-
' some_lvar.do_something',
|
93
|
-
' some_lvar.attr = 5',
|
94
|
-
'end'
|
95
|
-
])
|
96
|
-
expect(cop.offenses).to be_empty
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
context 'when a lvar contains an object passed as argument ' \
|
101
|
-
'by multiple-assignment at the end of the method' do
|
102
|
-
it 'accepts the setter call on the lvar' do
|
103
|
-
inspect_source(cop,
|
104
|
-
['def test(some_arg)',
|
105
|
-
' _first, some_lvar, _third = 1, some_arg, 3',
|
106
|
-
' some_lvar.attr = 5',
|
107
|
-
'end'
|
108
|
-
])
|
109
|
-
expect(cop.offenses).to be_empty
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
context 'when a lvar does not contain any object passed as argument ' \
|
114
|
-
'with multiple-assignment at the end of the method' do
|
115
|
-
it 'registers an offense' do
|
116
|
-
inspect_source(cop,
|
117
|
-
['def test(some_arg)',
|
118
|
-
' _first, some_lvar, _third = do_something',
|
119
|
-
' some_lvar.attr = 5',
|
120
|
-
'end'
|
121
|
-
])
|
122
|
-
expect(cop.offenses.size).to eq(1)
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
context 'when a lvar possibly contains an object passed as argument ' \
|
127
|
-
'by logical-operator-assignment at the end of the method' do
|
128
|
-
it 'accepts the setter call on the lvar' do
|
129
|
-
inspect_source(cop,
|
130
|
-
['def test(some_arg)',
|
131
|
-
' some_lvar = nil',
|
132
|
-
' some_lvar ||= some_arg',
|
133
|
-
' some_lvar.attr = 5',
|
134
|
-
'end'
|
135
|
-
])
|
136
|
-
expect(cop.offenses).to be_empty
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
context 'when a lvar does not contain any object passed as argument ' \
|
141
|
-
'by binary-operator-assignment at the end of the method' do
|
142
|
-
it 'registers an offense' do
|
143
|
-
inspect_source(cop,
|
144
|
-
['def test(some_arg)',
|
145
|
-
' some_lvar = some_arg',
|
146
|
-
' some_lvar += some_arg',
|
147
|
-
' some_lvar.attr = 5',
|
148
|
-
'end'
|
149
|
-
])
|
150
|
-
expect(cop.offenses.size).to eq(1)
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
context 'when a lvar declared as an argument ' \
|
155
|
-
'is no longer the passed object at the end of the method' do
|
156
|
-
it 'registers an offense for the setter call on the lvar' do
|
157
|
-
inspect_source(cop,
|
158
|
-
['def test(some_arg)',
|
159
|
-
' some_arg = Top.new',
|
160
|
-
' some_arg.attr = 5',
|
161
|
-
'end'
|
162
|
-
])
|
163
|
-
expect(cop.offenses.size).to eq(1)
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
context 'when a lvar contains a local object instantiated with literal' do
|
168
|
-
it 'registers an offense for the setter call on the lvar' do
|
169
|
-
inspect_source(cop,
|
170
|
-
['def test',
|
171
|
-
' some_arg = {}',
|
172
|
-
' some_arg[:attr] = 1',
|
173
|
-
'end'
|
174
|
-
])
|
175
|
-
expect(cop.offenses.size).to eq(1)
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
179
|
-
context 'when a lvar contains a non-local object returned by a method' do
|
180
|
-
it 'accepts' do
|
181
|
-
inspect_source(cop,
|
182
|
-
['def test',
|
183
|
-
' some_lvar = Foo.shared_object',
|
184
|
-
' some_lvar[:attr] = 1',
|
185
|
-
'end'
|
186
|
-
])
|
187
|
-
expect(cop.offenses).to be_empty
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
it 'is not confused by operators ending with =' do
|
192
|
-
inspect_source(cop,
|
193
|
-
['def test',
|
194
|
-
' top.attr == 5',
|
195
|
-
'end'
|
196
|
-
])
|
197
|
-
expect(cop.offenses).to be_empty
|
198
|
-
end
|
199
|
-
|
200
|
-
it 'handles exception assignments without exploding' do
|
201
|
-
inspect_source(cop,
|
202
|
-
['def foo(bar)',
|
203
|
-
' begin',
|
204
|
-
' rescue StandardError => _',
|
205
|
-
' end',
|
206
|
-
' bar[:baz] = true',
|
207
|
-
'end'
|
208
|
-
])
|
209
|
-
expect(cop.offenses).to be_empty
|
210
|
-
end
|
211
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Lint::Void do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
described_class::OPS.each do |op|
|
9
|
-
it "registers an offense for void op #{op} if not on last line" do
|
10
|
-
inspect_source(cop,
|
11
|
-
["a #{op} b",
|
12
|
-
"a #{op} b",
|
13
|
-
"a #{op} b"
|
14
|
-
])
|
15
|
-
expect(cop.offenses.size).to eq(2)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
described_class::OPS.each do |op|
|
20
|
-
it "accepts void op #{op} if on last line" do
|
21
|
-
inspect_source(cop,
|
22
|
-
['something',
|
23
|
-
"a #{op} b"
|
24
|
-
])
|
25
|
-
expect(cop.offenses).to be_empty
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
described_class::OPS.each do |op|
|
30
|
-
it "accepts void op #{op} by itself without a begin block" do
|
31
|
-
inspect_source(cop, "a #{op} b")
|
32
|
-
expect(cop.offenses).to be_empty
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
%w(var @var @@var VAR).each do |var|
|
37
|
-
it "registers an offense for void var #{var} if not on last line" do
|
38
|
-
inspect_source(cop,
|
39
|
-
["#{var} = 5",
|
40
|
-
"#{var}",
|
41
|
-
'top'
|
42
|
-
])
|
43
|
-
expect(cop.offenses.size).to eq(1)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
%w(1 2.0 /test/ [1] {}).each do |lit|
|
48
|
-
it "registers an offense for void lit #{lit} if not on last line" do
|
49
|
-
inspect_source(cop,
|
50
|
-
["#{lit}",
|
51
|
-
'top'
|
52
|
-
])
|
53
|
-
expect(cop.offenses.size).to eq(1)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'accepts short call syntax' do
|
58
|
-
inspect_source(cop,
|
59
|
-
['lambda.(a)',
|
60
|
-
'top'
|
61
|
-
])
|
62
|
-
expect(cop.offenses).to be_empty
|
63
|
-
end
|
64
|
-
end
|
@@ -1,109 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Metrics::AbcSize, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
context 'when Max is 0' do
|
9
|
-
let(:cop_config) { { 'Max' => 0 } }
|
10
|
-
|
11
|
-
it 'accepts an empty method' do
|
12
|
-
inspect_source(cop, ['def method_name',
|
13
|
-
'end'])
|
14
|
-
expect(cop.offenses).to be_empty
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'registers an offense for an if modifier' do
|
18
|
-
inspect_source(cop, ['def method_name',
|
19
|
-
' call_foo if some_condition', # 0 + 2*2 + 1*1
|
20
|
-
'end'])
|
21
|
-
expect(cop.messages)
|
22
|
-
.to eq(['Assignment Branch Condition size for method_name is too ' \
|
23
|
-
'high. [2.24/0]'])
|
24
|
-
expect(cop.highlights).to eq(['def'])
|
25
|
-
expect(cop.config_to_allow_offenses).to eq('Max' => 3)
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'registers an offense for an assignment of a local variable' do
|
29
|
-
inspect_source(cop, ['def method_name',
|
30
|
-
' x = 1',
|
31
|
-
'end'])
|
32
|
-
expect(cop.messages)
|
33
|
-
.to eq(['Assignment Branch Condition size for method_name is too ' \
|
34
|
-
'high. [1/0]'])
|
35
|
-
expect(cop.config_to_allow_offenses).to eq('Max' => 1)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'registers an offense for an assignment of an element' do
|
39
|
-
inspect_source(cop, ['def method_name',
|
40
|
-
' x[0] = 1',
|
41
|
-
'end'])
|
42
|
-
expect(cop.messages)
|
43
|
-
.to eq(['Assignment Branch Condition size for method_name is too ' \
|
44
|
-
'high. [2/0]'])
|
45
|
-
expect(cop.config_to_allow_offenses).to eq('Max' => 2)
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'registers an offense for complex content including A, B, and C ' \
|
49
|
-
'scores' do
|
50
|
-
inspect_source(cop,
|
51
|
-
['def method_name',
|
52
|
-
' my_options = Hash.new if 1 == 1 || 2 == 2', # 1, 3, 2
|
53
|
-
' my_options.each do |key, value|', # 0, 1, 0
|
54
|
-
' p key', # 0, 1, 0
|
55
|
-
' p value', # 0, 1, 0
|
56
|
-
' end',
|
57
|
-
'end'])
|
58
|
-
expect(cop.messages)
|
59
|
-
.to eq(['Assignment Branch Condition size for method_name is too ' \
|
60
|
-
'high. [6.4/0]']) # square root of 1*1 + 5*5 + 2*2 => 6.4
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context 'when Max is 2' do
|
65
|
-
let(:cop_config) { { 'Max' => 2 } }
|
66
|
-
|
67
|
-
it 'accepts two assignments' do
|
68
|
-
inspect_source(cop, ['def method_name',
|
69
|
-
' x = 1',
|
70
|
-
' y = 2',
|
71
|
-
'end'])
|
72
|
-
expect(cop.offenses).to be_empty
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'when Max is 1.8' do
|
77
|
-
let(:cop_config) { { 'Max' => 1.8 } }
|
78
|
-
|
79
|
-
it 'accepts a total score of 1.7' do
|
80
|
-
inspect_source(cop, ['def method_name',
|
81
|
-
' y = 1 if y == 1',
|
82
|
-
'end'])
|
83
|
-
expect(cop.offenses).to be_empty
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
{
|
88
|
-
1.3 => '3.74/1.3', # no more than 2 decimals reported
|
89
|
-
10.3 => '37.42/10.3',
|
90
|
-
100.321 => '374.2/100.3', # 4 significant digits, so only 1 decimal here
|
91
|
-
1000.3 => '3742/1000'
|
92
|
-
}.each do |max, presentation|
|
93
|
-
context "when Max is #{max}" do
|
94
|
-
let(:cop_config) { { 'Max' => max } }
|
95
|
-
|
96
|
-
it "reports size and max as #{presentation}" do
|
97
|
-
# Build an amount of code large enough to register an offense.
|
98
|
-
code = [' x = Hash.new if 1 == 1 || 2 == 2'] * max
|
99
|
-
|
100
|
-
inspect_source(cop, ['def method_name',
|
101
|
-
*code,
|
102
|
-
'end'])
|
103
|
-
expect(cop.messages)
|
104
|
-
.to eq(['Assignment Branch Condition size for method_name is too ' \
|
105
|
-
"high. [#{presentation}]"])
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|