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,42 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::WhenThen do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for when x;' do
|
9
|
-
inspect_source(cop, ['case a',
|
10
|
-
'when b; c',
|
11
|
-
'end'])
|
12
|
-
expect(cop.offenses.size).to eq(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'accepts when x then' do
|
16
|
-
inspect_source(cop, ['case a',
|
17
|
-
'when b then c',
|
18
|
-
'end'])
|
19
|
-
expect(cop.offenses).to be_empty
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'accepts ; separating statements in the body of when' do
|
23
|
-
inspect_source(cop, ['case a',
|
24
|
-
'when b then c; d',
|
25
|
-
'end',
|
26
|
-
'',
|
27
|
-
'case e',
|
28
|
-
'when f',
|
29
|
-
' g; h',
|
30
|
-
'end'])
|
31
|
-
expect(cop.offenses).to be_empty
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'auto-corrects "when x;" with "when x then"' do
|
35
|
-
new_source = autocorrect_source(cop, ['case a',
|
36
|
-
'when b; c',
|
37
|
-
'end'])
|
38
|
-
expect(new_source).to eq(['case a',
|
39
|
-
'when b then c',
|
40
|
-
'end'].join("\n"))
|
41
|
-
end
|
42
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::WhileUntilDo do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for do in multiline while' do
|
9
|
-
inspect_source(cop, ['while cond do',
|
10
|
-
'end'])
|
11
|
-
expect(cop.offenses.size).to eq(1)
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'registers an offense for do in multiline until' do
|
15
|
-
inspect_source(cop, ['until cond do',
|
16
|
-
'end'])
|
17
|
-
expect(cop.offenses.size).to eq(1)
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'accepts do in single-line while' do
|
21
|
-
inspect_source(cop, 'while cond do something end')
|
22
|
-
expect(cop.offenses).to be_empty
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'accepts do in single-line until' do
|
26
|
-
inspect_source(cop, 'until cond do something end')
|
27
|
-
expect(cop.offenses).to be_empty
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'it accepts multi-line while without do' do
|
31
|
-
inspect_source(cop, ['while cond',
|
32
|
-
'end'])
|
33
|
-
expect(cop.offenses).to be_empty
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'it accepts multi-line until without do' do
|
37
|
-
inspect_source(cop, ['until cond',
|
38
|
-
'end'])
|
39
|
-
expect(cop.offenses).to be_empty
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'auto-corrects the usage of "do" in multiline while' do
|
43
|
-
new_source = autocorrect_source(cop, ['while cond do',
|
44
|
-
'end'])
|
45
|
-
expect(new_source).to eq(['while cond',
|
46
|
-
'end'].join("\n"))
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'auto-corrects the usage of "do" in multiline until' do
|
50
|
-
new_source = autocorrect_source(cop, ['until cond do',
|
51
|
-
'end'])
|
52
|
-
expect(new_source).to eq(['until cond',
|
53
|
-
'end'].join("\n"))
|
54
|
-
end
|
55
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::WhileUntilModifier do
|
6
|
-
include StatementModifierHelper
|
7
|
-
|
8
|
-
subject(:cop) { described_class.new(config) }
|
9
|
-
let(:config) do
|
10
|
-
hash = { 'Metrics/LineLength' => { 'Max' => 80 } }
|
11
|
-
RuboCop::Config.new(hash)
|
12
|
-
end
|
13
|
-
|
14
|
-
it "accepts multiline unless that doesn't fit on one line" do
|
15
|
-
check_too_long(cop, 'unless')
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'accepts multiline unless whose body is more than one line' do
|
19
|
-
check_short_multiline(cop, 'unless')
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'registers an offense for multiline while that fits on one line' do
|
23
|
-
check_really_short(cop, 'while')
|
24
|
-
end
|
25
|
-
|
26
|
-
it "accepts multiline while that doesn't fit on one line" do
|
27
|
-
check_too_long(cop, 'while')
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'accepts multiline while whose body is more than one line' do
|
31
|
-
check_short_multiline(cop, 'while')
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'accepts oneline while when condition has local variable assignment' do
|
35
|
-
inspect_source(cop, ['lines = %w{first second third}',
|
36
|
-
'while (line = lines.shift)',
|
37
|
-
' puts line',
|
38
|
-
'end'])
|
39
|
-
expect(cop.offenses).to be_empty
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'registers an offense for oneline while when assignment is in body' do
|
43
|
-
inspect_source(cop, ['while true',
|
44
|
-
' x = 0',
|
45
|
-
'end'])
|
46
|
-
expect(cop.offenses.size).to eq(1)
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'registers an offense for multiline until that fits on one line' do
|
50
|
-
check_really_short(cop, 'until')
|
51
|
-
end
|
52
|
-
|
53
|
-
it "accepts multiline until that doesn't fit on one line" do
|
54
|
-
check_too_long(cop, 'until')
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'accepts multiline until whose body is more than one line' do
|
58
|
-
check_short_multiline(cop, 'until')
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'accepts an empty condition' do
|
62
|
-
check_empty(cop, 'while')
|
63
|
-
check_empty(cop, 'until')
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'accepts modifier while' do
|
67
|
-
inspect_source(cop, 'ala while bala')
|
68
|
-
expect(cop.offenses).to be_empty
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'accepts modifier until' do
|
72
|
-
inspect_source(cop, 'ala until bala')
|
73
|
-
expect(cop.offenses).to be_empty
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'when the maximum line length is specified by the cop itself' do
|
77
|
-
let(:config) do
|
78
|
-
hash = {
|
79
|
-
'Metrics/LineLength' => { 'Max' => 100 },
|
80
|
-
'Style/WhileUntilModifier' => { 'MaxLineLength' => 80 }
|
81
|
-
}
|
82
|
-
RuboCop::Config.new(hash)
|
83
|
-
end
|
84
|
-
|
85
|
-
it "accepts multiline while that doesn't fit on one line" do
|
86
|
-
check_too_long(cop, 'while')
|
87
|
-
end
|
88
|
-
|
89
|
-
it "accepts multiline until that doesn't fit on one line" do
|
90
|
-
check_too_long(cop, 'until')
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
@@ -1,117 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::WordArray, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) { { 'MinSize' => 0, 'WordRegex' => /\A[\p{Word}]+\z/ } }
|
8
|
-
|
9
|
-
it 'registers an offense for arrays of single quoted strings' do
|
10
|
-
inspect_source(cop,
|
11
|
-
"['one', 'two', 'three']")
|
12
|
-
expect(cop.offenses.size).to eq(1)
|
13
|
-
expect(cop.config_to_allow_offenses).to eq('MinSize' => 3)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'registers an offense for arrays of double quoted strings' do
|
17
|
-
inspect_source(cop,
|
18
|
-
'["one", "two", "three"]')
|
19
|
-
expect(cop.offenses.size).to eq(1)
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'registers an offense for arrays of unicode word characters' do
|
23
|
-
inspect_source(cop,
|
24
|
-
'["ВУЗ", "вуз", "中文网"]')
|
25
|
-
expect(cop.offenses.size).to eq(1)
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'registers an offense for arrays with character constants' do
|
29
|
-
inspect_source(cop,
|
30
|
-
'["one", ?\n]')
|
31
|
-
expect(cop.offenses.size).to eq(1)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'does not register an offense for array of non-words' do
|
35
|
-
inspect_source(cop,
|
36
|
-
'["one space", "two", "three"]')
|
37
|
-
expect(cop.offenses).to be_empty
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'does not register an offense for array containing non-string' do
|
41
|
-
inspect_source(cop,
|
42
|
-
'["one", "two", 3]')
|
43
|
-
expect(cop.offenses).to be_empty
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'does not register an offense for array starting with %w' do
|
47
|
-
inspect_source(cop,
|
48
|
-
'%w(one two three)')
|
49
|
-
expect(cop.offenses).to be_empty
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'does not register an offense for array with one element' do
|
53
|
-
inspect_source(cop,
|
54
|
-
'["three"]')
|
55
|
-
expect(cop.offenses).to be_empty
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'does not register an offense for array with empty strings' do
|
59
|
-
inspect_source(cop,
|
60
|
-
'["", "two", "three"]')
|
61
|
-
expect(cop.offenses).to be_empty
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'does not register an offense for array with allowed number of strings' do
|
65
|
-
cop_config['MinSize'] = 3
|
66
|
-
|
67
|
-
inspect_source(cop,
|
68
|
-
'["one", "two", "three"]')
|
69
|
-
expect(cop.offenses).to be_empty
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'does not register an offense for an array with comments in it' do
|
73
|
-
inspect_source(cop,
|
74
|
-
['[',
|
75
|
-
'"foo", # comment here',
|
76
|
-
'"bar", # this thing was done because of a bug',
|
77
|
-
'"baz" # do not delete this line',
|
78
|
-
']'])
|
79
|
-
|
80
|
-
expect(cop.offenses).to be_empty
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'registers an offense for an array with comments outside of it' do
|
84
|
-
inspect_source(cop,
|
85
|
-
['[',
|
86
|
-
'"foo",',
|
87
|
-
'"bar",',
|
88
|
-
'"baz"',
|
89
|
-
'] # test'])
|
90
|
-
|
91
|
-
expect(cop.offenses.size).to eq(1)
|
92
|
-
end
|
93
|
-
|
94
|
-
it 'auto-corrects an array of words' do
|
95
|
-
new_source = autocorrect_source(cop, "['one', %q(two), 'three']")
|
96
|
-
expect(new_source).to eq('%w(one two three)')
|
97
|
-
end
|
98
|
-
|
99
|
-
it 'auto-corrects an array of words and character constants' do
|
100
|
-
new_source = autocorrect_source(cop, '[%{one}, %Q(two), ?\n, ?\t]')
|
101
|
-
expect(new_source).to eq('%W(one two \n \t)')
|
102
|
-
end
|
103
|
-
|
104
|
-
context 'with a custom WordRegex configuration' do
|
105
|
-
let(:cop_config) { { 'MinSize' => 0, 'WordRegex' => /\A[\w@.]+\z/ } }
|
106
|
-
|
107
|
-
it 'registers an offense for arrays of email addresses' do
|
108
|
-
inspect_source(cop, "['a@example.com', 'b@example.com']")
|
109
|
-
expect(cop.offenses.size).to eq(1)
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'auto-corrects an array of email addresses' do
|
113
|
-
new_source = autocorrect_source(cop, "['a@example.com', 'b@example.com']")
|
114
|
-
expect(new_source).to eq('%w(a@example.com b@example.com)')
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
@@ -1,190 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Team do
|
6
|
-
subject(:team) { described_class.new(cop_classes, config, options) }
|
7
|
-
let(:cop_classes) { RuboCop::Cop::Cop.non_rails }
|
8
|
-
let(:config) { RuboCop::ConfigLoader.default_configuration }
|
9
|
-
let(:options) { nil }
|
10
|
-
|
11
|
-
describe '#autocorrect?' do
|
12
|
-
subject { team.autocorrect? }
|
13
|
-
|
14
|
-
context 'when the option argument of .new is omitted' do
|
15
|
-
subject { described_class.new(cop_classes, config).autocorrect? }
|
16
|
-
it { should be_falsey }
|
17
|
-
end
|
18
|
-
|
19
|
-
context 'when { auto_correct: true } is passed to .new' do
|
20
|
-
let(:options) { { auto_correct: true } }
|
21
|
-
it { should be_truthy }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe '#debug?' do
|
26
|
-
subject { team.debug? }
|
27
|
-
|
28
|
-
context 'when the option argument of .new is omitted' do
|
29
|
-
subject { described_class.new(cop_classes, config).debug? }
|
30
|
-
it { should be_falsey }
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'when { debug: true } is passed to .new' do
|
34
|
-
let(:options) { { debug: true } }
|
35
|
-
it { should be_truthy }
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe '#inspect_file', :isolated_environment do
|
40
|
-
include FileHelper
|
41
|
-
|
42
|
-
let(:file_path) { '/tmp/example.rb' }
|
43
|
-
let(:offenses) do
|
44
|
-
team.inspect_file(RuboCop::ProcessedSource.from_file(file_path))
|
45
|
-
end
|
46
|
-
|
47
|
-
before do
|
48
|
-
create_file(file_path, [
|
49
|
-
'#' * 90,
|
50
|
-
'puts test;'
|
51
|
-
])
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'returns offenses' do
|
55
|
-
expect(offenses).not_to be_empty
|
56
|
-
expect(offenses.all? { |o| o.is_a?(RuboCop::Cop::Offense) }).to be_truthy
|
57
|
-
end
|
58
|
-
|
59
|
-
context 'when Parser reports non-fatal warning for the file' do
|
60
|
-
before do
|
61
|
-
create_file(file_path, [
|
62
|
-
'# encoding: utf-8',
|
63
|
-
'#' * 90,
|
64
|
-
'puts *test'
|
65
|
-
])
|
66
|
-
end
|
67
|
-
|
68
|
-
let(:cop_names) { offenses.map(&:cop_name) }
|
69
|
-
|
70
|
-
it 'returns Parser warning offenses' do
|
71
|
-
expect(cop_names).to include('Lint/AmbiguousOperator')
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'returns offenses from cops' do
|
75
|
-
expect(cop_names).to include('Metrics/LineLength')
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
context 'when autocorrection is enabled' do
|
80
|
-
let(:options) { { auto_correct: true } }
|
81
|
-
|
82
|
-
before do
|
83
|
-
create_file(file_path, [
|
84
|
-
'# encoding: utf-8',
|
85
|
-
'puts "string"'
|
86
|
-
])
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'does autocorrection' do
|
90
|
-
team.inspect_file(RuboCop::ProcessedSource.from_file(file_path))
|
91
|
-
corrected_source = File.read(file_path)
|
92
|
-
expect(corrected_source).to eq([
|
93
|
-
'# encoding: utf-8',
|
94
|
-
"puts 'string'",
|
95
|
-
''
|
96
|
-
].join("\n"))
|
97
|
-
end
|
98
|
-
|
99
|
-
it 'still returns offenses' do
|
100
|
-
expect(offenses.first.cop_name).to eq('Style/StringLiterals')
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
describe '#cops' do
|
106
|
-
subject(:cops) { team.cops }
|
107
|
-
|
108
|
-
it 'returns cop instances' do
|
109
|
-
expect(cops).not_to be_empty
|
110
|
-
expect(cops.all? { |c| c.is_a?(RuboCop::Cop::Cop) }).to be_truthy
|
111
|
-
end
|
112
|
-
|
113
|
-
context 'when only some cop classes are passed to .new' do
|
114
|
-
let(:cop_classes) do
|
115
|
-
[RuboCop::Cop::Lint::Void, RuboCop::Cop::Metrics::LineLength]
|
116
|
-
end
|
117
|
-
|
118
|
-
it 'returns only instances of the classes' do
|
119
|
-
expect(cops.size).to eq(2)
|
120
|
-
cops.sort! { |a, b| a.name <=> b.name }
|
121
|
-
expect(cops[0].name).to eq('Lint/Void')
|
122
|
-
expect(cops[1].name).to eq('Metrics/LineLength')
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
context 'when some classes are disabled with config' do
|
127
|
-
let(:disabled_config) do
|
128
|
-
%w(
|
129
|
-
Lint/Void
|
130
|
-
Metrics/LineLength
|
131
|
-
).each_with_object({}) do |cop_name, accum|
|
132
|
-
accum[cop_name] = { 'Enabled' => false }
|
133
|
-
end
|
134
|
-
end
|
135
|
-
let(:config) do
|
136
|
-
RuboCop::ConfigLoader.merge_with_default(disabled_config, '')
|
137
|
-
end
|
138
|
-
let(:cop_names) { cops.map(&:name) }
|
139
|
-
|
140
|
-
it 'does not return instances of the classes' do
|
141
|
-
expect(cops).not_to be_empty
|
142
|
-
expect(cop_names).not_to include('Lint/Void')
|
143
|
-
expect(cop_names).not_to include('Metrics/LineLength')
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
describe '#forces' do
|
149
|
-
subject(:forces) { team.forces }
|
150
|
-
let(:cop_classes) { RuboCop::Cop::Cop.non_rails }
|
151
|
-
|
152
|
-
it 'returns force instances' do
|
153
|
-
expect(forces).not_to be_empty
|
154
|
-
|
155
|
-
forces.each do |force|
|
156
|
-
expect(force).to be_a(RuboCop::Cop::Force)
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
context 'when a cop joined a force' do
|
161
|
-
let(:cop_classes) { [RuboCop::Cop::Lint::UselessAssignment] }
|
162
|
-
|
163
|
-
it 'returns the force' do
|
164
|
-
expect(forces.size).to eq(1)
|
165
|
-
expect(forces.first).to be_a(RuboCop::Cop::VariableForce)
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
context 'when multiple cops joined a same force' do
|
170
|
-
let(:cop_classes) do
|
171
|
-
[
|
172
|
-
RuboCop::Cop::Lint::UselessAssignment,
|
173
|
-
RuboCop::Cop::Lint::ShadowingOuterLocalVariable
|
174
|
-
]
|
175
|
-
end
|
176
|
-
|
177
|
-
it 'returns only one force instance' do
|
178
|
-
expect(forces.size).to eq(1)
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
context 'when no cops joined force' do
|
183
|
-
let(:cop_classes) { [RuboCop::Cop::Style::For] }
|
184
|
-
|
185
|
-
it 'returns nothing' do
|
186
|
-
expect(forces).to be_empty
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|