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,55 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module RuboCop
|
6
|
-
module Formatter
|
7
|
-
describe TextUtil do
|
8
|
-
subject(:text_util) { RuboCop::Formatter::TextUtil }
|
9
|
-
|
10
|
-
describe 'pluralize' do
|
11
|
-
it 'will not change 0 to no' do
|
12
|
-
pluralized_text = text_util.pluralize(0, 'file')
|
13
|
-
|
14
|
-
expect(pluralized_text).to eq('0 files')
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'will change 0 to no when configured' do
|
18
|
-
pluralized_text = text_util.pluralize(0, 'file', no_for_zero: true)
|
19
|
-
|
20
|
-
expect(pluralized_text).to eq('no files')
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'will not pluralize 1' do
|
24
|
-
pluralized_text = text_util.pluralize(1, 'file')
|
25
|
-
|
26
|
-
expect(pluralized_text).to eq('1 file')
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'will pluralize quantities greater than 1' do
|
30
|
-
pluralized_text = text_util.pluralize(3, 'file')
|
31
|
-
|
32
|
-
expect(pluralized_text).to eq('3 files')
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'will pluralize fractions' do
|
36
|
-
pluralized_text = text_util.pluralize(0.5, 'file')
|
37
|
-
|
38
|
-
expect(pluralized_text).to eq('0.5 files')
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'will pluralize -1' do
|
42
|
-
pluralized_text = text_util.pluralize(-1, 'file')
|
43
|
-
|
44
|
-
expect(pluralized_text).to eq('-1 files')
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'will pluralize negative quantities less than -1' do
|
48
|
-
pluralized_text = text_util.pluralize(-2, 'file')
|
49
|
-
|
50
|
-
expect(pluralized_text).to eq('-2 files')
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,181 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Options, :isolated_environment do
|
6
|
-
include FileHelper
|
7
|
-
|
8
|
-
subject(:options) { described_class.new }
|
9
|
-
|
10
|
-
before(:each) do
|
11
|
-
$stdout = StringIO.new
|
12
|
-
$stderr = StringIO.new
|
13
|
-
end
|
14
|
-
|
15
|
-
after(:each) do
|
16
|
-
$stdout = STDOUT
|
17
|
-
$stderr = STDERR
|
18
|
-
end
|
19
|
-
|
20
|
-
def abs(path)
|
21
|
-
File.expand_path(path)
|
22
|
-
end
|
23
|
-
|
24
|
-
describe 'option' do
|
25
|
-
describe '-h/--help' do
|
26
|
-
it 'exits cleanly' do
|
27
|
-
expect { options.parse ['-h'] }.to exit_with_code(0)
|
28
|
-
expect { options.parse ['--help'] }.to exit_with_code(0)
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'shows help text' do
|
32
|
-
begin
|
33
|
-
options.parse(['--help'])
|
34
|
-
rescue SystemExit # rubocop:disable Lint/HandleExceptions
|
35
|
-
end
|
36
|
-
|
37
|
-
expected_help = <<-END
|
38
|
-
Usage: rubocop [options] [file1, file2, ...]
|
39
|
-
--except [COP1,COP2,...] Disable the given cop(s).
|
40
|
-
--only [COP1,COP2,...] Run only the given cop(s).
|
41
|
-
--only-guide-cops Run only cops for rules that link to a
|
42
|
-
style guide.
|
43
|
-
-c, --config FILE Specify configuration file.
|
44
|
-
--auto-gen-config Generate a configuration file acting as a
|
45
|
-
TODO list.
|
46
|
-
--force-exclusion Force excluding files specified in the
|
47
|
-
configuration `Exclude` even if they are
|
48
|
-
explicitly passed as arguments.
|
49
|
-
-f, --format FORMATTER Choose an output formatter. This option
|
50
|
-
can be specified multiple times to enable
|
51
|
-
multiple formatters at the same time.
|
52
|
-
[p]rogress (default)
|
53
|
-
[s]imple
|
54
|
-
[c]lang
|
55
|
-
[d]isabled cops via inline comments
|
56
|
-
[fu]ubar
|
57
|
-
[e]macs
|
58
|
-
[j]son
|
59
|
-
[h]tml
|
60
|
-
[fi]les
|
61
|
-
[o]ffenses
|
62
|
-
custom formatter class name
|
63
|
-
-o, --out FILE Write output to a file instead of STDOUT.
|
64
|
-
This option applies to the previously
|
65
|
-
specified --format, or the default format
|
66
|
-
if no format is specified.
|
67
|
-
-r, --require FILE Require Ruby file.
|
68
|
-
--fail-level SEVERITY Minimum severity (A/R/C/W/E/F) for exit
|
69
|
-
with error code.
|
70
|
-
--show-cops [COP1,COP2,...] Shows the given cops, or all cops by
|
71
|
-
default, and their configurations for the
|
72
|
-
current directory.
|
73
|
-
-F, --fail-fast Inspect files in order of modification
|
74
|
-
time and stop after the first file
|
75
|
-
containing offenses.
|
76
|
-
-d, --debug Display debug info.
|
77
|
-
-D, --display-cop-names Display cop names in offense messages.
|
78
|
-
-R, --rails Run extra Rails cops.
|
79
|
-
-l, --lint Run only lint cops.
|
80
|
-
-a, --auto-correct Auto-correct offenses.
|
81
|
-
-n, --no-color Disable color output.
|
82
|
-
-v, --version Display version.
|
83
|
-
-V, --verbose-version Display verbose version.
|
84
|
-
END
|
85
|
-
|
86
|
-
expect($stdout.string).to eq(expected_help)
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'lists all builtin formatters' do
|
90
|
-
begin
|
91
|
-
options.parse(['--help'])
|
92
|
-
rescue SystemExit # rubocop:disable Lint/HandleExceptions
|
93
|
-
end
|
94
|
-
|
95
|
-
option_sections = $stdout.string.lines.slice_before(/^\s*-/)
|
96
|
-
|
97
|
-
format_section = option_sections.find do |lines|
|
98
|
-
lines.first =~ /^\s*-f/
|
99
|
-
end
|
100
|
-
|
101
|
-
formatter_keys = format_section.reduce([]) do |keys, line|
|
102
|
-
match = line.match(/^[ ]{39}(\[[a-z\]]+)/)
|
103
|
-
next keys unless match
|
104
|
-
keys << match.captures.first.gsub(/\[|\]/, '')
|
105
|
-
end.sort
|
106
|
-
|
107
|
-
expected_formatter_keys =
|
108
|
-
RuboCop::Formatter::FormatterSet::BUILTIN_FORMATTERS_FOR_KEYS
|
109
|
-
.keys.sort
|
110
|
-
|
111
|
-
expect(formatter_keys).to eq(expected_formatter_keys)
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
describe 'incompatible cli options' do
|
116
|
-
it 'fails with argument correct error' do
|
117
|
-
msg = 'Incompatible cli options: [:version, :verbose_version]'
|
118
|
-
expect { options.parse %w(-vV) }
|
119
|
-
.to raise_error(ArgumentError, msg)
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'fails with argument correct error' do
|
123
|
-
msg = 'Incompatible cli options: [:version, :show_cops]'
|
124
|
-
expect { options.parse %w(-v --show-cops) }
|
125
|
-
.to raise_error(ArgumentError, msg)
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'fails with argument correct error' do
|
129
|
-
msg = 'Incompatible cli options: [:verbose_version, :show_cops]'
|
130
|
-
expect { options.parse %w(-V --show-cops) }
|
131
|
-
.to raise_error(ArgumentError, msg)
|
132
|
-
end
|
133
|
-
|
134
|
-
it 'fails with argument correct error' do
|
135
|
-
msg = ['Incompatible cli options: [:version, :verbose_version,',
|
136
|
-
' :show_cops]'].join
|
137
|
-
expect { options.parse %w(-vV --show-cops) }
|
138
|
-
.to raise_error(ArgumentError, msg)
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
describe '--fail-level' do
|
143
|
-
it 'accepts full severity names' do
|
144
|
-
%w(refactor convention warning error fatal).each do |severity|
|
145
|
-
expect { options.parse(['--fail-level', severity]) }
|
146
|
-
.not_to raise_error
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
it 'accepts severity initial letters' do
|
151
|
-
%w(R C W E F).each do |severity|
|
152
|
-
expect { options.parse(['--fail-level', severity]) }
|
153
|
-
.not_to raise_error
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
it 'accepts the "fake" severities A/autocorrect' do
|
158
|
-
%w(autocorrect A).each do |severity|
|
159
|
-
expect { options.parse(['--fail-level', severity]) }
|
160
|
-
.not_to raise_error
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
describe '--require' do
|
166
|
-
let(:required_file_path) { './path/to/required_file.rb' }
|
167
|
-
|
168
|
-
before do
|
169
|
-
create_file('example.rb', '# encoding: utf-8')
|
170
|
-
|
171
|
-
create_file(required_file_path, ['# encoding: utf-8',
|
172
|
-
"puts 'Hello from required file!'"])
|
173
|
-
end
|
174
|
-
|
175
|
-
it 'requires the passed path' do
|
176
|
-
options.parse(['--require', required_file_path, 'example.rb'])
|
177
|
-
expect($stdout.string).to start_with('Hello from required file!')
|
178
|
-
end
|
179
|
-
end
|
180
|
-
end
|
181
|
-
end
|
@@ -1,77 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::PathUtil do
|
6
|
-
describe '#relative_path' do
|
7
|
-
it 'builds paths relative to PWD by default as a stop-gap' do
|
8
|
-
relative = File.join(Dir.pwd, 'relative')
|
9
|
-
expect(subject.relative_path(relative)).to eq('relative')
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'supports custom base paths' do
|
13
|
-
expect(subject.relative_path('/foo/bar', '/foo')).to eq('bar')
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe '#match_path?', :isolated_environment do
|
18
|
-
include FileHelper
|
19
|
-
|
20
|
-
before do
|
21
|
-
create_file('file', '')
|
22
|
-
create_file('dir/file', '')
|
23
|
-
create_file('dir/files', '')
|
24
|
-
create_file('dir/dir/file', '')
|
25
|
-
create_file('dir/sub/file', '')
|
26
|
-
$stderr = StringIO.new
|
27
|
-
end
|
28
|
-
|
29
|
-
after { $stderr = STDERR }
|
30
|
-
|
31
|
-
context 'with deprecated patterns' do
|
32
|
-
it 'matches dir/** and prints warning' do
|
33
|
-
expect(subject.match_path?('dir/**', 'dir/sub/file', '.rubocop.yml'))
|
34
|
-
.to be_truthy
|
35
|
-
expect($stderr.string)
|
36
|
-
.to eq(["Warning: Deprecated pattern style 'dir/**' in " \
|
37
|
-
".rubocop.yml. Change to 'dir/**/*'.",
|
38
|
-
''].join("\n"))
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'matches strings to the basename and prints warning' do
|
42
|
-
expect(subject.match_path?('file', 'dir/file', '.rubocop.yml'))
|
43
|
-
.to be_truthy
|
44
|
-
expect($stderr.string)
|
45
|
-
.to eq(["Warning: Deprecated pattern style 'file' in .rubocop.yml. " \
|
46
|
-
"Change to '**/file'.",
|
47
|
-
''].join("\n"))
|
48
|
-
|
49
|
-
expect(subject.match_path?('file', 'dir/files', '')).to be_falsey
|
50
|
-
expect(subject.match_path?('dir', 'dir/file', '')).to be_falsey
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'matches strings to the full path' do
|
55
|
-
expect(subject.match_path?("#{Dir.pwd}/dir/file",
|
56
|
-
"#{Dir.pwd}/dir/file", '')).to be_truthy
|
57
|
-
expect(subject.match_path?("#{Dir.pwd}/dir/file",
|
58
|
-
"#{Dir.pwd}/dir/dir/file", '')).to be_falsey
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'matches glob expressions' do
|
62
|
-
expect(subject.match_path?('dir/*', 'dir/file', '')).to be_truthy
|
63
|
-
expect(subject.match_path?('dir/*/*', 'dir/sub/file', '')).to be_truthy
|
64
|
-
expect(subject.match_path?('dir/**/*', 'dir/sub/file', '')).to be_truthy
|
65
|
-
expect(subject.match_path?('dir/**/*', 'dir/file', '')).to be_truthy
|
66
|
-
expect(subject.match_path?('**/*', 'dir/sub/file', '')).to be_truthy
|
67
|
-
expect(subject.match_path?('**/file', 'file', '')).to be_truthy
|
68
|
-
|
69
|
-
expect(subject.match_path?('sub/*', 'dir/sub/file', '')).to be_falsey
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'matches regexps' do
|
73
|
-
expect(subject.match_path?(/^d.*e$/, 'dir/file', '')).to be_truthy
|
74
|
-
expect(subject.match_path?(/^d.*e$/, 'dir/filez', '')).to be_falsey
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
@@ -1,184 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::ProcessedSource do
|
6
|
-
include FileHelper
|
7
|
-
|
8
|
-
subject(:processed_source) { described_class.new(source, path) }
|
9
|
-
|
10
|
-
let(:source) { <<-END.strip_indent }
|
11
|
-
# encoding: utf-8
|
12
|
-
def some_method
|
13
|
-
puts 'foo'
|
14
|
-
end
|
15
|
-
some_method
|
16
|
-
END
|
17
|
-
|
18
|
-
let(:path) { 'path/to/file.rb' }
|
19
|
-
|
20
|
-
describe '.from_file', :isolated_environment do
|
21
|
-
before do
|
22
|
-
create_file(path, 'foo')
|
23
|
-
end
|
24
|
-
|
25
|
-
let(:processed_source) { described_class.from_file(path) }
|
26
|
-
|
27
|
-
it 'returns an instance of ProcessedSource' do
|
28
|
-
expect(processed_source).to be_a(described_class)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "sets the file path to the instance's #path" do
|
32
|
-
expect(processed_source.path).to eq(path)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe '#path' do
|
37
|
-
it 'is the path passed to .new' do
|
38
|
-
expect(processed_source.path).to eq(path)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '#buffer' do
|
43
|
-
it 'is a source buffer' do
|
44
|
-
expect(processed_source.buffer).to be_a(Parser::Source::Buffer)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe '#ast' do
|
49
|
-
it 'is the root node of AST' do
|
50
|
-
expect(processed_source.ast).to be_a(Astrolabe::Node)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe '#comments' do
|
55
|
-
it 'is an array of comments' do
|
56
|
-
expect(processed_source.comments).to be_a(Array)
|
57
|
-
expect(processed_source.comments.first).to be_a(Parser::Source::Comment)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe '#tokens' do
|
62
|
-
it 'has an array of tokens' do
|
63
|
-
expect(processed_source.tokens).to be_a(Array)
|
64
|
-
expect(processed_source.tokens.first).to be_a(RuboCop::Token)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
shared_context 'invalid encoding source' do
|
69
|
-
let(:source) do
|
70
|
-
[
|
71
|
-
'# encoding: utf-8',
|
72
|
-
"# \xf9"
|
73
|
-
].join("\n")
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
describe '#parser_error' do
|
78
|
-
context 'when the source was properly parsed' do
|
79
|
-
it 'is nil' do
|
80
|
-
expect(processed_source.parser_error).to be_nil
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context 'when the source lacks encoding comment and is really utf-8 ' \
|
85
|
-
'encoded but has been read as US-ASCII' do
|
86
|
-
let(:source) do
|
87
|
-
# When files are read into RuboCop, the encoding of source code lacking
|
88
|
-
# an encoding comment will default to the external encoding, which
|
89
|
-
# could for example be US-ASCII if the LC_ALL environment variable is
|
90
|
-
# set to "C".
|
91
|
-
'号码 = 3'.force_encoding('US-ASCII')
|
92
|
-
end
|
93
|
-
|
94
|
-
it 'is nil' do
|
95
|
-
# ProcessedSource#parse sets UTF-8 as default encoding, so no error.
|
96
|
-
expect(processed_source.parser_error).to be_nil
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
context 'when the source could not be parsed due to encoding error' do
|
101
|
-
include_context 'invalid encoding source'
|
102
|
-
|
103
|
-
it 'returns the error' do
|
104
|
-
expect(processed_source.parser_error).to be_a(Exception)
|
105
|
-
expect(processed_source.parser_error.message)
|
106
|
-
.to include('invalid byte sequence')
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe '#lines' do
|
112
|
-
it 'is an array' do
|
113
|
-
expect(processed_source.lines).to be_a(Array)
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'has same number of elements as line count' do
|
117
|
-
expect(processed_source.lines.size).to eq(5)
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'contains lines as string without linefeed' do
|
121
|
-
first_line = processed_source.lines.first
|
122
|
-
expect(first_line).to eq('# encoding: utf-8')
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
describe '#[]' do
|
127
|
-
context 'when an index is passed' do
|
128
|
-
it 'returns the line' do
|
129
|
-
expect(processed_source[3]).to eq('end')
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
context 'when a range is passed' do
|
134
|
-
it 'returns the array of lines' do
|
135
|
-
expect(processed_source[3..4]).to eq(%w(end some_method))
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
context 'when start index and length are passed' do
|
140
|
-
it 'returns the array of lines' do
|
141
|
-
expect(processed_source[3, 2]).to eq(%w(end some_method))
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
describe 'valid_syntax?' do
|
147
|
-
subject { processed_source.valid_syntax? }
|
148
|
-
|
149
|
-
context 'when the source is completely valid' do
|
150
|
-
let(:source) { 'def valid_code; end' }
|
151
|
-
|
152
|
-
it 'returns true' do
|
153
|
-
expect(processed_source.diagnostics).to be_empty
|
154
|
-
expect(processed_source).to be_valid_syntax
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
context 'when the source is invalid' do
|
159
|
-
let(:source) { 'def invalid_code; en' }
|
160
|
-
|
161
|
-
it 'returns false' do
|
162
|
-
expect(processed_source).not_to be_valid_syntax
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
context 'when the source is valid but has some warning diagnostics' do
|
167
|
-
let(:source) { 'do_something *array' }
|
168
|
-
|
169
|
-
it 'returns true' do
|
170
|
-
expect(processed_source.diagnostics).not_to be_empty
|
171
|
-
expect(processed_source.diagnostics.first.level).to eq(:warning)
|
172
|
-
expect(processed_source).to be_valid_syntax
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
context 'when the source could not be parsed due to encoding error' do
|
177
|
-
include_context 'invalid encoding source'
|
178
|
-
|
179
|
-
it 'returns false' do
|
180
|
-
expect(processed_source).not_to be_valid_syntax
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
end
|