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,100 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::EmptyElse do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:config) do
|
8
|
-
RuboCop::Config.new
|
9
|
-
end
|
10
|
-
|
11
|
-
context 'given an if-statement' do
|
12
|
-
context 'with a completely empty else-clause' do
|
13
|
-
it 'registers an offense' do
|
14
|
-
inspect_source(cop, 'if a; foo else end')
|
15
|
-
expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context 'with an else-clause containing only the literal nil' do
|
20
|
-
it 'registers an offense' do
|
21
|
-
inspect_source(cop, 'if a; foo elsif b; bar else nil end')
|
22
|
-
expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
context 'with an else-clause with side-effects' do
|
27
|
-
it "doesn't register an offence" do
|
28
|
-
inspect_source(cop, 'if cond; foo else bar; nil end')
|
29
|
-
expect(cop.messages).to be_empty
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'with no else-clause' do
|
34
|
-
it "doesn't register an offence" do
|
35
|
-
inspect_source(cop, 'if cond; foo end')
|
36
|
-
expect(cop.messages).to be_empty
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context 'given an unless-statement' do
|
42
|
-
context 'with a completely empty else-clause' do
|
43
|
-
it 'registers an offense' do
|
44
|
-
inspect_source(cop, 'unless cond; foo else end')
|
45
|
-
expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
context 'with an else-clause containing only the literal nil' do
|
50
|
-
it 'registers an offense' do
|
51
|
-
inspect_source(cop, 'unless cond; foo else nil end')
|
52
|
-
expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context 'with an else-clause with side-effects' do
|
57
|
-
it "doesn't register an offence" do
|
58
|
-
inspect_source(cop, 'unless cond; foo else bar; nil end')
|
59
|
-
expect(cop.messages).to be_empty
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
context 'with no else-clause' do
|
64
|
-
it "doesn't register an offence" do
|
65
|
-
inspect_source(cop, 'unless cond; foo end')
|
66
|
-
expect(cop.messages).to be_empty
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
context 'given a case statement' do
|
72
|
-
context 'with a completely empty else-clause' do
|
73
|
-
it 'registers an offense' do
|
74
|
-
inspect_source(cop, 'case v; when a; foo else end')
|
75
|
-
expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
context 'with an else-clause containing only the literal nil' do
|
80
|
-
it 'registers an offense' do
|
81
|
-
inspect_source(cop, 'case v; when a; foo; when b; bar; else nil end')
|
82
|
-
expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
context 'with an else-clause with side-effects' do
|
87
|
-
it "doesn't register an offence" do
|
88
|
-
inspect_source(cop, 'case v; when a; foo; else b; nil end')
|
89
|
-
expect(cop.messages).to be_empty
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
context 'with no else-clause' do
|
94
|
-
it "doesn't register an offence" do
|
95
|
-
inspect_source(cop, 'case v; when a; foo; when b; bar; end')
|
96
|
-
expect(cop.messages).to be_empty
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
@@ -1,135 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::EmptyLineBetweenDefs, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) { { 'AllowAdjacentOneLineDefs' => false } }
|
8
|
-
|
9
|
-
it 'finds offenses in inner classes' do
|
10
|
-
source = ['class K',
|
11
|
-
' def m',
|
12
|
-
' end',
|
13
|
-
' class J',
|
14
|
-
' def n',
|
15
|
-
' end',
|
16
|
-
' def o',
|
17
|
-
' end',
|
18
|
-
' end',
|
19
|
-
' # checks something',
|
20
|
-
' def p',
|
21
|
-
' end',
|
22
|
-
'end']
|
23
|
-
inspect_source(cop, source)
|
24
|
-
expect(cop.offenses.size).to eq(1)
|
25
|
-
expect(cop.offenses.map(&:line).sort).to eq([7])
|
26
|
-
end
|
27
|
-
|
28
|
-
# Only one def, so rule about empty line *between* defs does not
|
29
|
-
# apply.
|
30
|
-
it 'accepts a def that follows a line with code' do
|
31
|
-
source = ['x = 0',
|
32
|
-
'def m',
|
33
|
-
'end']
|
34
|
-
inspect_source(cop, source)
|
35
|
-
expect(cop.offenses).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
# Only one def, so rule about empty line *between* defs does not
|
39
|
-
# apply.
|
40
|
-
it 'accepts a def that follows code and a comment' do
|
41
|
-
source = [' x = 0',
|
42
|
-
' # 123',
|
43
|
-
' def m',
|
44
|
-
' end']
|
45
|
-
inspect_source(cop, source)
|
46
|
-
expect(cop.offenses).to be_empty
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'accepts the first def without leading empty line in a class' do
|
50
|
-
source = ['class K',
|
51
|
-
' def m',
|
52
|
-
' end',
|
53
|
-
'end']
|
54
|
-
inspect_source(cop, source)
|
55
|
-
expect(cop.offenses).to be_empty
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'accepts a def that follows an empty line and then a comment' do
|
59
|
-
source = ['class A',
|
60
|
-
' # calculates value',
|
61
|
-
' def m',
|
62
|
-
' end',
|
63
|
-
'',
|
64
|
-
' private',
|
65
|
-
' # calculates size',
|
66
|
-
' def n',
|
67
|
-
' end',
|
68
|
-
'end'
|
69
|
-
]
|
70
|
-
inspect_source(cop, source)
|
71
|
-
expect(cop.offenses).to be_empty
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'accepts a def that is the first of a module' do
|
75
|
-
source = ['module Util',
|
76
|
-
' public',
|
77
|
-
' #',
|
78
|
-
' def html_escape(s)',
|
79
|
-
' end',
|
80
|
-
'end'
|
81
|
-
]
|
82
|
-
inspect_source(cop, source)
|
83
|
-
expect(cop.messages).to be_empty
|
84
|
-
end
|
85
|
-
|
86
|
-
it 'accepts a nested def' do
|
87
|
-
source = ['def mock_model(*attributes)',
|
88
|
-
' Class.new do',
|
89
|
-
' def initialize(attrs)',
|
90
|
-
' end',
|
91
|
-
' end',
|
92
|
-
'end'
|
93
|
-
]
|
94
|
-
inspect_source(cop, source)
|
95
|
-
expect(cop.messages).to be_empty
|
96
|
-
end
|
97
|
-
|
98
|
-
it 'registers an offense for adjacent one-liners by default' do
|
99
|
-
source = ['def a; end',
|
100
|
-
'def b; end']
|
101
|
-
inspect_source(cop, source)
|
102
|
-
expect(cop.offenses.size).to eq(1)
|
103
|
-
end
|
104
|
-
|
105
|
-
it 'auto-corrects adjacent one-liners by default' do
|
106
|
-
corrected = autocorrect_source(cop, [' def a; end',
|
107
|
-
' def b; end'])
|
108
|
-
expect(corrected).to eq([' def a; end',
|
109
|
-
'',
|
110
|
-
' def b; end'].join("\n"))
|
111
|
-
end
|
112
|
-
|
113
|
-
context 'when AllowAdjacentOneLineDefs is enabled' do
|
114
|
-
let(:cop_config) { { 'AllowAdjacentOneLineDefs' => true } }
|
115
|
-
|
116
|
-
it 'accepts adjacent one-liners' do
|
117
|
-
source = ['def a; end',
|
118
|
-
'def b; end']
|
119
|
-
inspect_source(cop, source)
|
120
|
-
expect(cop.offenses).to be_empty
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'registers an offense for adjacent defs if some are multi-line' do
|
124
|
-
source = ['def a; end',
|
125
|
-
'def b; end',
|
126
|
-
'def c', # Not a one-liner, so this is an offense.
|
127
|
-
'end',
|
128
|
-
# Also an offense since previous was multi-line:
|
129
|
-
'def d; end'
|
130
|
-
]
|
131
|
-
inspect_source(cop, source)
|
132
|
-
expect(cop.offenses.map(&:line)).to eq([3, 5])
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
@@ -1,178 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::EmptyLinesAroundAccessModifier do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
%w(private protected public module_function).each do |access_modifier|
|
9
|
-
it "requires blank line before #{access_modifier}" do
|
10
|
-
inspect_source(cop,
|
11
|
-
['class Test',
|
12
|
-
' something',
|
13
|
-
" #{access_modifier}",
|
14
|
-
'',
|
15
|
-
' def test; end',
|
16
|
-
'end'])
|
17
|
-
expect(cop.offenses.size).to eq(1)
|
18
|
-
expect(cop.messages)
|
19
|
-
.to eq(["Keep a blank line before and after `#{access_modifier}`."])
|
20
|
-
end
|
21
|
-
|
22
|
-
it "requires blank line after #{access_modifier}" do
|
23
|
-
inspect_source(cop,
|
24
|
-
['class Test',
|
25
|
-
' something',
|
26
|
-
'',
|
27
|
-
" #{access_modifier}",
|
28
|
-
' def test; end',
|
29
|
-
'end'])
|
30
|
-
expect(cop.offenses.size).to eq(1)
|
31
|
-
expect(cop.messages)
|
32
|
-
.to eq(["Keep a blank line before and after `#{access_modifier}`."])
|
33
|
-
end
|
34
|
-
|
35
|
-
it "ignores #{access_modifier} inside a method call" do
|
36
|
-
inspect_source(cop,
|
37
|
-
['class Test',
|
38
|
-
' def #{access_modifier}?',
|
39
|
-
" #{access_modifier}",
|
40
|
-
' end',
|
41
|
-
'end'])
|
42
|
-
expect(cop.offenses.size).to eq(0)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "ignores #{access_modifier} deep inside a method call" do
|
46
|
-
inspect_source(cop,
|
47
|
-
['class Test',
|
48
|
-
" def #{access_modifier}?",
|
49
|
-
' if true',
|
50
|
-
" #{access_modifier}",
|
51
|
-
' end',
|
52
|
-
' end',
|
53
|
-
'end'])
|
54
|
-
expect(cop.offenses.size).to eq(0)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "ignores #{access_modifier} with a right-hand-side condition" do
|
58
|
-
inspect_source(cop,
|
59
|
-
['class Test',
|
60
|
-
" def #{access_modifier}?",
|
61
|
-
" #{access_modifier} if true",
|
62
|
-
' end',
|
63
|
-
'end'])
|
64
|
-
expect(cop.offenses.size).to eq(0)
|
65
|
-
end
|
66
|
-
|
67
|
-
it "autocorrects blank line before #{access_modifier}" do
|
68
|
-
corrected = autocorrect_source(cop,
|
69
|
-
['class Test',
|
70
|
-
' something',
|
71
|
-
" #{access_modifier}",
|
72
|
-
'',
|
73
|
-
' def test; end',
|
74
|
-
'end'])
|
75
|
-
expect(corrected).to eq(['class Test',
|
76
|
-
' something',
|
77
|
-
'',
|
78
|
-
" #{access_modifier}",
|
79
|
-
'',
|
80
|
-
' def test; end',
|
81
|
-
'end'].join("\n"))
|
82
|
-
end
|
83
|
-
|
84
|
-
it 'autocorrects blank line after #{access_modifier}' do
|
85
|
-
corrected = autocorrect_source(cop,
|
86
|
-
['class Test',
|
87
|
-
' something',
|
88
|
-
'',
|
89
|
-
" #{access_modifier}",
|
90
|
-
' def test; end',
|
91
|
-
'end'])
|
92
|
-
expect(corrected).to eq(['class Test',
|
93
|
-
' something',
|
94
|
-
'',
|
95
|
-
" #{access_modifier}",
|
96
|
-
'',
|
97
|
-
' def test; end',
|
98
|
-
'end'].join("\n"))
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'accepts missing blank line when at the beginning of class/module' do
|
102
|
-
inspect_source(cop,
|
103
|
-
['class Test',
|
104
|
-
" #{access_modifier}",
|
105
|
-
'',
|
106
|
-
' def test; end',
|
107
|
-
'end'])
|
108
|
-
expect(cop.offenses).to be_empty
|
109
|
-
end
|
110
|
-
|
111
|
-
context 'at the beginning of block' do
|
112
|
-
context 'for blocks defined with do' do
|
113
|
-
it 'accepts missing blank line' do
|
114
|
-
inspect_source(cop,
|
115
|
-
['included do',
|
116
|
-
" #{access_modifier}",
|
117
|
-
'',
|
118
|
-
' def test; end',
|
119
|
-
'end'])
|
120
|
-
expect(cop.offenses).to be_empty
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'accepts missing blank line with arguments' do
|
124
|
-
inspect_source(cop,
|
125
|
-
['included do |foo|',
|
126
|
-
" #{access_modifier}",
|
127
|
-
'',
|
128
|
-
' def test; end',
|
129
|
-
'end'])
|
130
|
-
expect(cop.offenses).to be_empty
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
context 'for blocks defined with {}' do
|
135
|
-
it 'accepts missing blank line' do
|
136
|
-
inspect_source(cop,
|
137
|
-
['included {',
|
138
|
-
" #{access_modifier}",
|
139
|
-
'',
|
140
|
-
' def test; end',
|
141
|
-
'}'])
|
142
|
-
expect(cop.offenses).to be_empty
|
143
|
-
end
|
144
|
-
|
145
|
-
it 'accepts missing blank line with arguments' do
|
146
|
-
inspect_source(cop,
|
147
|
-
['included { |foo|',
|
148
|
-
" #{access_modifier}",
|
149
|
-
'',
|
150
|
-
' def test; end',
|
151
|
-
'}'])
|
152
|
-
expect(cop.offenses).to be_empty
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
it 'accepts missing blank line when at the end of block' do
|
158
|
-
inspect_source(cop,
|
159
|
-
['class Test',
|
160
|
-
' def test; end',
|
161
|
-
'',
|
162
|
-
" #{access_modifier}",
|
163
|
-
'end'])
|
164
|
-
expect(cop.offenses).to be_empty
|
165
|
-
end
|
166
|
-
|
167
|
-
it 'recognizes blank lines with DOS style line endings' do
|
168
|
-
inspect_source(cop,
|
169
|
-
["class Test\r",
|
170
|
-
"\r",
|
171
|
-
" #{access_modifier}\r",
|
172
|
-
"\r",
|
173
|
-
" def test; end\r",
|
174
|
-
"end\r"])
|
175
|
-
expect(cop.offenses.size).to eq(0)
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::EmptyLinesAroundBlockBody, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
# Test blocks using both {} and do..end
|
9
|
-
[%w({ }), %w(do end)].each do |open, close|
|
10
|
-
context "when EnforcedStyle is no_empty_lines for #{open} #{close} block" do
|
11
|
-
let(:cop_config) { { 'EnforcedStyle' => 'no_empty_lines' } }
|
12
|
-
|
13
|
-
it 'registers an offense for block body starting with a blank' do
|
14
|
-
inspect_source(cop,
|
15
|
-
["some_method #{open}",
|
16
|
-
'',
|
17
|
-
' do_something',
|
18
|
-
"#{close}"])
|
19
|
-
expect(cop.messages)
|
20
|
-
.to eq(['Extra empty line detected at block body beginning.'])
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'autocorrects block body containing only a blank' do
|
24
|
-
corrected = autocorrect_source(cop,
|
25
|
-
["some_method #{open}",
|
26
|
-
'',
|
27
|
-
"#{close}"])
|
28
|
-
expect(corrected).to eq ["some_method #{open}",
|
29
|
-
"#{close}"].join("\n")
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'registers an offense for block body ending with a blank' do
|
33
|
-
inspect_source(cop,
|
34
|
-
["some_method #{open}",
|
35
|
-
' do_something',
|
36
|
-
'',
|
37
|
-
"#{close}"])
|
38
|
-
expect(cop.messages)
|
39
|
-
.to eq(['Extra empty line detected at block body end.'])
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'accepts block body starting with a line with spaces' do
|
43
|
-
inspect_source(cop,
|
44
|
-
["some_method #{open}",
|
45
|
-
' ',
|
46
|
-
' do_something',
|
47
|
-
"#{close}"])
|
48
|
-
expect(cop.offenses).to be_empty
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'is not fooled by single line blocks' do
|
52
|
-
inspect_source(cop,
|
53
|
-
["some_method #{open} do_something #{close}",
|
54
|
-
'',
|
55
|
-
'something_else'])
|
56
|
-
expect(cop.offenses).to be_empty
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context "when EnforcedStyle is empty_lines for #{open} #{close} block" do
|
61
|
-
let(:cop_config) { { 'EnforcedStyle' => 'empty_lines' } }
|
62
|
-
|
63
|
-
it 'registers an offense for block body not starting or ending with a ' \
|
64
|
-
'blank' do
|
65
|
-
inspect_source(cop,
|
66
|
-
["some_method #{open}",
|
67
|
-
' do_something',
|
68
|
-
"#{close}"])
|
69
|
-
expect(cop.messages).to eq(['Empty line missing at block body '\
|
70
|
-
'beginning.',
|
71
|
-
'Empty line missing at block body end.'])
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'autocorrects block body containing nothing' do
|
75
|
-
corrected = autocorrect_source(cop,
|
76
|
-
["some_method #{open}",
|
77
|
-
"#{close}"])
|
78
|
-
expect(corrected).to eq ["some_method #{open}",
|
79
|
-
'',
|
80
|
-
"#{close}"].join("\n")
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'autocorrects beginning and end' do
|
84
|
-
new_source = autocorrect_source(cop,
|
85
|
-
["some_method #{open}",
|
86
|
-
' do_something',
|
87
|
-
"#{close}"])
|
88
|
-
expect(new_source).to eq(["some_method #{open}",
|
89
|
-
'',
|
90
|
-
' do_something',
|
91
|
-
'',
|
92
|
-
"#{close}"].join("\n"))
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'is not fooled by single line blocks' do
|
96
|
-
inspect_source(cop,
|
97
|
-
["some_method #{open} do_something #{close}",
|
98
|
-
'something_else'])
|
99
|
-
expect(cop.offenses).to be_empty
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|