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,83 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::TrailingBlankLines, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
context 'when EnforcedStyle is final_newline' do
|
9
|
-
let(:cop_config) { { 'EnforcedStyle' => 'final_newline' } }
|
10
|
-
|
11
|
-
it 'accepts final newline' do
|
12
|
-
inspect_source(cop, ['x = 0', ''])
|
13
|
-
expect(cop.offenses).to be_empty
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'accepts an empty file' do
|
17
|
-
inspect_source(cop, '')
|
18
|
-
expect(cop.offenses).to be_empty
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'registers an offense for multiple trailing blank lines' do
|
22
|
-
inspect_source(cop, ['x = 0', '', '', '', ''])
|
23
|
-
expect(cop.offenses.size).to eq(1)
|
24
|
-
expect(cop.messages).to eq(['3 trailing blank lines detected.'])
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'registers an offense for no final newline' do
|
28
|
-
inspect_source(cop, 'x = 0')
|
29
|
-
expect(cop.messages).to eq(['Final newline missing.'])
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'auto-corrects unwanted blank lines' do
|
33
|
-
new_source = autocorrect_source(cop, ['x = 0', '', '', '', ''])
|
34
|
-
expect(new_source).to eq(['x = 0', ''].join("\n"))
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'auto-corrects even if some lines have space' do
|
38
|
-
new_source = autocorrect_source(cop, ['x = 0', '', ' ', '', ''])
|
39
|
-
expect(new_source).to eq(['x = 0', ''].join("\n"))
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'when EnforcedStyle is final_blank_line' do
|
44
|
-
let(:cop_config) { { 'EnforcedStyle' => 'final_blank_line' } }
|
45
|
-
|
46
|
-
it 'registers an offense for final newline' do
|
47
|
-
inspect_source(cop, ['x = 0', ''])
|
48
|
-
expect(cop.messages).to eq(['Trailing blank line missing.'])
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'registers an offense for multiple trailing blank lines' do
|
52
|
-
inspect_source(cop, ['x = 0', '', '', '', ''])
|
53
|
-
expect(cop.offenses.size).to eq(1)
|
54
|
-
expect(cop.messages)
|
55
|
-
.to eq(['3 trailing blank lines instead of 1 detected.'])
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'registers an offense for no final newline' do
|
59
|
-
inspect_source(cop, 'x = 0')
|
60
|
-
expect(cop.messages).to eq(['Final newline missing.'])
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'accepts final blank line' do
|
64
|
-
inspect_source(cop, ['x = 0', '', ''])
|
65
|
-
expect(cop.offenses).to be_empty
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'auto-corrects unwanted blank lines' do
|
69
|
-
new_source = autocorrect_source(cop, ['x = 0', '', '', '', ''])
|
70
|
-
expect(new_source).to eq(['x = 0', '', ''].join("\n"))
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'auto-corrects missing blank line' do
|
74
|
-
new_source = autocorrect_source(cop, ['x = 0', ''])
|
75
|
-
expect(new_source).to eq(['x = 0', '', ''].join("\n"))
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'auto-corrects missing newline' do
|
79
|
-
new_source = autocorrect_source(cop, ['x = 0'])
|
80
|
-
expect(new_source).to eq(['x = 0', '', ''].join("\n"))
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,390 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::TrailingComma, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
shared_examples 'single line lists' do |extra_info|
|
9
|
-
it 'registers an offense for trailing comma in an Array literal' do
|
10
|
-
inspect_source(cop, 'VALUES = [1001, 2020, 3333, ]')
|
11
|
-
expect(cop.messages)
|
12
|
-
.to eq(["Avoid comma after the last item of an array#{extra_info}."])
|
13
|
-
expect(cop.highlights).to eq([','])
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'registers an offense for trailing comma in a Hash literal' do
|
17
|
-
inspect_source(cop, 'MAP = { a: 1001, b: 2020, c: 3333, }')
|
18
|
-
expect(cop.messages)
|
19
|
-
.to eq(["Avoid comma after the last item of a hash#{extra_info}."])
|
20
|
-
expect(cop.highlights).to eq([','])
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers an offense for trailing comma in a method call' do
|
24
|
-
inspect_source(cop, 'some_method(a, b, c, )')
|
25
|
-
expect(cop.messages)
|
26
|
-
.to eq(['Avoid comma after the last parameter of a method ' \
|
27
|
-
"call#{extra_info}."])
|
28
|
-
expect(cop.highlights).to eq([','])
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'registers an offense for trailing comma in a method call with hash' \
|
32
|
-
' parameters at the end' do
|
33
|
-
inspect_source(cop, 'some_method(a, b, c: 0, d: 1, )')
|
34
|
-
expect(cop.messages)
|
35
|
-
.to eq(['Avoid comma after the last parameter of a method ' \
|
36
|
-
"call#{extra_info}."])
|
37
|
-
expect(cop.highlights).to eq([','])
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'accepts Array literal without trailing comma' do
|
41
|
-
inspect_source(cop, 'VALUES = [1001, 2020, 3333]')
|
42
|
-
expect(cop.offenses).to be_empty
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'accepts empty Array literal' do
|
46
|
-
inspect_source(cop, 'VALUES = []')
|
47
|
-
expect(cop.offenses).to be_empty
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'accepts rescue clause' do
|
51
|
-
# The list of rescued classes is an array.
|
52
|
-
inspect_source(cop, ['begin',
|
53
|
-
' do_something',
|
54
|
-
'rescue RuntimeError',
|
55
|
-
'end'])
|
56
|
-
expect(cop.offenses).to be_empty
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'accepts Hash literal without trailing comma' do
|
60
|
-
inspect_source(cop, 'MAP = { a: 1001, b: 2020, c: 3333 }')
|
61
|
-
expect(cop.offenses).to be_empty
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'accepts empty Hash literal' do
|
65
|
-
inspect_source(cop, 'MAP = {}')
|
66
|
-
expect(cop.offenses).to be_empty
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'accepts method call without trailing comma' do
|
70
|
-
inspect_source(cop, 'some_method(a, b, c)')
|
71
|
-
expect(cop.offenses).to be_empty
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'accepts method call without parameters' do
|
75
|
-
inspect_source(cop, 'some_method')
|
76
|
-
expect(cop.offenses).to be_empty
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'auto-corrects unwanted comma in an Array literal' do
|
80
|
-
new_source = autocorrect_source(cop, 'VALUES = [1001, 2020, 3333, ]')
|
81
|
-
expect(new_source).to eq('VALUES = [1001, 2020, 3333 ]')
|
82
|
-
end
|
83
|
-
|
84
|
-
it 'auto-corrects unwanted comma in a Hash literal' do
|
85
|
-
new_source = autocorrect_source(cop,
|
86
|
-
'MAP = { a: 1001, b: 2020, c: 3333, }')
|
87
|
-
expect(new_source).to eq('MAP = { a: 1001, b: 2020, c: 3333 }')
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'auto-corrects unwanted comma in a method call' do
|
91
|
-
new_source = autocorrect_source(cop, 'some_method(a, b, c, )')
|
92
|
-
expect(new_source).to eq('some_method(a, b, c )')
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'auto-corrects unwanted comma in a method call with hash parameters at' \
|
96
|
-
' the end' do
|
97
|
-
new_source = autocorrect_source(cop, 'some_method(a, b, c: 0, d: 1, )')
|
98
|
-
expect(new_source).to eq('some_method(a, b, c: 0, d: 1 )')
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
context 'with single line list of values' do
|
103
|
-
context 'when EnforcedStyleForMultiline is no_comma' do
|
104
|
-
let(:cop_config) { { 'EnforcedStyleForMultiline' => 'no_comma' } }
|
105
|
-
include_examples 'single line lists', ''
|
106
|
-
end
|
107
|
-
|
108
|
-
context 'when EnforcedStyleForMultiline is comma' do
|
109
|
-
let(:cop_config) { { 'EnforcedStyleForMultiline' => 'comma' } }
|
110
|
-
include_examples 'single line lists',
|
111
|
-
', unless each item is on its own line'
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
context 'with multi-line list of values' do
|
116
|
-
context 'when EnforcedStyleForMultiline is no_comma' do
|
117
|
-
let(:cop_config) { { 'EnforcedStyleForMultiline' => 'no_comma' } }
|
118
|
-
|
119
|
-
it 'registers an offense for trailing comma in an Array literal' do
|
120
|
-
inspect_source(cop, ['VALUES = [',
|
121
|
-
' 1001,',
|
122
|
-
' 2020,',
|
123
|
-
' 3333,',
|
124
|
-
' ]'])
|
125
|
-
expect(cop.highlights).to eq([','])
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'registers an offense for trailing comma in a Hash literal' do
|
129
|
-
inspect_source(cop, ['MAP = { a: 1001,',
|
130
|
-
' b: 2020,',
|
131
|
-
' c: 3333,',
|
132
|
-
' }'])
|
133
|
-
expect(cop.highlights).to eq([','])
|
134
|
-
end
|
135
|
-
|
136
|
-
it 'registers an offense for trailing comma in a method call with ' \
|
137
|
-
'hash parameters at the end' do
|
138
|
-
inspect_source(cop, ['some_method(',
|
139
|
-
' a,',
|
140
|
-
' b,',
|
141
|
-
' c: 0,',
|
142
|
-
' d: 1,)'])
|
143
|
-
expect(cop.highlights).to eq([','])
|
144
|
-
end
|
145
|
-
|
146
|
-
it 'accepts an Array literal with no trailing comma' do
|
147
|
-
inspect_source(cop, ['VALUES = [ 1001,',
|
148
|
-
' 2020,',
|
149
|
-
' 3333 ]'])
|
150
|
-
expect(cop.offenses).to be_empty
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'accepts a Hash literal with no trailing comma' do
|
154
|
-
inspect_source(cop, ['MAP = {',
|
155
|
-
' a: 1001,',
|
156
|
-
' b: 2020,',
|
157
|
-
' c: 3333',
|
158
|
-
' }'])
|
159
|
-
expect(cop.offenses).to be_empty
|
160
|
-
end
|
161
|
-
|
162
|
-
it 'accepts a method call with ' \
|
163
|
-
'hash parameters at the end and no trailing comma' do
|
164
|
-
inspect_source(cop, ['some_method(a,',
|
165
|
-
' b,',
|
166
|
-
' c: 0,',
|
167
|
-
' d: 1',
|
168
|
-
' )'])
|
169
|
-
expect(cop.offenses).to be_empty
|
170
|
-
end
|
171
|
-
|
172
|
-
it 'accepts comma inside a heredoc parameters at the end' do
|
173
|
-
inspect_source(cop, ['route(help: {',
|
174
|
-
" 'auth' => <<-HELP.chomp",
|
175
|
-
',',
|
176
|
-
'HELP',
|
177
|
-
'})'])
|
178
|
-
expect(cop.offenses).to be_empty
|
179
|
-
end
|
180
|
-
|
181
|
-
it 'auto-corrects unwanted comma in an Array literal' do
|
182
|
-
new_source = autocorrect_source(cop, ['VALUES = [',
|
183
|
-
' 1001,',
|
184
|
-
' 2020,',
|
185
|
-
' 3333,',
|
186
|
-
' ]'])
|
187
|
-
expect(new_source).to eq(['VALUES = [',
|
188
|
-
' 1001,',
|
189
|
-
' 2020,',
|
190
|
-
' 3333',
|
191
|
-
' ]'].join("\n"))
|
192
|
-
end
|
193
|
-
|
194
|
-
it 'auto-corrects unwanted comma in a Hash literal' do
|
195
|
-
new_source = autocorrect_source(cop, ['MAP = { a: 1001,',
|
196
|
-
' b: 2020,',
|
197
|
-
' c: 3333,',
|
198
|
-
' }'])
|
199
|
-
expect(new_source).to eq(['MAP = { a: 1001,',
|
200
|
-
' b: 2020,',
|
201
|
-
' c: 3333',
|
202
|
-
' }'].join("\n"))
|
203
|
-
end
|
204
|
-
|
205
|
-
it 'auto-corrects unwanted comma in a method call with hash parameters' \
|
206
|
-
' at the end' do
|
207
|
-
new_source = autocorrect_source(cop, ['some_method(',
|
208
|
-
' a,',
|
209
|
-
' b,',
|
210
|
-
' c: 0,',
|
211
|
-
' d: 1,)'])
|
212
|
-
expect(new_source).to eq(['some_method(',
|
213
|
-
' a,',
|
214
|
-
' b,',
|
215
|
-
' c: 0,',
|
216
|
-
' d: 1)'].join("\n"))
|
217
|
-
end
|
218
|
-
end
|
219
|
-
|
220
|
-
context 'when EnforcedStyleForMultiline is comma' do
|
221
|
-
let(:cop_config) { { 'EnforcedStyleForMultiline' => 'comma' } }
|
222
|
-
|
223
|
-
context 'when closing bracket is on same line as last value' do
|
224
|
-
it 'accepts Array literal with no trailing comma' do
|
225
|
-
inspect_source(cop, ['VALUES = [',
|
226
|
-
' 1001,',
|
227
|
-
' 2020,',
|
228
|
-
' 3333]'])
|
229
|
-
expect(cop.offenses).to be_empty
|
230
|
-
end
|
231
|
-
|
232
|
-
it 'accepts a method call with Hash as last parameter split on ' \
|
233
|
-
'multiple lines' do
|
234
|
-
inspect_source(cop, ['some_method(a: "b",',
|
235
|
-
' c: "d")'])
|
236
|
-
expect(cop.offenses).to be_empty
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
it 'accepts Array literal with two of the values on the same line' do
|
241
|
-
inspect_source(cop, ['VALUES = [',
|
242
|
-
' 1001, 2020,',
|
243
|
-
' 3333',
|
244
|
-
' ]'])
|
245
|
-
expect(cop.offenses).to be_empty
|
246
|
-
end
|
247
|
-
|
248
|
-
it 'registers an offense for an Array literal with two of the values ' \
|
249
|
-
'on the same line and a trailing comma' do
|
250
|
-
inspect_source(cop, ['VALUES = [',
|
251
|
-
' 1001, 2020,',
|
252
|
-
' 3333,',
|
253
|
-
' ]'])
|
254
|
-
expect(cop.messages)
|
255
|
-
.to eq(['Avoid comma after the last item of an array, unless each ' \
|
256
|
-
'item is on its own line.'])
|
257
|
-
end
|
258
|
-
|
259
|
-
it 'registers an offense for no trailing comma in a Hash literal' do
|
260
|
-
inspect_source(cop, ['MAP = { a: 1001,',
|
261
|
-
' b: 2020,',
|
262
|
-
' c: 3333',
|
263
|
-
'}'])
|
264
|
-
expect(cop.messages)
|
265
|
-
.to eq(['Put a comma after the last item of a multiline hash.'])
|
266
|
-
expect(cop.highlights).to eq(['c: 3333'])
|
267
|
-
end
|
268
|
-
|
269
|
-
it 'registers an offense for no trailing comma in a method call with' \
|
270
|
-
' hash parameters at the end' do
|
271
|
-
inspect_source(cop, ['some_method(',
|
272
|
-
' a,',
|
273
|
-
' b,',
|
274
|
-
' c: 0,',
|
275
|
-
' d: 1',
|
276
|
-
' )'])
|
277
|
-
expect(cop.messages)
|
278
|
-
.to eq(['Put a comma after the last parameter of a multiline ' \
|
279
|
-
'method call.'])
|
280
|
-
expect(cop.highlights).to eq(['d: 1'])
|
281
|
-
end
|
282
|
-
|
283
|
-
it 'accepts a method call with two parameters on the same line' do
|
284
|
-
inspect_source(cop, ['some_method(a, b',
|
285
|
-
' )'])
|
286
|
-
expect(cop.offenses).to be_empty
|
287
|
-
end
|
288
|
-
|
289
|
-
it 'accepts trailing comma in an Array literal' do
|
290
|
-
inspect_source(cop, ['VALUES = [1001,',
|
291
|
-
' 2020,',
|
292
|
-
' 3333,',
|
293
|
-
' ]'])
|
294
|
-
expect(cop.offenses).to be_empty
|
295
|
-
end
|
296
|
-
|
297
|
-
it 'accepts trailing comma in a Hash literal' do
|
298
|
-
inspect_source(cop, ['MAP = {',
|
299
|
-
' a: 1001,',
|
300
|
-
' b: 2020,',
|
301
|
-
' c: 3333,',
|
302
|
-
' }'])
|
303
|
-
expect(cop.offenses).to be_empty
|
304
|
-
end
|
305
|
-
|
306
|
-
it 'accepts trailing comma in a method call with hash' \
|
307
|
-
' parameters at the end' do
|
308
|
-
inspect_source(cop, ['some_method(',
|
309
|
-
' a,',
|
310
|
-
' b,',
|
311
|
-
' c: 0,',
|
312
|
-
' d: 1,',
|
313
|
-
' )'])
|
314
|
-
expect(cop.offenses).to be_empty
|
315
|
-
end
|
316
|
-
|
317
|
-
# this is a sad parse error
|
318
|
-
it 'accepts no trailing comma in a method call with a block' \
|
319
|
-
' parameter at the end' do
|
320
|
-
inspect_source(cop, ['some_method(',
|
321
|
-
' a,',
|
322
|
-
' b,',
|
323
|
-
' c: 0,',
|
324
|
-
' d: 1,',
|
325
|
-
' &block',
|
326
|
-
' )'])
|
327
|
-
expect(cop.offenses).to be_empty
|
328
|
-
end
|
329
|
-
|
330
|
-
it 'accepts a multiline word array' do
|
331
|
-
inspect_source(cop, ['ingredients = %w(',
|
332
|
-
' sausage',
|
333
|
-
' anchovies',
|
334
|
-
' olives',
|
335
|
-
')'])
|
336
|
-
expect(cop.offenses).to be_empty
|
337
|
-
end
|
338
|
-
|
339
|
-
it 'accepts missing comma after a heredoc' do
|
340
|
-
# A heredoc that's the last item in a literal or parameter list can not
|
341
|
-
# have a trailing comma. It's a syntax error.
|
342
|
-
inspect_source(cop, ['route(help: {',
|
343
|
-
" 'auth' => <<-HELP.chomp",
|
344
|
-
'...',
|
345
|
-
'HELP',
|
346
|
-
'})'])
|
347
|
-
expect(cop.offenses).to be_empty
|
348
|
-
end
|
349
|
-
|
350
|
-
it 'auto-corrects an Array literal with two of the values on the same' \
|
351
|
-
' line and a trailing comma' do
|
352
|
-
new_source = autocorrect_source(cop, ['VALUES = [',
|
353
|
-
' 1001, 2020,',
|
354
|
-
' 3333,',
|
355
|
-
' ]'])
|
356
|
-
expect(new_source).to eq(['VALUES = [',
|
357
|
-
' 1001, 2020,',
|
358
|
-
' 3333',
|
359
|
-
' ]'].join("\n"))
|
360
|
-
end
|
361
|
-
|
362
|
-
it 'auto-corrects missing comma in a Hash literal' do
|
363
|
-
new_source = autocorrect_source(cop, ['MAP = { a: 1001,',
|
364
|
-
' b: 2020,',
|
365
|
-
' c: 3333',
|
366
|
-
'}'])
|
367
|
-
expect(new_source).to eq(['MAP = { a: 1001,',
|
368
|
-
' b: 2020,',
|
369
|
-
' c: 3333,',
|
370
|
-
'}'].join("\n"))
|
371
|
-
end
|
372
|
-
|
373
|
-
it 'auto-corrects missing comma in a method call with hash parameters' \
|
374
|
-
' at the end' do
|
375
|
-
new_source = autocorrect_source(cop, ['some_method(',
|
376
|
-
' a,',
|
377
|
-
' b,',
|
378
|
-
' c: 0,',
|
379
|
-
' d: 1',
|
380
|
-
' )'])
|
381
|
-
expect(new_source).to eq(['some_method(',
|
382
|
-
' a,',
|
383
|
-
' b,',
|
384
|
-
' c: 0,',
|
385
|
-
' d: 1,',
|
386
|
-
' )'].join("\n"))
|
387
|
-
end
|
388
|
-
end
|
389
|
-
end
|
390
|
-
end
|