rubocop 0.29.1 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rubocop might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +73 -1
- data/README.md +11 -2
- data/config/default.yml +194 -6
- data/config/disabled.yml +25 -1
- data/config/enabled.yml +74 -12
- data/lib/rubocop.rb +19 -2
- data/lib/rubocop/config.rb +23 -3
- data/lib/rubocop/config_loader.rb +9 -1
- data/lib/rubocop/cop/autocorrect_logic.rb +26 -0
- data/lib/rubocop/cop/cop.rb +33 -17
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +16 -4
- data/lib/rubocop/cop/lint/block_alignment.rb +5 -14
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +61 -0
- data/lib/rubocop/cop/lint/void.rb +11 -3
- data/lib/rubocop/cop/mixin/on_normal_if_unless.rb +17 -0
- data/lib/rubocop/cop/performance/detect.rb +72 -0
- data/lib/rubocop/cop/performance/flat_map.rb +64 -0
- data/lib/rubocop/cop/performance/reverse_each.rb +43 -0
- data/lib/rubocop/cop/performance/sample.rb +58 -0
- data/lib/rubocop/cop/performance/size.rb +64 -0
- data/lib/rubocop/cop/rails/date.rb +121 -0
- data/lib/rubocop/cop/rails/find_by.rb +52 -0
- data/lib/rubocop/cop/rails/find_each.rb +41 -0
- data/lib/rubocop/cop/rails/time_zone.rb +93 -0
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +45 -0
- data/lib/rubocop/cop/style/block_delimiters.rb +186 -0
- data/lib/rubocop/cop/style/closing_parenthesis_indentation.rb +76 -0
- data/lib/rubocop/cop/style/command_literal.rb +120 -0
- data/lib/rubocop/cop/style/copyright.rb +87 -0
- data/lib/rubocop/cop/style/documentation.rb +32 -0
- data/lib/rubocop/cop/style/empty_else.rb +85 -16
- data/lib/rubocop/cop/style/encoding.rb +14 -2
- data/lib/rubocop/cop/style/end_of_line.rb +5 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +86 -23
- data/lib/rubocop/cop/style/if_unless_modifier.rb +15 -0
- data/lib/rubocop/cop/style/indentation_consistency.rb +13 -6
- data/lib/rubocop/cop/style/indentation_width.rb +34 -10
- data/lib/rubocop/cop/style/lambda.rb +32 -17
- data/lib/rubocop/cop/style/line_end_concatenation.rb +4 -0
- data/lib/rubocop/cop/style/missing_else.rb +72 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +89 -58
- data/lib/rubocop/cop/style/space_around_operators.rb +13 -2
- data/lib/rubocop/cop/style/space_before_block_braces.rb +3 -3
- data/lib/rubocop/cop/style/space_inside_block_braces.rb +9 -5
- data/lib/rubocop/cop/style/symbol_literal.rb +36 -0
- data/lib/rubocop/cop/style/trailing_blank_lines.rb +7 -0
- data/lib/rubocop/cop/style/trailing_comma.rb +21 -7
- data/lib/rubocop/cop/style/trivial_accessors.rb +17 -3
- data/lib/rubocop/cop/style/unneeded_capital_w.rb +4 -6
- data/lib/rubocop/cop/style/while_until_modifier.rb +10 -0
- data/lib/rubocop/cop/util.rb +24 -19
- data/lib/rubocop/cop/variable_force.rb +14 -0
- data/lib/rubocop/cop/variable_force/reference.rb +10 -4
- data/lib/rubocop/formatter/html_formatter.rb +10 -4
- data/lib/rubocop/formatter/text_util.rb +5 -7
- data/lib/rubocop/options.rb +47 -45
- data/lib/rubocop/path_util.rb +12 -8
- data/lib/rubocop/processed_source.rb +12 -1
- data/lib/rubocop/rake_task.rb +2 -2
- data/lib/rubocop/version.rb +1 -1
- data/relnotes/v0.30.0.md +145 -0
- data/rubocop.gemspec +15 -3
- metadata +22 -545
- data/.gitignore +0 -54
- data/.rspec +0 -1
- data/.rubocop.yml +0 -11
- data/.rubocop_todo.yml +0 -28
- data/.travis.yml +0 -22
- data/Gemfile +0 -15
- data/Rakefile +0 -41
- data/lib/rubocop/cop/style/blocks.rb +0 -80
- data/lib/rubocop/cop/style/unneeded_percent_x.rb +0 -25
- data/logo/rubocop-final-logo.eps +0 -0
- data/spec/.rubocop.yml +0 -5
- data/spec/fixtures/html_formatter/expected.html +0 -495
- data/spec/fixtures/html_formatter/project/app/controllers/application_controller.rb +0 -5
- data/spec/fixtures/html_formatter/project/app/controllers/books_controller.rb +0 -74
- data/spec/fixtures/html_formatter/project/app/models/book.rb +0 -5
- data/spec/isolated_environment_spec.rb +0 -24
- data/spec/project_spec.rb +0 -119
- data/spec/rubocop/cli_spec.rb +0 -2740
- data/spec/rubocop/comment_config_spec.rb +0 -105
- data/spec/rubocop/config_loader_spec.rb +0 -377
- data/spec/rubocop/config_spec.rb +0 -235
- data/spec/rubocop/config_store_spec.rb +0 -53
- data/spec/rubocop/cop/commissioner_spec.rb +0 -85
- data/spec/rubocop/cop/cop_spec.rb +0 -135
- data/spec/rubocop/cop/corrector_spec.rb +0 -59
- data/spec/rubocop/cop/force_spec.rb +0 -29
- data/spec/rubocop/cop/lint/ambiguous_operator_spec.rb +0 -113
- data/spec/rubocop/cop/lint/ambiguous_regexp_literal_spec.rb +0 -35
- data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +0 -130
- data/spec/rubocop/cop/lint/block_alignment_spec.rb +0 -533
- data/spec/rubocop/cop/lint/condition_position_spec.rb +0 -51
- data/spec/rubocop/cop/lint/debugger_spec.rb +0 -73
- data/spec/rubocop/cop/lint/def_end_alignment_spec.rb +0 -108
- data/spec/rubocop/cop/lint/deprecated_class_methods_spec.rb +0 -38
- data/spec/rubocop/cop/lint/duplicate_methods_spec.rb +0 -189
- data/spec/rubocop/cop/lint/else_layout_spec.rb +0 -65
- data/spec/rubocop/cop/lint/empty_ensure_spec.rb +0 -27
- data/spec/rubocop/cop/lint/empty_interpolation_spec.rb +0 -18
- data/spec/rubocop/cop/lint/end_alignment_spec.rb +0 -91
- data/spec/rubocop/cop/lint/end_in_method_spec.rb +0 -29
- data/spec/rubocop/cop/lint/ensure_return_spec.rb +0 -39
- data/spec/rubocop/cop/lint/eval_spec.rb +0 -33
- data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +0 -30
- data/spec/rubocop/cop/lint/invalid_character_literal_spec.rb +0 -33
- data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +0 -172
- data/spec/rubocop/cop/lint/literal_in_interpolation_spec.rb +0 -31
- data/spec/rubocop/cop/lint/loop_spec.rb +0 -27
- data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +0 -57
- data/spec/rubocop/cop/lint/require_parentheses_spec.rb +0 -82
- data/spec/rubocop/cop/lint/rescue_exception_spec.rb +0 -123
- data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +0 -237
- data/spec/rubocop/cop/lint/space_before_first_arg_spec.rb +0 -66
- data/spec/rubocop/cop/lint/string_conversion_in_interpolation_spec.rb +0 -51
- data/spec/rubocop/cop/lint/syntax_spec.rb +0 -34
- data/spec/rubocop/cop/lint/underscore_prefixed_variable_name_spec.rb +0 -179
- data/spec/rubocop/cop/lint/unreachable_code_spec.rb +0 -63
- data/spec/rubocop/cop/lint/unused_block_argument_spec.rb +0 -231
- data/spec/rubocop/cop/lint/unused_method_argument_spec.rb +0 -278
- data/spec/rubocop/cop/lint/useless_access_modifier_spec.rb +0 -192
- data/spec/rubocop/cop/lint/useless_assignment_spec.rb +0 -1778
- data/spec/rubocop/cop/lint/useless_comparison_spec.rb +0 -30
- data/spec/rubocop/cop/lint/useless_else_without_rescue_spec.rb +0 -48
- data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +0 -211
- data/spec/rubocop/cop/lint/void_spec.rb +0 -64
- data/spec/rubocop/cop/metrics/abc_size_spec.rb +0 -109
- data/spec/rubocop/cop/metrics/block_nesting_spec.rb +0 -156
- data/spec/rubocop/cop/metrics/class_length_spec.rb +0 -131
- data/spec/rubocop/cop/metrics/cyclomatic_complexity_spec.rb +0 -204
- data/spec/rubocop/cop/metrics/line_length_spec.rb +0 -136
- data/spec/rubocop/cop/metrics/method_length_spec.rb +0 -147
- data/spec/rubocop/cop/metrics/parameter_lists_spec.rb +0 -44
- data/spec/rubocop/cop/metrics/perceived_complexity_spec.rb +0 -222
- data/spec/rubocop/cop/offense_spec.rb +0 -133
- data/spec/rubocop/cop/rails/action_filter_spec.rb +0 -64
- data/spec/rubocop/cop/rails/default_scope_spec.rb +0 -37
- data/spec/rubocop/cop/rails/delegate_spec.rb +0 -177
- data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +0 -13
- data/spec/rubocop/cop/rails/output_spec.rb +0 -37
- data/spec/rubocop/cop/rails/read_write_attribute_spec.rb +0 -130
- data/spec/rubocop/cop/rails/scope_args_spec.rb +0 -25
- data/spec/rubocop/cop/rails/validation_spec.rb +0 -28
- data/spec/rubocop/cop/severity_spec.rb +0 -113
- data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +0 -421
- data/spec/rubocop/cop/style/accessor_method_name_spec.rb +0 -81
- data/spec/rubocop/cop/style/alias_spec.rb +0 -59
- data/spec/rubocop/cop/style/align_array_spec.rb +0 -123
- data/spec/rubocop/cop/style/align_hash_spec.rb +0 -411
- data/spec/rubocop/cop/style/align_parameters_spec.rb +0 -431
- data/spec/rubocop/cop/style/and_or_spec.rb +0 -235
- data/spec/rubocop/cop/style/array_join_spec.rb +0 -29
- data/spec/rubocop/cop/style/ascii_comments_spec.rb +0 -21
- data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +0 -36
- data/spec/rubocop/cop/style/attr_spec.rb +0 -29
- data/spec/rubocop/cop/style/bare_percent_literals_spec.rb +0 -132
- data/spec/rubocop/cop/style/begin_block_spec.rb +0 -13
- data/spec/rubocop/cop/style/block_comments_spec.rb +0 -45
- data/spec/rubocop/cop/style/block_end_newline_spec.rb +0 -61
- data/spec/rubocop/cop/style/blocks_spec.rb +0 -121
- data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +0 -288
- data/spec/rubocop/cop/style/case_equality_spec.rb +0 -13
- data/spec/rubocop/cop/style/case_indentation_spec.rb +0 -293
- data/spec/rubocop/cop/style/character_literal_spec.rb +0 -37
- data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +0 -40
- data/spec/rubocop/cop/style/class_and_module_children_spec.rb +0 -133
- data/spec/rubocop/cop/style/class_check_spec.rb +0 -41
- data/spec/rubocop/cop/style/class_methods_spec.rb +0 -80
- data/spec/rubocop/cop/style/class_vars_spec.rb +0 -19
- data/spec/rubocop/cop/style/collection_methods_spec.rb +0 -48
- data/spec/rubocop/cop/style/colon_method_call_spec.rb +0 -65
- data/spec/rubocop/cop/style/comment_annotation_spec.rb +0 -86
- data/spec/rubocop/cop/style/comment_indentation_spec.rb +0 -179
- data/spec/rubocop/cop/style/constant_name_spec.rb +0 -65
- data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +0 -43
- data/spec/rubocop/cop/style/deprecated_hash_methods_spec.rb +0 -45
- data/spec/rubocop/cop/style/documentation_spec.rb +0 -146
- data/spec/rubocop/cop/style/dot_position_spec.rb +0 -132
- data/spec/rubocop/cop/style/double_negation_spec.rb +0 -22
- data/spec/rubocop/cop/style/each_with_object_spec.rb +0 -73
- data/spec/rubocop/cop/style/else_alignment_spec.rb +0 -506
- data/spec/rubocop/cop/style/empty_else_spec.rb +0 -100
- data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +0 -135
- data/spec/rubocop/cop/style/empty_lines_around_access_modifier_spec.rb +0 -178
- data/spec/rubocop/cop/style/empty_lines_around_block_body_spec.rb +0 -103
- data/spec/rubocop/cop/style/empty_lines_around_class_body_spec.rb +0 -135
- data/spec/rubocop/cop/style/empty_lines_around_method_body_spec.rb +0 -90
- data/spec/rubocop/cop/style/empty_lines_around_module_body_spec.rb +0 -79
- data/spec/rubocop/cop/style/empty_lines_spec.rb +0 -51
- data/spec/rubocop/cop/style/empty_literal_spec.rb +0 -117
- data/spec/rubocop/cop/style/encoding_spec.rb +0 -139
- data/spec/rubocop/cop/style/end_block_spec.rb +0 -13
- data/spec/rubocop/cop/style/end_of_line_spec.rb +0 -65
- data/spec/rubocop/cop/style/even_odd_spec.rb +0 -164
- data/spec/rubocop/cop/style/extra_spacing_spec.rb +0 -68
- data/spec/rubocop/cop/style/file_name_spec.rb +0 -84
- data/spec/rubocop/cop/style/first_parameter_indentation_spec.rb +0 -304
- data/spec/rubocop/cop/style/flip_flop_spec.rb +0 -23
- data/spec/rubocop/cop/style/for_spec.rb +0 -105
- data/spec/rubocop/cop/style/format_string_spec.rb +0 -184
- data/spec/rubocop/cop/style/global_vars_spec.rb +0 -34
- data/spec/rubocop/cop/style/guard_clause_spec.rb +0 -172
- data/spec/rubocop/cop/style/hash_syntax_spec.rb +0 -137
- data/spec/rubocop/cop/style/if_unless_modifier_spec.rb +0 -146
- data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +0 -24
- data/spec/rubocop/cop/style/indent_array_spec.rb +0 -173
- data/spec/rubocop/cop/style/indent_hash_spec.rb +0 -367
- data/spec/rubocop/cop/style/indentation_consistency_spec.rb +0 -509
- data/spec/rubocop/cop/style/indentation_width_spec.rb +0 -885
- data/spec/rubocop/cop/style/infinite_loop_spec.rb +0 -48
- data/spec/rubocop/cop/style/inline_comment_spec.rb +0 -13
- data/spec/rubocop/cop/style/lambda_call_spec.rb +0 -65
- data/spec/rubocop/cop/style/lambda_spec.rb +0 -76
- data/spec/rubocop/cop/style/leading_comment_space_spec.rb +0 -64
- data/spec/rubocop/cop/style/line_end_concatenation_spec.rb +0 -184
- data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +0 -59
- data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +0 -60
- data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +0 -108
- data/spec/rubocop/cop/style/method_name_spec.rb +0 -125
- data/spec/rubocop/cop/style/module_function_spec.rb +0 -24
- data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +0 -78
- data/spec/rubocop/cop/style/multiline_block_layout_spec.rb +0 -199
- data/spec/rubocop/cop/style/multiline_if_then_spec.rb +0 -134
- data/spec/rubocop/cop/style/multiline_operation_indentation_spec.rb +0 -464
- data/spec/rubocop/cop/style/multiline_ternary_operator_spec.rb +0 -18
- data/spec/rubocop/cop/style/negated_if_spec.rb +0 -102
- data/spec/rubocop/cop/style/negated_while_spec.rb +0 -64
- data/spec/rubocop/cop/style/nested_ternary_operator_spec.rb +0 -21
- data/spec/rubocop/cop/style/next_spec.rb +0 -301
- data/spec/rubocop/cop/style/nil_comparison_spec.rb +0 -29
- data/spec/rubocop/cop/style/non_nil_check_spec.rb +0 -132
- data/spec/rubocop/cop/style/not_spec.rb +0 -28
- data/spec/rubocop/cop/style/numeric_literals_spec.rb +0 -80
- data/spec/rubocop/cop/style/one_line_conditional_spec.rb +0 -13
- data/spec/rubocop/cop/style/op_method_spec.rb +0 -85
- data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +0 -161
- data/spec/rubocop/cop/style/percent_literal_delimiters_spec.rb +0 -316
- data/spec/rubocop/cop/style/percent_q_literals_spec.rb +0 -122
- data/spec/rubocop/cop/style/perl_backrefs_spec.rb +0 -22
- data/spec/rubocop/cop/style/predicate_name_spec.rb +0 -57
- data/spec/rubocop/cop/style/proc_spec.rb +0 -27
- data/spec/rubocop/cop/style/raise_args_spec.rb +0 -87
- data/spec/rubocop/cop/style/redundant_begin_spec.rb +0 -121
- data/spec/rubocop/cop/style/redundant_exception_spec.rb +0 -59
- data/spec/rubocop/cop/style/redundant_return_spec.rb +0 -171
- data/spec/rubocop/cop/style/redundant_self_spec.rb +0 -186
- data/spec/rubocop/cop/style/regexp_literal_spec.rb +0 -188
- data/spec/rubocop/cop/style/rescue_modifier_spec.rb +0 -116
- data/spec/rubocop/cop/style/self_assignment_spec.rb +0 -49
- data/spec/rubocop/cop/style/semicolon_spec.rb +0 -114
- data/spec/rubocop/cop/style/signal_exception_spec.rb +0 -289
- data/spec/rubocop/cop/style/single_line_block_params_spec.rb +0 -82
- data/spec/rubocop/cop/style/single_line_methods_spec.rb +0 -94
- data/spec/rubocop/cop/style/single_space_before_first_arg_spec.rb +0 -63
- data/spec/rubocop/cop/style/space_after_colon_spec.rb +0 -55
- data/spec/rubocop/cop/style/space_after_comma_spec.rb +0 -30
- data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +0 -84
- data/spec/rubocop/cop/style/space_after_method_name_spec.rb +0 -70
- data/spec/rubocop/cop/style/space_after_not_spec.rb +0 -22
- data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +0 -23
- data/spec/rubocop/cop/style/space_around_block_parameters_spec.rb +0 -155
- data/spec/rubocop/cop/style/space_around_equals_in_parameter_default_spec.rb +0 -95
- data/spec/rubocop/cop/style/space_around_operators_spec.rb +0 -330
- data/spec/rubocop/cop/style/space_before_block_braces_spec.rb +0 -73
- data/spec/rubocop/cop/style/space_before_comma_spec.rb +0 -42
- data/spec/rubocop/cop/style/space_before_comment_spec.rb +0 -34
- data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +0 -70
- data/spec/rubocop/cop/style/space_before_semicolon_spec.rb +0 -28
- data/spec/rubocop/cop/style/space_inside_block_braces_spec.rb +0 -317
- data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +0 -83
- data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +0 -147
- data/spec/rubocop/cop/style/space_inside_parens_spec.rb +0 -44
- data/spec/rubocop/cop/style/space_inside_range_literal_spec.rb +0 -64
- data/spec/rubocop/cop/style/special_global_vars_spec.rb +0 -62
- data/spec/rubocop/cop/style/string_literals_in_interpolation_spec.rb +0 -99
- data/spec/rubocop/cop/style/string_literals_spec.rb +0 -228
- data/spec/rubocop/cop/style/struct_inheritance_spec.rb +0 -44
- data/spec/rubocop/cop/style/symbol_array_spec.rb +0 -37
- data/spec/rubocop/cop/style/symbol_proc_spec.rb +0 -100
- data/spec/rubocop/cop/style/tab_spec.rb +0 -47
- data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +0 -83
- data/spec/rubocop/cop/style/trailing_comma_spec.rb +0 -390
- data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +0 -31
- data/spec/rubocop/cop/style/trivial_accessors_spec.rb +0 -558
- data/spec/rubocop/cop/style/unless_else_spec.rb +0 -23
- data/spec/rubocop/cop/style/unneeded_capital_w_spec.rb +0 -90
- data/spec/rubocop/cop/style/unneeded_percent_q_spec.rb +0 -127
- data/spec/rubocop/cop/style/unneeded_percent_x_spec.rb +0 -34
- data/spec/rubocop/cop/style/variable_interpolation_spec.rb +0 -76
- data/spec/rubocop/cop/style/variable_name_spec.rb +0 -107
- data/spec/rubocop/cop/style/when_then_spec.rb +0 -42
- data/spec/rubocop/cop/style/while_until_do_spec.rb +0 -55
- data/spec/rubocop/cop/style/while_until_modifier_spec.rb +0 -93
- data/spec/rubocop/cop/style/word_array_spec.rb +0 -117
- data/spec/rubocop/cop/team_spec.rb +0 -190
- data/spec/rubocop/cop/util_spec.rb +0 -102
- data/spec/rubocop/cop/variable_force/assignment_spec.rb +0 -200
- data/spec/rubocop/cop/variable_force/locatable_spec.rb +0 -699
- data/spec/rubocop/cop/variable_force/reference_spec.rb +0 -19
- data/spec/rubocop/cop/variable_force/scope_spec.rb +0 -319
- data/spec/rubocop/cop/variable_force/variable_spec.rb +0 -59
- data/spec/rubocop/cop/variable_force/variable_table_spec.rb +0 -276
- data/spec/rubocop/cop/variable_force_spec.rb +0 -26
- data/spec/rubocop/formatter/base_formatter_spec.rb +0 -191
- data/spec/rubocop/formatter/clang_style_formatter_spec.rb +0 -114
- data/spec/rubocop/formatter/colorizable_spec.rb +0 -107
- data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +0 -50
- data/spec/rubocop/formatter/disabled_lines_formatter_spec.rb +0 -67
- data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +0 -63
- data/spec/rubocop/formatter/file_list_formatter_spec.rb +0 -33
- data/spec/rubocop/formatter/formatter_set_spec.rb +0 -141
- data/spec/rubocop/formatter/fuubar_style_formatter_spec.rb +0 -129
- data/spec/rubocop/formatter/html_formatter_spec.rb +0 -48
- data/spec/rubocop/formatter/json_formatter_spec.rb +0 -152
- data/spec/rubocop/formatter/offense_count_formatter_spec.rb +0 -75
- data/spec/rubocop/formatter/progress_formatter_spec.rb +0 -182
- data/spec/rubocop/formatter/simple_text_formatter_spec.rb +0 -135
- data/spec/rubocop/formatter/text_util_spec.rb +0 -55
- data/spec/rubocop/options_spec.rb +0 -181
- data/spec/rubocop/path_util_spec.rb +0 -77
- data/spec/rubocop/processed_source_spec.rb +0 -184
- data/spec/rubocop/rake_task_spec.rb +0 -122
- data/spec/rubocop/runner_spec.rb +0 -99
- data/spec/rubocop/string_util_spec.rb +0 -46
- data/spec/rubocop/target_finder_spec.rb +0 -245
- data/spec/rubocop/token_spec.rb +0 -29
- data/spec/spec_helper.rb +0 -39
- data/spec/support/cop_helper.rb +0 -75
- data/spec/support/cops/class_must_be_a_module_cop.rb +0 -19
- data/spec/support/cops/module_must_be_a_class_cop.rb +0 -19
- data/spec/support/coverage.rb +0 -15
- data/spec/support/custom_matchers.rb +0 -58
- data/spec/support/file_helper.rb +0 -23
- data/spec/support/jruby_workaround.rb +0 -15
- data/spec/support/mri_syntax_checker.rb +0 -73
- data/spec/support/shared_contexts.rb +0 -53
- data/spec/support/shared_examples.rb +0 -55
- data/spec/support/statement_modifier_helper.rb +0 -41
@@ -1,83 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceInsideBrackets do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for an array literal with spaces inside' do
|
9
|
-
inspect_source(cop, ['a = [1, 2 ]',
|
10
|
-
'b = [ 1, 2]'])
|
11
|
-
expect(cop.messages).to eq(
|
12
|
-
['Space inside square brackets detected.',
|
13
|
-
'Space inside square brackets detected.'])
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'registers an offense for Hash#[] with symbol key and spaces inside' do
|
17
|
-
inspect_source(cop, ['a[ :key]',
|
18
|
-
'b[:key ]'])
|
19
|
-
expect(cop.messages).to eq(
|
20
|
-
['Space inside square brackets detected.',
|
21
|
-
'Space inside square brackets detected.'])
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'registers an offense for Hash#[] with string key and spaces inside' do
|
25
|
-
inspect_source(cop, ['a[\'key\' ]',
|
26
|
-
'b[ \'key\']'])
|
27
|
-
expect(cop.messages).to eq(
|
28
|
-
['Space inside square brackets detected.',
|
29
|
-
'Space inside square brackets detected.'])
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'accepts space inside strings within square brackets' do
|
33
|
-
inspect_source(cop, ["['Encoding:',",
|
34
|
-
" ' Enabled: false']"])
|
35
|
-
expect(cop.messages).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'accepts space inside square brackets if on its own row' do
|
39
|
-
inspect_source(cop, ['a = [',
|
40
|
-
' 1, 2',
|
41
|
-
' ]'])
|
42
|
-
expect(cop.messages).to be_empty
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'accepts space inside square brackets if with comment' do
|
46
|
-
inspect_source(cop, ['a = [ # Comment',
|
47
|
-
' 1, 2',
|
48
|
-
' ]'])
|
49
|
-
expect(cop.messages).to be_empty
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'accepts square brackets as method name' do
|
53
|
-
inspect_source(cop, ['def Vector.[](*array)',
|
54
|
-
'end'])
|
55
|
-
expect(cop.messages).to be_empty
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'accepts square brackets called with method call syntax' do
|
59
|
-
inspect_source(cop, 'subject.[](0)')
|
60
|
-
expect(cop.messages).to be_empty
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'only reports a single space once' do
|
64
|
-
inspect_source(cop, '[ ]')
|
65
|
-
expect(cop.messages).to eq(
|
66
|
-
['Space inside square brackets detected.'])
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'auto-corrects unwanted space' do
|
70
|
-
new_source = autocorrect_source(cop, ['a = [1, 2 ]',
|
71
|
-
'b = [ 1, 2]',
|
72
|
-
'c[ :key]',
|
73
|
-
'd[:key ]',
|
74
|
-
'e["key" ]',
|
75
|
-
'f[ "key"]'])
|
76
|
-
expect(new_source).to eq(['a = [1, 2]',
|
77
|
-
'b = [1, 2]',
|
78
|
-
'c[:key]',
|
79
|
-
'd[:key]',
|
80
|
-
'e["key"]',
|
81
|
-
'f["key"]'].join("\n"))
|
82
|
-
end
|
83
|
-
end
|
@@ -1,147 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceInsideHashLiteralBraces, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) { { 'EnforcedStyle' => 'space' } }
|
8
|
-
|
9
|
-
context 'with space inside empty braces not allowed' do
|
10
|
-
let(:cop_config) { { 'EnforcedStyleForEmptyBraces' => 'no_space' } }
|
11
|
-
|
12
|
-
it 'accepts empty braces with no space inside' do
|
13
|
-
inspect_source(cop, 'h = {}')
|
14
|
-
expect(cop.messages).to be_empty
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'registers an offense for empty braces with space inside' do
|
18
|
-
inspect_source(cop, 'h = { }')
|
19
|
-
expect(cop.messages)
|
20
|
-
.to eq(['Space inside empty hash literal braces detected.'])
|
21
|
-
expect(cop.highlights).to eq([' '])
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'auto-corrects unwanted space' do
|
25
|
-
new_source = autocorrect_source(cop, 'h = { }')
|
26
|
-
expect(new_source).to eq('h = {}')
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context 'with space inside empty braces allowed' do
|
31
|
-
let(:cop_config) { { 'EnforcedStyleForEmptyBraces' => 'space' } }
|
32
|
-
|
33
|
-
it 'accepts empty braces with space inside' do
|
34
|
-
inspect_source(cop, 'h = { }')
|
35
|
-
expect(cop.messages).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'registers an offense for empty braces with no space inside' do
|
39
|
-
inspect_source(cop, 'h = {}')
|
40
|
-
expect(cop.messages)
|
41
|
-
.to eq(['Space inside empty hash literal braces missing.'])
|
42
|
-
expect(cop.highlights).to eq(['{'])
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'auto-corrects missing space' do
|
46
|
-
new_source = autocorrect_source(cop, 'h = {}')
|
47
|
-
expect(new_source).to eq('h = { }')
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'registers an offense for hashes with no spaces if so configured' do
|
52
|
-
inspect_source(cop,
|
53
|
-
['h = {a: 1, b: 2}',
|
54
|
-
'h = {a => 1}'])
|
55
|
-
expect(cop.messages).to eq(['Space inside { missing.',
|
56
|
-
'Space inside } missing.',
|
57
|
-
'Space inside { missing.',
|
58
|
-
'Space inside } missing.'])
|
59
|
-
expect(cop.highlights).to eq(['{', '}', '{', '}'])
|
60
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'no_space')
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'registers an offense for correct + opposite' do
|
64
|
-
inspect_source(cop,
|
65
|
-
'h = { a: 1}')
|
66
|
-
expect(cop.messages).to eq(['Space inside } missing.'])
|
67
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'auto-corrects missing space' do
|
71
|
-
new_source = autocorrect_source(cop, ['h = {a: 1, b: 2}',
|
72
|
-
'h = {a => 1 }'])
|
73
|
-
expect(new_source).to eq(['h = { a: 1, b: 2 }',
|
74
|
-
'h = { a => 1 }'].join("\n"))
|
75
|
-
end
|
76
|
-
|
77
|
-
context 'when EnforcedStyle is no_space' do
|
78
|
-
let(:cop_config) { { 'EnforcedStyle' => 'no_space' } }
|
79
|
-
|
80
|
-
it 'registers an offense for hashes with spaces' do
|
81
|
-
inspect_source(cop,
|
82
|
-
'h = { a: 1, b: 2 }')
|
83
|
-
expect(cop.messages).to eq(['Space inside { detected.',
|
84
|
-
'Space inside } detected.'])
|
85
|
-
expect(cop.highlights).to eq([' ', ' '])
|
86
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'space')
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'registers an offense for opposite + correct' do
|
90
|
-
inspect_source(cop,
|
91
|
-
'h = {a: 1 }')
|
92
|
-
expect(cop.messages).to eq(['Space inside } detected.'])
|
93
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
94
|
-
end
|
95
|
-
|
96
|
-
it 'auto-corrects unwanted space' do
|
97
|
-
new_source = autocorrect_source(cop, ['h = { a: 1, b: 2 }',
|
98
|
-
'h = {a => 1 }'])
|
99
|
-
expect(new_source).to eq(['h = {a: 1, b: 2}',
|
100
|
-
'h = {a => 1}'].join("\n"))
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'accepts hashes with no spaces' do
|
104
|
-
inspect_source(cop,
|
105
|
-
['h = {a: 1, b: 2}',
|
106
|
-
'h = {a => 1}'])
|
107
|
-
expect(cop.offenses).to be_empty
|
108
|
-
end
|
109
|
-
|
110
|
-
it 'accepts multiline hash' do
|
111
|
-
inspect_source(cop,
|
112
|
-
['h = {',
|
113
|
-
' a: 1,',
|
114
|
-
' b: 2,',
|
115
|
-
'}'])
|
116
|
-
expect(cop.offenses).to be_empty
|
117
|
-
end
|
118
|
-
|
119
|
-
it 'accepts multiline hash with comment' do
|
120
|
-
inspect_source(cop,
|
121
|
-
['h = { # Comment',
|
122
|
-
' a: 1,',
|
123
|
-
' b: 2,',
|
124
|
-
'}'])
|
125
|
-
expect(cop.offenses).to be_empty
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
it 'accepts hashes with spaces by default' do
|
130
|
-
inspect_source(cop,
|
131
|
-
['h = { a: 1, b: 2 }',
|
132
|
-
'h = { a => 1 }'])
|
133
|
-
expect(cop.offenses).to be_empty
|
134
|
-
end
|
135
|
-
|
136
|
-
it 'accepts hash literals with no braces' do
|
137
|
-
inspect_source(cop, 'x(a: b.c)')
|
138
|
-
expect(cop.offenses).to be_empty
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'can handle interpolation in a braceless hash literal' do
|
142
|
-
# A tricky special case where the closing brace of the
|
143
|
-
# interpolation risks getting confused for a hash literal brace.
|
144
|
-
inspect_source(cop, 'f(get: "#{x}")')
|
145
|
-
expect(cop.offenses).to be_empty
|
146
|
-
end
|
147
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceInsideParens do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for spaces inside parens' do
|
9
|
-
inspect_source(cop, ['f( 3)',
|
10
|
-
'g = (a + 3 )'])
|
11
|
-
expect(cop.messages).to eq(['Space inside parentheses detected.'] * 2)
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'accepts parentheses in block parameter list' do
|
15
|
-
inspect_source(cop,
|
16
|
-
['list.inject(Tms.new) { |sum, (label, item)|',
|
17
|
-
'}'])
|
18
|
-
expect(cop.messages).to be_empty
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'accepts parentheses with no spaces' do
|
22
|
-
inspect_source(cop, 'split("\n")')
|
23
|
-
expect(cop.messages).to be_empty
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'accepts parentheses with line break' do
|
27
|
-
inspect_source(cop, ['f(',
|
28
|
-
' 1)'])
|
29
|
-
expect(cop.messages).to be_empty
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'accepts parentheses with comment and line break' do
|
33
|
-
inspect_source(cop, ['f( # Comment',
|
34
|
-
' 1)'])
|
35
|
-
expect(cop.messages).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'auto-corrects unwanted space' do
|
39
|
-
new_source = autocorrect_source(cop, ['f( 3)',
|
40
|
-
'g = ( a + 3 )'])
|
41
|
-
expect(new_source).to eq(['f(3)',
|
42
|
-
'g = (a + 3)'].join("\n"))
|
43
|
-
end
|
44
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceInsideRangeLiteral do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for space inside .. literal' do
|
9
|
-
inspect_source(cop,
|
10
|
-
['1 .. 2',
|
11
|
-
'1.. 2',
|
12
|
-
'1 ..2'])
|
13
|
-
expect(cop.offenses.size).to eq(3)
|
14
|
-
expect(cop.messages)
|
15
|
-
.to eq(['Space inside range literal.'] * 3)
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'accepts no space inside .. literal' do
|
19
|
-
inspect_source(cop, '1..2')
|
20
|
-
expect(cop.offenses).to be_empty
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers an offense for space inside ... literal' do
|
24
|
-
inspect_source(cop,
|
25
|
-
['1 ... 2',
|
26
|
-
'1... 2',
|
27
|
-
'1 ...2'])
|
28
|
-
expect(cop.offenses.size).to eq(3)
|
29
|
-
expect(cop.messages)
|
30
|
-
.to eq(['Space inside range literal.'] * 3)
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'accepts no space inside ... literal' do
|
34
|
-
inspect_source(cop, '1...2')
|
35
|
-
expect(cop.offenses).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'accepts complex range literal with space in it' do
|
39
|
-
inspect_source(cop, '0...(line - 1)')
|
40
|
-
expect(cop.offenses).to be_empty
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'accepts multiline range literal with no space in it' do
|
44
|
-
inspect_source(cop, ['x = 0..',
|
45
|
-
' 10'])
|
46
|
-
expect(cop.offenses).to be_empty
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'registers an offense in multiline range literal with space in it' do
|
50
|
-
inspect_source(cop, ['x = 0 ..',
|
51
|
-
' 10'])
|
52
|
-
expect(cop.offenses.size).to eq(1)
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'autocorrects space around .. literal' do
|
56
|
-
corrected = autocorrect_source(cop, ['1 .. 2'])
|
57
|
-
expect(corrected).to eq '1..2'
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'autocorrects space around ... literal' do
|
61
|
-
corrected = autocorrect_source(cop, ['1 ... 2'])
|
62
|
-
expect(corrected).to eq '1...2'
|
63
|
-
end
|
64
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpecialGlobalVars do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for $:' do
|
9
|
-
inspect_source(cop, 'puts $:')
|
10
|
-
expect(cop.offenses.size).to eq(1)
|
11
|
-
expect(cop.messages)
|
12
|
-
.to eq(['Prefer `$LOAD_PATH` over `$:`.'])
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'registers an offense for $"' do
|
16
|
-
inspect_source(cop, 'puts $"')
|
17
|
-
expect(cop.offenses.size).to eq(1)
|
18
|
-
expect(cop.messages)
|
19
|
-
.to eq(['Prefer `$LOADED_FEATURES` over `$"`.'])
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'registers an offense for $0' do
|
23
|
-
inspect_source(cop, 'puts $0')
|
24
|
-
expect(cop.offenses.size).to eq(1)
|
25
|
-
expect(cop.messages)
|
26
|
-
.to eq(['Prefer `$PROGRAM_NAME` over `$0`.'])
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'registers an offense for $$' do
|
30
|
-
inspect_source(cop, 'puts $$')
|
31
|
-
expect(cop.offenses.size).to eq(1)
|
32
|
-
expect(cop.messages)
|
33
|
-
.to eq(['Prefer `$PROCESS_ID` or `$PID` from the English ' \
|
34
|
-
'library over `$$`.'])
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'is clear about variables from the English library vs those not' do
|
38
|
-
inspect_source(cop, 'puts $*')
|
39
|
-
expect(cop.messages)
|
40
|
-
.to eq(['Prefer `$ARGV` from the English library, or `ARGV` over `$*`.'])
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'does not register an offense for backrefs like $1' do
|
44
|
-
inspect_source(cop, 'puts $1')
|
45
|
-
expect(cop.offenses).to be_empty
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'auto-corrects $: to $LOAD_PATH' do
|
49
|
-
new_source = autocorrect_source(cop, '$:')
|
50
|
-
expect(new_source).to eq('$LOAD_PATH')
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'auto-corrects $/ to $INPUT_RECORD_SEPARATOR' do
|
54
|
-
new_source = autocorrect_source(cop, '$/')
|
55
|
-
expect(new_source).to eq('$INPUT_RECORD_SEPARATOR')
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'auto-corrects #$: to #{$LOAD_PATH}' do
|
59
|
-
new_source = autocorrect_source(cop, '"#$:"')
|
60
|
-
expect(new_source).to eq('"#{$LOAD_PATH}"')
|
61
|
-
end
|
62
|
-
end
|
@@ -1,99 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::StringLiteralsInInterpolation, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
context 'configured with single quotes preferred' do
|
9
|
-
let(:cop_config) { { 'EnforcedStyle' => 'single_quotes' } }
|
10
|
-
|
11
|
-
it 'registers an offense for double quotes within embedded expression' do
|
12
|
-
src = '"#{"A"}"'
|
13
|
-
inspect_source(cop, src)
|
14
|
-
expect(cop.messages)
|
15
|
-
.to eq(['Prefer single-quoted strings inside interpolations.'])
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'registers an offense for double quotes within embedded expression in ' \
|
19
|
-
'a heredoc string' do
|
20
|
-
src = ['<<END',
|
21
|
-
'#{"A"}',
|
22
|
-
'END']
|
23
|
-
inspect_source(cop, src)
|
24
|
-
expect(cop.messages)
|
25
|
-
.to eq(['Prefer single-quoted strings inside interpolations.'])
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'accepts double quotes on a static string' do
|
29
|
-
src = '"A"'
|
30
|
-
inspect_source(cop, src)
|
31
|
-
expect(cop.offenses).to be_empty
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'accepts double quotes on a broken static string' do
|
35
|
-
src = ['"A" \\',
|
36
|
-
' "B"']
|
37
|
-
inspect_source(cop, src)
|
38
|
-
expect(cop.offenses).to be_empty
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'accepts double quotes on static strings within a method' do
|
42
|
-
src = ['def m',
|
43
|
-
' puts "A"',
|
44
|
-
' puts "B"',
|
45
|
-
'end']
|
46
|
-
inspect_source(cop, src)
|
47
|
-
expect(cop.offenses).to be_empty
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'can handle a built-in constant parsed as string' do
|
51
|
-
# Parser will produce str nodes for constants such as __FILE__.
|
52
|
-
src = ['if __FILE__ == $PROGRAM_NAME',
|
53
|
-
'end']
|
54
|
-
inspect_source(cop, src)
|
55
|
-
expect(cop.offenses).to be_empty
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'can handle character literals' do
|
59
|
-
src = 'a = ?/'
|
60
|
-
inspect_source(cop, src)
|
61
|
-
expect(cop.offenses).to be_empty
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'auto-corrects " with \'' do
|
65
|
-
new_source = autocorrect_source(cop, 's = "#{"abc"}"')
|
66
|
-
expect(new_source).to eq(%q(s = "#{'abc'}"))
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context 'configured with double quotes preferred' do
|
71
|
-
let(:cop_config) { { 'EnforcedStyle' => 'double_quotes' } }
|
72
|
-
|
73
|
-
it 'registers an offense for single quotes within embedded expression' do
|
74
|
-
src = %q("#{'A'}")
|
75
|
-
inspect_source(cop, src)
|
76
|
-
expect(cop.messages)
|
77
|
-
.to eq(['Prefer double-quoted strings inside interpolations.'])
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'registers an offense for single quotes within embedded expression in ' \
|
81
|
-
'a heredoc string' do
|
82
|
-
src = ['<<END',
|
83
|
-
'#{\'A\'}',
|
84
|
-
'END']
|
85
|
-
inspect_source(cop, src)
|
86
|
-
expect(cop.messages)
|
87
|
-
.to eq(['Prefer double-quoted strings inside interpolations.'])
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
context 'when configured with a bad value' do
|
92
|
-
let(:cop_config) { { 'EnforcedStyle' => 'other' } }
|
93
|
-
|
94
|
-
it 'fails' do
|
95
|
-
expect { inspect_source(cop, 'a = "#{"b"}"') }
|
96
|
-
.to raise_error(RuntimeError)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|