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,23 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::UnlessElse do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for an unless with else' do
|
9
|
-
inspect_source(cop, ['unless x',
|
10
|
-
' a = 1',
|
11
|
-
'else',
|
12
|
-
' a = 0',
|
13
|
-
'end'])
|
14
|
-
expect(cop.offenses.size).to eq(1)
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'accepts an unless without else' do
|
18
|
-
inspect_source(cop, ['unless x',
|
19
|
-
' a = 1',
|
20
|
-
'end'])
|
21
|
-
expect(cop.offenses).to be_empty
|
22
|
-
end
|
23
|
-
end
|
@@ -1,90 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::UnneededCapitalW do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers no offense for normal arrays of strings' do
|
9
|
-
inspect_source(cop, '["one", "two", "three"]')
|
10
|
-
expect(cop.offenses).to be_empty
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'registers no offense for normal arrays of strings with interpolation' do
|
14
|
-
inspect_source(cop, '["one", "two", "th#{ ?r }ee"]')
|
15
|
-
expect(cop.offenses).to be_empty
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'registers an offense for misused %W' do
|
19
|
-
inspect_source(cop, '%W(cat dog)')
|
20
|
-
expect(cop.offenses.size).to eq(1)
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers no offense for %W with interpolation' do
|
24
|
-
inspect_source(cop, '%W(c#{ ?a }t dog)')
|
25
|
-
expect(cop.offenses).to be_empty
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'registers no offense for %W with special characters' do
|
29
|
-
source = ['def dangerous_characters',
|
30
|
-
' %W(\000) +',
|
31
|
-
' %W(\001) +',
|
32
|
-
' %W(\027) +',
|
33
|
-
' %W(\002) +',
|
34
|
-
' %W(\003) +',
|
35
|
-
' %W(\004) +',
|
36
|
-
' %W(\005) +',
|
37
|
-
' %W(\006) +',
|
38
|
-
' %W(\007) +',
|
39
|
-
' %W(\00) +',
|
40
|
-
' %W(\a)',
|
41
|
-
'end']
|
42
|
-
inspect_source(cop, source)
|
43
|
-
expect(cop.offenses).to be_empty
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'registers no offense for %w without interpolation' do
|
47
|
-
inspect_source(cop, '%w(cat dog)')
|
48
|
-
expect(cop.offenses).to be_empty
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'registers no offense for %w with interpolation-like syntax' do
|
52
|
-
inspect_source(cop, '%w(c#{ ?a }t dog)')
|
53
|
-
expect(cop.offenses).to be_empty
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'registers no offense for arrays with character constants' do
|
57
|
-
inspect_source(cop, '["one", ?\n]')
|
58
|
-
expect(cop.offenses).to be_empty
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'does not register an offense for array of non-words' do
|
62
|
-
inspect_source(cop, '["one space", "two", "three"]')
|
63
|
-
expect(cop.offenses).to be_empty
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'does not register an offense for array containing non-string' do
|
67
|
-
inspect_source(cop, '["one", "two", 3]')
|
68
|
-
expect(cop.offenses).to be_empty
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'does not register an offense for array with one element' do
|
72
|
-
inspect_source(cop, '["three"]')
|
73
|
-
expect(cop.offenses).to be_empty
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'does not register an offense for array with empty strings' do
|
77
|
-
inspect_source(cop, '["", "two", "three"]')
|
78
|
-
expect(cop.offenses).to be_empty
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'auto-corrects an array of words' do
|
82
|
-
new_source = autocorrect_source(cop, '%W(one two three)')
|
83
|
-
expect(new_source).to eq('%w(one two three)')
|
84
|
-
end
|
85
|
-
|
86
|
-
it 'auto-corrects an array of words with different bracket' do
|
87
|
-
new_source = autocorrect_source(cop, '%W[one two three]')
|
88
|
-
expect(new_source).to eq('%w[one two three]')
|
89
|
-
end
|
90
|
-
end
|
@@ -1,127 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::UnneededPercentQ do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
context 'with %q strings' do
|
9
|
-
let(:source) do
|
10
|
-
<<-END.strip_indent
|
11
|
-
%q('hi') # line 1
|
12
|
-
%q("hi")
|
13
|
-
%q(hi)
|
14
|
-
%q('"hi"')
|
15
|
-
%q('hi\\t') # line 5
|
16
|
-
END
|
17
|
-
end
|
18
|
-
let(:corrected) do
|
19
|
-
<<-END.strip_indent
|
20
|
-
"'hi'" # line 1
|
21
|
-
'"hi"'
|
22
|
-
'hi'
|
23
|
-
%q('"hi"')
|
24
|
-
%q('hi\\t') # line 5
|
25
|
-
END
|
26
|
-
end
|
27
|
-
before { inspect_source(cop, source) }
|
28
|
-
|
29
|
-
it 'registers an offense for only single quotes' do
|
30
|
-
expect(cop.offenses.map(&:line)).to include(1)
|
31
|
-
expect(cop.messages).to eq(['Use `%q` only for strings that contain ' \
|
32
|
-
'both single quotes and double quotes.'] * 3)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'registers an offense for only double quotes' do
|
36
|
-
expect(cop.offenses.map(&:line)).to include(2)
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'registers an offense for no quotes' do
|
40
|
-
expect(cop.offenses.map(&:line)).to include(3)
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'accepts a string with single quotes and double quotes' do
|
44
|
-
expect(cop.offenses.map(&:line)).not_to include(4)
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'accepts a string with a tab character' do
|
48
|
-
expect(cop.offenses.map(&:line)).not_to include(5)
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'auto-corrects' do
|
52
|
-
new_source = autocorrect_source(cop, source)
|
53
|
-
expect(new_source).to eq(corrected)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'with %Q strings' do
|
58
|
-
let(:source) do
|
59
|
-
<<-END.strip_indent
|
60
|
-
%Q(hi) # line 1
|
61
|
-
%Q("hi")
|
62
|
-
%Q(hi\#{4})
|
63
|
-
%Q('"hi"')
|
64
|
-
%Q("\\thi")
|
65
|
-
%Q("hi\#{4}")
|
66
|
-
/%Q?/ # line 7
|
67
|
-
END
|
68
|
-
end
|
69
|
-
let(:corrected) do
|
70
|
-
<<-END.strip_indent
|
71
|
-
"hi" # line 1
|
72
|
-
'"hi"'
|
73
|
-
"hi\#{4}"
|
74
|
-
%Q('"hi"')
|
75
|
-
%Q("\\thi")
|
76
|
-
%Q("hi\#{4}")
|
77
|
-
/%Q?/ # line 7
|
78
|
-
END
|
79
|
-
end
|
80
|
-
before { inspect_source(cop, source) }
|
81
|
-
|
82
|
-
it 'registers an offense for static string without quotes' do
|
83
|
-
expect(cop.offenses.map(&:line)).to include(1)
|
84
|
-
expect(cop.messages).to eq(['Use `%Q` only for strings that contain ' \
|
85
|
-
'both single quotes and double quotes, or ' \
|
86
|
-
'for dynamic strings that contain double ' \
|
87
|
-
'quotes.'] * 3)
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'registers an offense for static string with only double quotes' do
|
91
|
-
expect(cop.offenses.map(&:line)).to include(2)
|
92
|
-
end
|
93
|
-
|
94
|
-
it 'registers an offense for dynamic string without quotes' do
|
95
|
-
expect(cop.offenses.map(&:line)).to include(3)
|
96
|
-
end
|
97
|
-
|
98
|
-
it 'accepts a string with single quotes and double quotes' do
|
99
|
-
expect(cop.offenses.map(&:line)).not_to include(4)
|
100
|
-
end
|
101
|
-
|
102
|
-
it 'accepts a string with double quotes and tab character' do
|
103
|
-
expect(cop.offenses.map(&:line)).not_to include(5)
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'accepts a dynamic %Q string with double quotes' do
|
107
|
-
expect(cop.offenses.map(&:line)).not_to include(6)
|
108
|
-
end
|
109
|
-
|
110
|
-
it 'accepts regular expressions starting with %Q' do
|
111
|
-
expect(cop.offenses.map(&:line)).not_to include(7)
|
112
|
-
end
|
113
|
-
|
114
|
-
it 'auto-corrects' do
|
115
|
-
new_source = autocorrect_source(cop, source)
|
116
|
-
expect(new_source).to eq(corrected)
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'accepts a heredoc string that contains %q' do
|
121
|
-
inspect_source(cop, [' s = <<END',
|
122
|
-
"%q('hi') # line 1",
|
123
|
-
'%q("hi")',
|
124
|
-
'END'])
|
125
|
-
expect(cop.offenses).to be_empty
|
126
|
-
end
|
127
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::UnneededPercentX do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for a %x string without backquotes' do
|
9
|
-
inspect_source(cop, '%x(ls)')
|
10
|
-
expect(cop.messages)
|
11
|
-
.to eq(['Do not use `%x` unless the command string contains ' \
|
12
|
-
'backquotes.'])
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'accepts a %x string with backquotes' do
|
16
|
-
inspect_source(cop, '%x(echo `ls`)')
|
17
|
-
expect(cop.offenses).to be_empty
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'accepts a `` string without inner backquotes' do
|
21
|
-
inspect_source(cop, '`ls`')
|
22
|
-
expect(cop.offenses).to be_empty
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'accepts a `` string with inner backquotes' do
|
26
|
-
inspect_source(cop, '`echo \`ls\``')
|
27
|
-
expect(cop.offenses).to be_empty
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'auto-corrects' do
|
31
|
-
new_source = autocorrect_source(cop, '%x(ls)')
|
32
|
-
expect(new_source).to eq('`ls`')
|
33
|
-
end
|
34
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::VariableInterpolation do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for interpolated global variables in string' do
|
9
|
-
inspect_source(cop,
|
10
|
-
'puts "this is a #$test"')
|
11
|
-
expect(cop.offenses.size).to eq(1)
|
12
|
-
expect(cop.highlights).to eq(['$test'])
|
13
|
-
expect(cop.messages)
|
14
|
-
.to eq(['Replace interpolated variable `$test`' \
|
15
|
-
' with expression `#{$test}`.'])
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'registers an offense for interpolated global variables in regexp' do
|
19
|
-
inspect_source(cop,
|
20
|
-
'puts /this is a #$test/')
|
21
|
-
expect(cop.offenses.size).to eq(1)
|
22
|
-
expect(cop.highlights).to eq(['$test'])
|
23
|
-
expect(cop.messages)
|
24
|
-
.to eq(['Replace interpolated variable `$test`' \
|
25
|
-
' with expression `#{$test}`.'])
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'registers an offense for interpolated global variables in regexp' do
|
29
|
-
inspect_source(cop,
|
30
|
-
'puts `this is a #$test`')
|
31
|
-
expect(cop.offenses.size).to eq(1)
|
32
|
-
expect(cop.highlights).to eq(['$test'])
|
33
|
-
expect(cop.messages)
|
34
|
-
.to eq(['Replace interpolated variable `$test`' \
|
35
|
-
' with expression `#{$test}`.'])
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'registers an offense for interpolated regexp back references' do
|
39
|
-
inspect_source(cop,
|
40
|
-
'puts "this is a #$1"')
|
41
|
-
expect(cop.offenses.size).to eq(1)
|
42
|
-
expect(cop.highlights).to eq(['$1'])
|
43
|
-
expect(cop.messages)
|
44
|
-
.to eq(['Replace interpolated variable `$1` with expression `#{$1}`.'])
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'registers an offense for interpolated instance variables' do
|
48
|
-
inspect_source(cop,
|
49
|
-
'puts "this is a #@test"')
|
50
|
-
expect(cop.offenses.size).to eq(1)
|
51
|
-
expect(cop.highlights).to eq(['@test'])
|
52
|
-
expect(cop.messages)
|
53
|
-
.to eq(['Replace interpolated variable `@test`' \
|
54
|
-
' with expression `#{@test}`.'])
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'registers an offense for interpolated class variables' do
|
58
|
-
inspect_source(cop,
|
59
|
-
'puts "this is a #@@t"')
|
60
|
-
expect(cop.offenses.size).to eq(1)
|
61
|
-
expect(cop.highlights).to eq(['@@t'])
|
62
|
-
expect(cop.messages)
|
63
|
-
.to eq(['Replace interpolated variable `@@t` with expression `#{@@t}`.'])
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'does not register an offense for variables in expressions' do
|
67
|
-
inspect_source(cop,
|
68
|
-
'puts "this is a #{@test} #{@@t} #{$t} #{$1}"')
|
69
|
-
expect(cop.offenses).to be_empty
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'autocorrects by adding the missing {}' do
|
73
|
-
corrected = autocorrect_source(cop, ['"some #@var"'])
|
74
|
-
expect(corrected).to eq '"some #{@var}"'
|
75
|
-
end
|
76
|
-
end
|
@@ -1,107 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::VariableName, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
shared_examples 'always accepted' do
|
9
|
-
it 'accepts screaming snake case globals' do
|
10
|
-
inspect_source(cop, '$MY_GLOBAL = 0')
|
11
|
-
expect(cop.offenses).to be_empty
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'accepts screaming snake case constants' do
|
15
|
-
inspect_source(cop, 'MY_CONSTANT = 0')
|
16
|
-
expect(cop.offenses).to be_empty
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'accepts assigning to camel case constant' do
|
20
|
-
inspect_source(cop, 'Paren = Struct.new :left, :right, :kind')
|
21
|
-
expect(cop.offenses).to be_empty
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'accepts assignment with indexing of self' do
|
25
|
-
inspect_source(cop, 'self[:a] = b')
|
26
|
-
expect(cop.offenses).to be_empty
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context 'when configured for snake_case' do
|
31
|
-
let(:cop_config) { { 'EnforcedStyle' => 'snake_case' } }
|
32
|
-
|
33
|
-
it 'registers an offense for camel case in local variable name' do
|
34
|
-
inspect_source(cop, 'myLocal = 1')
|
35
|
-
expect(cop.offenses.size).to eq(1)
|
36
|
-
expect(cop.highlights).to eq(['myLocal'])
|
37
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
|
38
|
-
'camelCase')
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'registers an offense for correct + opposite' do
|
42
|
-
inspect_source(cop, ['my_local = 1',
|
43
|
-
'myLocal = 1'])
|
44
|
-
expect(cop.highlights).to eq(['myLocal'])
|
45
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'registers an offense for camel case in instance variable name' do
|
49
|
-
inspect_source(cop, '@myAttribute = 3')
|
50
|
-
expect(cop.offenses.size).to eq(1)
|
51
|
-
expect(cop.highlights).to eq(['@myAttribute'])
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'registers an offense for camel case in class variable name' do
|
55
|
-
inspect_source(cop, '@@myAttr = 2')
|
56
|
-
expect(cop.offenses.size).to eq(1)
|
57
|
-
expect(cop.highlights).to eq(['@@myAttr'])
|
58
|
-
end
|
59
|
-
|
60
|
-
include_examples 'always accepted'
|
61
|
-
end
|
62
|
-
|
63
|
-
context 'when configured for camelCase' do
|
64
|
-
let(:cop_config) { { 'EnforcedStyle' => 'camelCase' } }
|
65
|
-
|
66
|
-
it 'registers an offense for snake case in local variable name' do
|
67
|
-
inspect_source(cop, 'my_local = 1')
|
68
|
-
expect(cop.offenses.size).to eq(1)
|
69
|
-
expect(cop.highlights).to eq(['my_local'])
|
70
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
|
71
|
-
'snake_case')
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'registers an offense for opposite + correct' do
|
75
|
-
inspect_source(cop, ['my_local = 1',
|
76
|
-
'myLocal = 1'])
|
77
|
-
expect(cop.highlights).to eq(['my_local'])
|
78
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'accepts camel case in local variable name' do
|
82
|
-
inspect_source(cop, 'myLocal = 1')
|
83
|
-
expect(cop.offenses).to be_empty
|
84
|
-
end
|
85
|
-
|
86
|
-
it 'accepts camel case in instance variable name' do
|
87
|
-
inspect_source(cop, '@myAttribute = 3')
|
88
|
-
expect(cop.offenses).to be_empty
|
89
|
-
end
|
90
|
-
|
91
|
-
it 'accepts camel case in class variable name' do
|
92
|
-
inspect_source(cop, '@@myAttr = 2')
|
93
|
-
expect(cop.offenses).to be_empty
|
94
|
-
end
|
95
|
-
|
96
|
-
include_examples 'always accepted'
|
97
|
-
end
|
98
|
-
|
99
|
-
context 'when configured with a bad value' do
|
100
|
-
let(:cop_config) { { 'EnforcedStyle' => 'other' } }
|
101
|
-
|
102
|
-
it 'fails' do
|
103
|
-
expect { inspect_source(cop, 'a = 3') }
|
104
|
-
.to raise_error(RuntimeError)
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|