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,82 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SingleLineBlockParams, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) do
|
8
|
-
{ 'Methods' =>
|
9
|
-
[{ 'reduce' => %w(a e) },
|
10
|
-
{ 'test' => %w(x y) }]
|
11
|
-
}
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'finds wrong argument names in calls with different syntax' do
|
15
|
-
inspect_source(cop,
|
16
|
-
['def m',
|
17
|
-
' [0, 1].reduce { |c, d| c + d }',
|
18
|
-
' [0, 1].reduce{ |c, d| c + d }',
|
19
|
-
' [0, 1].reduce(5) { |c, d| c + d }',
|
20
|
-
' [0, 1].reduce(5){ |c, d| c + d }',
|
21
|
-
' [0, 1].reduce (5) { |c, d| c + d }',
|
22
|
-
' [0, 1].reduce(5) { |c, d| c + d }',
|
23
|
-
' ala.test { |x, z| bala }',
|
24
|
-
'end'])
|
25
|
-
expect(cop.offenses.size).to eq(7)
|
26
|
-
expect(cop.offenses.map(&:line).sort).to eq((2..8).to_a)
|
27
|
-
expect(cop.messages.first)
|
28
|
-
.to eq('Name `reduce` block params `|a, e|`.')
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'allows calls with proper argument names' do
|
32
|
-
inspect_source(cop,
|
33
|
-
['def m',
|
34
|
-
' [0, 1].reduce { |a, e| a + e }',
|
35
|
-
' [0, 1].reduce{ |a, e| a + e }',
|
36
|
-
' [0, 1].reduce(5) { |a, e| a + e }',
|
37
|
-
' [0, 1].reduce(5){ |a, e| a + e }',
|
38
|
-
' [0, 1].reduce (5) { |a, e| a + e }',
|
39
|
-
' [0, 1].reduce(5) { |a, e| a + e }',
|
40
|
-
' ala.test { |x, y| bala }',
|
41
|
-
'end'])
|
42
|
-
expect(cop.offenses).to be_empty
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'allows an unused parameter to have a leading underscore' do
|
46
|
-
inspect_source(cop,
|
47
|
-
'File.foreach(filename).reduce(0) { |a, _e| a + 1 }')
|
48
|
-
expect(cop.offenses).to be_empty
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'finds incorrectly named parameters with leading underscores' do
|
52
|
-
inspect_source(cop,
|
53
|
-
'File.foreach(filename).reduce(0) { |_x, _y| }')
|
54
|
-
expect(cop.messages).to eq(['Name `reduce` block params `|a, e|`.'])
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'ignores do..end blocks' do
|
58
|
-
inspect_source(cop,
|
59
|
-
['def m',
|
60
|
-
' [0, 1].reduce do |c, d|',
|
61
|
-
' c + d',
|
62
|
-
' end',
|
63
|
-
'end'])
|
64
|
-
expect(cop.offenses).to be_empty
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'ignores :reduce symbols' do
|
68
|
-
inspect_source(cop,
|
69
|
-
['def m',
|
70
|
-
' call_method(:reduce) { |a, b| a + b}',
|
71
|
-
'end'])
|
72
|
-
expect(cop.offenses).to be_empty
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'does not report when destructuring is used' do
|
76
|
-
inspect_source(cop,
|
77
|
-
['def m',
|
78
|
-
' test.reduce { |a, (id, _)| a + id}',
|
79
|
-
'end'])
|
80
|
-
expect(cop.offenses).to be_empty
|
81
|
-
end
|
82
|
-
end
|
@@ -1,94 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SingleLineMethods do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:config) do
|
8
|
-
RuboCop::Config.new('Style/SingleLineMethods' => cop_config,
|
9
|
-
'Style/IndentationWidth' => { 'Width' => 2 })
|
10
|
-
end
|
11
|
-
let(:cop_config) { { 'AllowIfMethodIsEmpty' => true } }
|
12
|
-
|
13
|
-
it 'registers an offense for a single-line method' do
|
14
|
-
inspect_source(cop,
|
15
|
-
['def some_method; body end',
|
16
|
-
'def link_to(name, url); {:name => name}; end',
|
17
|
-
'def @table.columns; super; end'])
|
18
|
-
expect(cop.messages).to eq(
|
19
|
-
['Avoid single-line method definitions.'] * 3)
|
20
|
-
end
|
21
|
-
|
22
|
-
context 'when AllowIfMethodIsEmpty is disabled' do
|
23
|
-
let(:cop_config) { { 'AllowIfMethodIsEmpty' => false } }
|
24
|
-
|
25
|
-
it 'registers an offense for an empty method' do
|
26
|
-
inspect_source(cop, ['def no_op; end',
|
27
|
-
'def self.resource_class=(klass); end',
|
28
|
-
'def @table.columns; end'])
|
29
|
-
expect(cop.offenses.size).to eq(3)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'when AllowIfMethodIsEmpty is enabled' do
|
34
|
-
let(:cop_config) { { 'AllowIfMethodIsEmpty' => true } }
|
35
|
-
|
36
|
-
it 'accepts a single-line empty method' do
|
37
|
-
inspect_source(cop, ['def no_op; end',
|
38
|
-
'def self.resource_class=(klass); end',
|
39
|
-
'def @table.columns; end'])
|
40
|
-
expect(cop.offenses).to be_empty
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'accepts a multi-line method' do
|
45
|
-
inspect_source(cop, ['def some_method',
|
46
|
-
' body',
|
47
|
-
'end'])
|
48
|
-
expect(cop.offenses).to be_empty
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'does not crash on an method with a capitalized name' do
|
52
|
-
inspect_source(cop, ['def NoSnakeCase',
|
53
|
-
'end'])
|
54
|
-
expect(cop.offenses).to be_empty
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'auto-corrects def with semicolon after method name' do
|
58
|
-
corrected = autocorrect_source(cop,
|
59
|
-
[' def some_method; body end # Cmnt'])
|
60
|
-
expect(corrected).to eq [' # Cmnt',
|
61
|
-
' def some_method; ',
|
62
|
-
' body ',
|
63
|
-
' end '].join("\n")
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'auto-corrects defs with parentheses after method name' do
|
67
|
-
corrected = autocorrect_source(cop, [' def self.some_method() body end'])
|
68
|
-
expect(corrected).to eq [' def self.some_method() ',
|
69
|
-
' body ',
|
70
|
-
' end'].join("\n")
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'auto-corrects def with argument in parentheses' do
|
74
|
-
corrected = autocorrect_source(cop, [' def some_method(arg) body end'])
|
75
|
-
expect(corrected).to eq [' def some_method(arg) ',
|
76
|
-
' body ',
|
77
|
-
' end'].join("\n")
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'auto-corrects def with argument and no parentheses' do
|
81
|
-
corrected = autocorrect_source(cop, [' def some_method arg; body end'])
|
82
|
-
expect(corrected).to eq [' def some_method arg; ',
|
83
|
-
' body ',
|
84
|
-
' end'].join("\n")
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'auto-corrects def with semicolon before end' do
|
88
|
-
corrected = autocorrect_source(cop, [' def some_method; b1; b2; end'])
|
89
|
-
expect(corrected).to eq [' def some_method; ',
|
90
|
-
' b1; ',
|
91
|
-
' b2; ',
|
92
|
-
' end'].join("\n")
|
93
|
-
end
|
94
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SingleSpaceBeforeFirstArg do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
context 'for method calls without parentheses' do
|
9
|
-
it 'registers an offense for method call with two spaces before the ' \
|
10
|
-
'first arg' do
|
11
|
-
inspect_source(cop, ['something x',
|
12
|
-
'a.something y, z'])
|
13
|
-
expect(cop.messages)
|
14
|
-
.to eq(['Put one space between the method name and the first ' \
|
15
|
-
'argument.'] * 2)
|
16
|
-
expect(cop.highlights).to eq([' ', ' '])
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'auto-corrects extra space' do
|
20
|
-
new_source = autocorrect_source(cop, ['something x',
|
21
|
-
'a.something y, z'])
|
22
|
-
expect(new_source).to eq(['something x',
|
23
|
-
'a.something y, z'].join("\n"))
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'accepts a method call with one space before the first arg' do
|
27
|
-
inspect_source(cop, ['something x',
|
28
|
-
'a.something y, z'])
|
29
|
-
expect(cop.offenses).to be_empty
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'accepts + operator' do
|
33
|
-
inspect_source(cop, ['something +',
|
34
|
-
' x'])
|
35
|
-
expect(cop.offenses).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'accepts setter call' do
|
39
|
-
inspect_source(cop, ['something.x =',
|
40
|
-
' y'])
|
41
|
-
expect(cop.offenses).to be_empty
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'accepts multiple space containing line break' do
|
45
|
-
inspect_source(cop, ['something \\',
|
46
|
-
' x'])
|
47
|
-
expect(cop.offenses).to be_empty
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
context 'for method calls with parentheses' do
|
52
|
-
it 'accepts a method call without space' do
|
53
|
-
inspect_source(cop, ['something(x)',
|
54
|
-
'a.something(y, z)'])
|
55
|
-
expect(cop.offenses).to be_empty
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'accepts a method call with space after the left parenthesis' do
|
59
|
-
inspect_source(cop, 'something( x )')
|
60
|
-
expect(cop.offenses).to be_empty
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceAfterColon do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for colon without space after it' do
|
9
|
-
# TODO: There is double reporting of the last colon (also from
|
10
|
-
# SpaceAroundOperators).
|
11
|
-
inspect_source(cop, 'x = w ? {a:3}:4')
|
12
|
-
expect(cop.messages).to eq(['Space missing after colon.'] * 2)
|
13
|
-
expect(cop.highlights).to eq([':'] * 2)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'accepts colons in symbols' do
|
17
|
-
inspect_source(cop, 'x = :a')
|
18
|
-
expect(cop.messages).to be_empty
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'accepts colon in ternary followed by space' do
|
22
|
-
inspect_source(cop, 'x = w ? a : b')
|
23
|
-
expect(cop.messages).to be_empty
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'accepts hash rockets' do
|
27
|
-
inspect_source(cop, 'x = {"a"=>1}')
|
28
|
-
expect(cop.messages).to be_empty
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'accepts if' do
|
32
|
-
inspect_source(cop, ['x = if w',
|
33
|
-
' a',
|
34
|
-
' end'])
|
35
|
-
expect(cop.messages).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
if RUBY_VERSION >= '2.1'
|
39
|
-
it 'accepts colons denoting required keyword argument' do
|
40
|
-
inspect_source(cop, ['def initialize(table:, nodes:)',
|
41
|
-
'end'])
|
42
|
-
expect(cop.messages).to be_empty
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'accepts colons in strings' do
|
47
|
-
inspect_source(cop, "str << ':'")
|
48
|
-
expect(cop.messages).to be_empty
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'auto-corrects missing space' do
|
52
|
-
new_source = autocorrect_source(cop, 'x = w ? {a:3}:4')
|
53
|
-
expect(new_source).to eq('x = w ? {a: 3}: 4')
|
54
|
-
end
|
55
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceAfterComma do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for block argument commas without space' do
|
9
|
-
inspect_source(cop, 'each { |s,t| }')
|
10
|
-
expect(cop.messages).to eq(
|
11
|
-
['Space missing after comma.'])
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'registers an offense for array index commas without space' do
|
15
|
-
inspect_source(cop, 'formats[0,1]')
|
16
|
-
expect(cop.messages).to eq(
|
17
|
-
['Space missing after comma.'])
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'registers an offense for method call arg commas without space' do
|
21
|
-
inspect_source(cop, 'a(1,2)')
|
22
|
-
expect(cop.messages).to eq(
|
23
|
-
['Space missing after comma.'])
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'auto-corrects missing space' do
|
27
|
-
new_source = autocorrect_source(cop, 'each { |s,t| a(1,formats[0,1])}')
|
28
|
-
expect(new_source).to eq('each { |s, t| a(1, formats[0, 1])}')
|
29
|
-
end
|
30
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceAfterControlKeyword do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for normal if' do
|
9
|
-
inspect_source(cop,
|
10
|
-
'if(test) then result end')
|
11
|
-
expect(cop.offenses.size).to eq(1)
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'registers an offense for modifier unless' do
|
15
|
-
inspect_source(cop, 'action unless(test)')
|
16
|
-
|
17
|
-
expect(cop.offenses.size).to eq(1)
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'does not get confused by keywords' do
|
21
|
-
inspect_source(cop, '[:if, :unless].action')
|
22
|
-
expect(cop.offenses).to be_empty
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'does not get confused by the ternary operator' do
|
26
|
-
inspect_source(cop, 'a ? b : c')
|
27
|
-
expect(cop.offenses).to be_empty
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'registers an offense for if, elsif, and unless' do
|
31
|
-
inspect_source(cop,
|
32
|
-
['if(a)',
|
33
|
-
'elsif(b)',
|
34
|
-
' unless(c)',
|
35
|
-
' end',
|
36
|
-
'end'])
|
37
|
-
expect(cop.offenses.map(&:line)).to eq([1, 2, 3])
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'registers an offense for case and when' do
|
41
|
-
inspect_source(cop,
|
42
|
-
['case(a)',
|
43
|
-
'when(0) then 1',
|
44
|
-
'end'])
|
45
|
-
expect(cop.offenses.map(&:line)).to eq([1, 2])
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'registers an offense for while and until' do
|
49
|
-
inspect_source(cop,
|
50
|
-
['while(a)',
|
51
|
-
' b until(c)',
|
52
|
-
'end'])
|
53
|
-
expect(cop.offenses.map(&:line)).to eq([1, 2])
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'auto-corrects missing space' do
|
57
|
-
new_source = autocorrect_source(cop, ['if(test) then result end',
|
58
|
-
'action unless(test)',
|
59
|
-
'if(a)',
|
60
|
-
'elsif(b)',
|
61
|
-
' unless(c)',
|
62
|
-
' end',
|
63
|
-
'end',
|
64
|
-
'case(a)',
|
65
|
-
'when(0) then 1',
|
66
|
-
'end',
|
67
|
-
'while(a)',
|
68
|
-
' b until(c)',
|
69
|
-
'end'])
|
70
|
-
expect(new_source).to eq(['if (test) then result end',
|
71
|
-
'action unless (test)',
|
72
|
-
'if (a)',
|
73
|
-
'elsif (b)',
|
74
|
-
' unless (c)',
|
75
|
-
' end',
|
76
|
-
'end',
|
77
|
-
'case (a)',
|
78
|
-
'when (0) then 1',
|
79
|
-
'end',
|
80
|
-
'while (a)',
|
81
|
-
' b until (c)',
|
82
|
-
'end'].join("\n"))
|
83
|
-
end
|
84
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceAfterMethodName do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for def with space before the parenthesis' do
|
9
|
-
inspect_source(cop,
|
10
|
-
['def func (x)',
|
11
|
-
' a',
|
12
|
-
'end'])
|
13
|
-
expect(cop.offenses.size).to eq(1)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'registers an offense for defs with space before the parenthesis' do
|
17
|
-
inspect_source(cop,
|
18
|
-
['def self.func (x)',
|
19
|
-
' a',
|
20
|
-
'end'])
|
21
|
-
expect(cop.offenses.size).to eq(1)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'accepts a def without arguments' do
|
25
|
-
inspect_source(cop,
|
26
|
-
['def func',
|
27
|
-
' a',
|
28
|
-
'end'])
|
29
|
-
expect(cop.offenses).to be_empty
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'accepts a defs without arguments' do
|
33
|
-
inspect_source(cop,
|
34
|
-
['def self.func',
|
35
|
-
' a',
|
36
|
-
'end'])
|
37
|
-
expect(cop.offenses).to be_empty
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'accepts a def with arguments but no parentheses' do
|
41
|
-
inspect_source(cop,
|
42
|
-
['def func x',
|
43
|
-
' a',
|
44
|
-
'end'])
|
45
|
-
expect(cop.offenses).to be_empty
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'accepts a defs with arguments but no parentheses' do
|
49
|
-
inspect_source(cop,
|
50
|
-
['def self.func x',
|
51
|
-
' a',
|
52
|
-
'end'])
|
53
|
-
expect(cop.offenses).to be_empty
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'auto-corrects unwanted space' do
|
57
|
-
new_source = autocorrect_source(cop, ['def func (x)',
|
58
|
-
' a',
|
59
|
-
'end',
|
60
|
-
'def self.func (x)',
|
61
|
-
' a',
|
62
|
-
'end'])
|
63
|
-
expect(new_source).to eq(['def func(x)',
|
64
|
-
' a',
|
65
|
-
'end',
|
66
|
-
'def self.func(x)',
|
67
|
-
' a',
|
68
|
-
'end'].join("\n"))
|
69
|
-
end
|
70
|
-
end
|