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,316 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::PercentLiteralDelimiters, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
let(:cop_config) do
|
9
|
-
{
|
10
|
-
'PreferredDelimiters' => {
|
11
|
-
'%' => '[]',
|
12
|
-
'%i' => '[]',
|
13
|
-
'%q' => '[]',
|
14
|
-
'%Q' => '[]',
|
15
|
-
'%r' => '[]',
|
16
|
-
'%s' => '[]',
|
17
|
-
'%w' => '[]',
|
18
|
-
'%W' => '[]',
|
19
|
-
'%x' => '[]'
|
20
|
-
}
|
21
|
-
}
|
22
|
-
end
|
23
|
-
|
24
|
-
context '`%` interpolated string' do
|
25
|
-
it 'does not register an offense for preferred delimiters' do
|
26
|
-
inspect_source(cop, '%[string]')
|
27
|
-
expect(cop.offenses).to be_empty
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'registers an offense for other delimiters' do
|
31
|
-
inspect_source(cop, '%(string)')
|
32
|
-
expect(cop.messages).to eq([
|
33
|
-
'`%`-literals should be delimited by `[` and `]`'
|
34
|
-
])
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'does not register an offense for other delimiters ' \
|
38
|
-
'when containing preferred delimiter characters' do
|
39
|
-
inspect_source(cop, '%([string])')
|
40
|
-
expect(cop.offenses).to be_empty
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'registers an offense for other delimiters ' \
|
44
|
-
'when containing preferred delimiter characters in interpolation' do
|
45
|
-
inspect_source(cop, '%(#{[1].first})')
|
46
|
-
expect(cop.messages.size).to eq(1)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
context '`%q` string' do
|
51
|
-
it 'does not register an offense for preferred delimiters' do
|
52
|
-
inspect_source(cop, '%q[string]')
|
53
|
-
expect(cop.offenses).to be_empty
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'registers an offense for other delimiters' do
|
57
|
-
inspect_source(cop, '%q(string)')
|
58
|
-
expect(cop.messages).to eq([
|
59
|
-
'`%q`-literals should be delimited by `[` and `]`'
|
60
|
-
])
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'does not register an offense for other delimiters ' \
|
64
|
-
'when containing preferred delimiter characters' do
|
65
|
-
inspect_source(cop, '%q([string])')
|
66
|
-
expect(cop.offenses).to be_empty
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context '`%Q` interpolated string' do
|
71
|
-
it 'does not register an offense for preferred delimiters' do
|
72
|
-
inspect_source(cop, '%Q[string]')
|
73
|
-
expect(cop.offenses).to be_empty
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'registers an offense for other delimiters' do
|
77
|
-
inspect_source(cop, '%Q(string)')
|
78
|
-
expect(cop.messages).to eq([
|
79
|
-
'`%Q`-literals should be delimited by `[` and `]`'
|
80
|
-
])
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'does not register an offense for other delimiters ' \
|
84
|
-
'when containing preferred delimiter characters' do
|
85
|
-
inspect_source(cop, '%Q([string])')
|
86
|
-
expect(cop.offenses).to be_empty
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'registers an offense for other delimiters ' \
|
90
|
-
'when containing preferred delimiter characters in interpolation' do
|
91
|
-
inspect_source(cop, '%Q(#{[1].first})')
|
92
|
-
expect(cop.messages.size).to eq(1)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
context '`%w` string array' do
|
97
|
-
it 'does not register an offense for preferred delimiters' do
|
98
|
-
inspect_source(cop, '%w[some words]')
|
99
|
-
expect(cop.offenses).to be_empty
|
100
|
-
end
|
101
|
-
|
102
|
-
it 'registers an offense for other delimiters' do
|
103
|
-
inspect_source(cop, '%w(some words)')
|
104
|
-
expect(cop.messages).to eq([
|
105
|
-
'`%w`-literals should be delimited by `[` and `]`'
|
106
|
-
])
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'does not register an offense for other delimiters ' \
|
110
|
-
'when containing preferred delimiter characters' do
|
111
|
-
inspect_source(cop, '%w([some] [words])')
|
112
|
-
expect(cop.offenses).to be_empty
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
context '`%W` interpolated string array' do
|
117
|
-
it 'does not register an offense for preferred delimiters' do
|
118
|
-
inspect_source(cop, '%W[some words]')
|
119
|
-
expect(cop.offenses).to be_empty
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'registers an offense for other delimiters' do
|
123
|
-
inspect_source(cop, '%W(some words)')
|
124
|
-
expect(cop.messages).to eq([
|
125
|
-
'`%W`-literals should be delimited by `[` and `]`'
|
126
|
-
])
|
127
|
-
end
|
128
|
-
|
129
|
-
it 'does not register an offense for other delimiters ' \
|
130
|
-
'when containing preferred delimiter characters' do
|
131
|
-
inspect_source(cop, '%W([some] [words])')
|
132
|
-
expect(cop.offenses).to be_empty
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'registers an offense for other delimiters ' \
|
136
|
-
'when containing preferred delimiter characters in interpolation' do
|
137
|
-
inspect_source(cop, '%W(#{[1].first})')
|
138
|
-
expect(cop.messages.size).to eq(1)
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
context '`%r` interpolated regular expression' do
|
143
|
-
it 'does not register an offense for preferred delimiters' do
|
144
|
-
inspect_source(cop, '%r[regexp]')
|
145
|
-
expect(cop.offenses).to be_empty
|
146
|
-
end
|
147
|
-
|
148
|
-
it 'registers an offense for other delimiters' do
|
149
|
-
inspect_source(cop, '%r(regexp)')
|
150
|
-
expect(cop.messages).to eq([
|
151
|
-
'`%r`-literals should be delimited by `[` and `]`'
|
152
|
-
])
|
153
|
-
end
|
154
|
-
|
155
|
-
it 'does not register an offense for other delimiters ' \
|
156
|
-
'when containing preferred delimiter characters' do
|
157
|
-
inspect_source(cop, '%r([regexp])')
|
158
|
-
expect(cop.offenses).to be_empty
|
159
|
-
end
|
160
|
-
|
161
|
-
it 'registers an offense for other delimiters ' \
|
162
|
-
'when containing preferred delimiter characters in interpolation' do
|
163
|
-
inspect_source(cop, '%r(#{[1].first})')
|
164
|
-
expect(cop.messages.size).to eq(1)
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
context '`%i` symbol array', ruby: 2 do
|
169
|
-
it 'does not register an offense for preferred delimiters' do
|
170
|
-
inspect_source(cop, '%i[some symbols]')
|
171
|
-
expect(cop.offenses).to be_empty
|
172
|
-
end
|
173
|
-
|
174
|
-
it 'registers an offense for other delimiters' do
|
175
|
-
inspect_source(cop, '%i(some symbols)')
|
176
|
-
expect(cop.messages).to eq([
|
177
|
-
'`%i`-literals should be delimited by `[` and `]`'
|
178
|
-
])
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
context '`%s` symbol' do
|
183
|
-
it 'does not register an offense for preferred delimiters' do
|
184
|
-
inspect_source(cop, '%s[symbol]')
|
185
|
-
expect(cop.offenses).to be_empty
|
186
|
-
end
|
187
|
-
|
188
|
-
it 'registers an offense for other delimiters' do
|
189
|
-
inspect_source(cop, '%s(symbol)')
|
190
|
-
expect(cop.messages).to eq([
|
191
|
-
'`%s`-literals should be delimited by `[` and `]`'
|
192
|
-
])
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
context '`%x` interpolated system call' do
|
197
|
-
it 'does not register an offense for preferred delimiters' do
|
198
|
-
inspect_source(cop, '%x[command]')
|
199
|
-
expect(cop.offenses).to be_empty
|
200
|
-
end
|
201
|
-
|
202
|
-
it 'registers an offense for other delimiters' do
|
203
|
-
inspect_source(cop, '%x(command)')
|
204
|
-
expect(cop.messages).to eq([
|
205
|
-
'`%x`-literals should be delimited by `[` and `]`'
|
206
|
-
])
|
207
|
-
end
|
208
|
-
|
209
|
-
it 'does not register an offense for other delimiters ' \
|
210
|
-
'when containing preferred delimiter characters' do
|
211
|
-
inspect_source(cop, '%x([command])')
|
212
|
-
expect(cop.offenses).to be_empty
|
213
|
-
end
|
214
|
-
|
215
|
-
it 'registers an offense for other delimiters ' \
|
216
|
-
'when containing preferred delimiter characters in interpolation' do
|
217
|
-
inspect_source(cop, '%x(#{[1].first})')
|
218
|
-
expect(cop.messages.size).to eq(1)
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
|
-
context 'auto-correct' do
|
223
|
-
it 'fixes a string' do
|
224
|
-
new_source = autocorrect_source(cop, '%(string)')
|
225
|
-
expect(new_source).to eq('%[string]')
|
226
|
-
end
|
227
|
-
|
228
|
-
it 'fixes a string array' do
|
229
|
-
new_source = autocorrect_source(cop, '%w(some words)')
|
230
|
-
expect(new_source).to eq('%w[some words]')
|
231
|
-
end
|
232
|
-
|
233
|
-
it 'fixes a string array in a scope' do
|
234
|
-
new_source = autocorrect_source(cop, ['module Foo',
|
235
|
-
' class Bar',
|
236
|
-
' def baz',
|
237
|
-
' %(one two)',
|
238
|
-
' end',
|
239
|
-
' end',
|
240
|
-
' end'])
|
241
|
-
expect(new_source).to eq(['module Foo',
|
242
|
-
' class Bar',
|
243
|
-
' def baz',
|
244
|
-
' %[one two]',
|
245
|
-
' end',
|
246
|
-
' end',
|
247
|
-
' end'].join("\n"))
|
248
|
-
end
|
249
|
-
|
250
|
-
it 'fixes a regular expression' do
|
251
|
-
original_source = '%r(.*)'
|
252
|
-
new_source = autocorrect_source(cop, original_source)
|
253
|
-
expect(new_source).to eq('%r[.*]')
|
254
|
-
end
|
255
|
-
|
256
|
-
it 'fixes a string with interpolation' do
|
257
|
-
original_source = '%Q|#{with_interpolation}|'
|
258
|
-
new_source = autocorrect_source(cop, original_source)
|
259
|
-
expect(new_source).to eq('%Q[#{with_interpolation}]')
|
260
|
-
end
|
261
|
-
|
262
|
-
it 'fixes a regular expression with interpolation' do
|
263
|
-
original_source = '%r|#{with_interpolation}|'
|
264
|
-
new_source = autocorrect_source(cop, original_source)
|
265
|
-
expect(new_source).to eq('%r[#{with_interpolation}]')
|
266
|
-
end
|
267
|
-
|
268
|
-
it 'fixes a regular expression with option' do
|
269
|
-
original_source = '%r(.*)i'
|
270
|
-
new_source = autocorrect_source(cop, original_source)
|
271
|
-
expect(new_source).to eq('%r[.*]i')
|
272
|
-
end
|
273
|
-
|
274
|
-
it 'preserves line breaks when fixing a multiline array' do
|
275
|
-
new_source = autocorrect_source(cop, ['%w(', 'some', 'words', ')'])
|
276
|
-
expect(new_source).to eq(['%w[',
|
277
|
-
'some',
|
278
|
-
'words',
|
279
|
-
']'].join("\n"))
|
280
|
-
end
|
281
|
-
|
282
|
-
it 'preserves indentation when correcting a multiline array' do
|
283
|
-
original_source = [
|
284
|
-
' array = %w(',
|
285
|
-
' first',
|
286
|
-
' second',
|
287
|
-
' )'
|
288
|
-
]
|
289
|
-
corrected_source = [
|
290
|
-
' array = %w[',
|
291
|
-
' first',
|
292
|
-
' second',
|
293
|
-
' ]'
|
294
|
-
].join("\n")
|
295
|
-
new_source = autocorrect_source(cop, original_source)
|
296
|
-
expect(new_source).to eq(corrected_source)
|
297
|
-
end
|
298
|
-
|
299
|
-
it 'preserves irregular indentation when correcting a multiline array' do
|
300
|
-
original_source = [
|
301
|
-
' array = %w(',
|
302
|
-
' first',
|
303
|
-
' second',
|
304
|
-
')'
|
305
|
-
]
|
306
|
-
corrected_source = [
|
307
|
-
' array = %w[',
|
308
|
-
' first',
|
309
|
-
' second',
|
310
|
-
']'
|
311
|
-
].join("\n")
|
312
|
-
new_source = autocorrect_source(cop, original_source)
|
313
|
-
expect(new_source).to eq(corrected_source)
|
314
|
-
end
|
315
|
-
end
|
316
|
-
end
|
@@ -1,122 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::PercentQLiterals, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
shared_examples 'accepts quote characters' do
|
9
|
-
it 'accepts single quotes' do
|
10
|
-
inspect_source(cop, "'hi'")
|
11
|
-
expect(cop.offenses).to be_empty
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'accepts double quotes' do
|
15
|
-
inspect_source(cop, '"hi"')
|
16
|
-
expect(cop.offenses).to be_empty
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
shared_examples 'accepts any q string with backslash t' do
|
21
|
-
context 'with special characters' do
|
22
|
-
it 'accepts %q' do
|
23
|
-
inspect_source(cop, '%q(\t)')
|
24
|
-
expect(cop.offenses).to be_empty
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'accepts %Q' do
|
28
|
-
inspect_source(cop, '%Q(\t)')
|
29
|
-
expect(cop.offenses).to be_empty
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context 'when EnforcedStyle is lower_case_q' do
|
35
|
-
let(:cop_config) { { 'EnforcedStyle' => 'lower_case_q' } }
|
36
|
-
|
37
|
-
context 'without interpolation' do
|
38
|
-
it 'accepts %q' do
|
39
|
-
inspect_source(cop, '%q(hi)')
|
40
|
-
expect(cop.offenses).to be_empty
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'registers offense for %Q' do
|
44
|
-
inspect_source(cop, '%Q(hi)')
|
45
|
-
expect(cop.messages)
|
46
|
-
.to eq(['Do not use `%Q` unless interpolation is needed. Use `%q`.'])
|
47
|
-
expect(cop.highlights).to eq(['%Q('])
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'auto-corrects' do
|
51
|
-
new_source = autocorrect_source(cop, '%Q(hi)')
|
52
|
-
expect(new_source).to eq('%q(hi)')
|
53
|
-
end
|
54
|
-
|
55
|
-
include_examples 'accepts quote characters'
|
56
|
-
include_examples 'accepts any q string with backslash t'
|
57
|
-
end
|
58
|
-
|
59
|
-
context 'with interpolation' do
|
60
|
-
it 'accepts %Q' do
|
61
|
-
inspect_source(cop, '%Q(#{1 + 2})')
|
62
|
-
expect(cop.offenses).to be_empty
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'accepts %q' do
|
66
|
-
# This is most probably a mistake, but not this cop's responsibility.
|
67
|
-
inspect_source(cop, '%q(#{1 + 2})')
|
68
|
-
expect(cop.offenses).to be_empty
|
69
|
-
end
|
70
|
-
|
71
|
-
include_examples 'accepts quote characters'
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context 'when EnforcedStyle is upper_case_q' do
|
76
|
-
let(:cop_config) { { 'EnforcedStyle' => 'upper_case_q' } }
|
77
|
-
|
78
|
-
context 'without interpolation' do
|
79
|
-
it 'registers offense for %q' do
|
80
|
-
inspect_source(cop, '%q(hi)')
|
81
|
-
expect(cop.messages).to eq(['Use `%Q` instead of `%q`.'])
|
82
|
-
expect(cop.highlights).to eq(['%q('])
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'accepts %Q' do
|
86
|
-
inspect_source(cop, '%Q(hi)')
|
87
|
-
expect(cop.offenses).to be_empty
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'auto-corrects' do
|
91
|
-
new_source = autocorrect_source(cop, '%q[hi]')
|
92
|
-
expect(new_source).to eq('%Q[hi]')
|
93
|
-
end
|
94
|
-
|
95
|
-
include_examples 'accepts quote characters'
|
96
|
-
include_examples 'accepts any q string with backslash t'
|
97
|
-
end
|
98
|
-
|
99
|
-
context 'with interpolation' do
|
100
|
-
it 'accepts %Q' do
|
101
|
-
inspect_source(cop, '%Q(#{1 + 2})')
|
102
|
-
expect(cop.offenses).to be_empty
|
103
|
-
end
|
104
|
-
|
105
|
-
it 'accepts %q' do
|
106
|
-
# It's strange if interpolation syntax appears inside a static string,
|
107
|
-
# but we can't be sure if it's a mistake or not. Changing it to %Q
|
108
|
-
# would alter semantics, so we leave it as it is.
|
109
|
-
inspect_source(cop, '%q(#{1 + 2})')
|
110
|
-
expect(cop.offenses).to be_empty
|
111
|
-
end
|
112
|
-
|
113
|
-
it 'does not auto-correct' do
|
114
|
-
source = '%q(#{1 + 2})'
|
115
|
-
new_source = autocorrect_source(cop, source)
|
116
|
-
expect(new_source).to eq(source)
|
117
|
-
end
|
118
|
-
|
119
|
-
include_examples 'accepts quote characters'
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::PerlBackrefs do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for $1' do
|
9
|
-
inspect_source(cop, 'puts $1')
|
10
|
-
expect(cop.offenses.size).to eq(1)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'auto-corrects $1 to Regexp.last_match[1]' do
|
14
|
-
new_source = autocorrect_source(cop, '$1')
|
15
|
-
expect(new_source).to eq('Regexp.last_match(1)')
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'auto-corrects #$1 to #{Regexp.last_match[1]}' do
|
19
|
-
new_source = autocorrect_source(cop, '"#$1"')
|
20
|
-
expect(new_source).to eq('"#{Regexp.last_match(1)}"')
|
21
|
-
end
|
22
|
-
end
|