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,29 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::NilComparison do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for == nil' do
|
9
|
-
inspect_source(cop, 'x == nil')
|
10
|
-
expect(cop.offenses.size).to eq(1)
|
11
|
-
expect(cop.highlights).to eq(['=='])
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'registers an offense for === nil' do
|
15
|
-
inspect_source(cop, 'x === nil')
|
16
|
-
expect(cop.offenses.size).to eq(1)
|
17
|
-
expect(cop.highlights).to eq(['==='])
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'autocorrects by replacing == nil with .nil?' do
|
21
|
-
corrected = autocorrect_source(cop, 'x == nil')
|
22
|
-
expect(corrected).to eq 'x.nil?'
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'autocorrects by replacing === nil with .nil?' do
|
26
|
-
corrected = autocorrect_source(cop, 'x === nil')
|
27
|
-
expect(corrected).to eq 'x.nil?'
|
28
|
-
end
|
29
|
-
end
|
@@ -1,132 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::NonNilCheck, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
|
8
|
-
context 'when not allowing semantic changes' do
|
9
|
-
let(:cop_config) do
|
10
|
-
{
|
11
|
-
'IncludeSemanticChanges' => false
|
12
|
-
}
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'registers an offense for != nil' do
|
16
|
-
inspect_source(cop, 'x != nil')
|
17
|
-
expect(cop.offenses.size).to eq(1)
|
18
|
-
expect(cop.highlights).to eq(['!='])
|
19
|
-
expect(cop.messages)
|
20
|
-
.to eq(['Prefer `!expression.nil?` over `expression != nil`.'])
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'does not register an offense for != 0' do
|
24
|
-
inspect_source(cop, 'x != 0')
|
25
|
-
expect(cop.offenses).to be_empty
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'does not register an offense for !x.nil?' do
|
29
|
-
inspect_source(cop, '!x.nil?')
|
30
|
-
expect(cop.offenses).to be_empty
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'does not register an offense for not x.nil?' do
|
34
|
-
inspect_source(cop, 'not x.nil?')
|
35
|
-
expect(cop.offenses).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'does not register an offense if only expression in predicate' do
|
39
|
-
inspect_source(cop, ['def signed_in?',
|
40
|
-
' !current_user.nil?',
|
41
|
-
'end'])
|
42
|
-
expect(cop.offenses).to be_empty
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'does not register an offense if only expression in class predicate' do
|
46
|
-
inspect_source(cop, ['def Test.signed_in?',
|
47
|
-
' current_user != nil',
|
48
|
-
'end'])
|
49
|
-
expect(cop.offenses).to be_empty
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'does not register an offense if last expression in predicate' do
|
53
|
-
inspect_source(cop, ['def signed_in?',
|
54
|
-
' something',
|
55
|
-
' current_user != nil',
|
56
|
-
'end'])
|
57
|
-
expect(cop.offenses).to be_empty
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'does not register an offense if last expression in class predicate' do
|
61
|
-
inspect_source(cop, ['def Test.signed_in?',
|
62
|
-
' something',
|
63
|
-
' current_user != nil',
|
64
|
-
'end'])
|
65
|
-
expect(cop.offenses).to be_empty
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'autocorrects by changing `!= nil` to `!x.nil?`' do
|
69
|
-
corrected = autocorrect_source(cop, 'x != nil')
|
70
|
-
expect(corrected).to eq '!x.nil?'
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'does not autocorrect by removing non-nil (!x.nil?) check' do
|
74
|
-
corrected = autocorrect_source(cop, '!x.nil?')
|
75
|
-
expect(corrected).to eq '!x.nil?'
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'does not blow up when autocorrecting implicit receiver' do
|
79
|
-
corrected = autocorrect_source(cop, '!nil?')
|
80
|
-
expect(corrected).to eq '!nil?'
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context 'when allowing semantic changes' do
|
85
|
-
subject(:cop) { described_class.new(config) }
|
86
|
-
|
87
|
-
let(:cop_config) do
|
88
|
-
{
|
89
|
-
'IncludeSemanticChanges' => true
|
90
|
-
}
|
91
|
-
end
|
92
|
-
|
93
|
-
it 'registers an offense for `!x.nil?`' do
|
94
|
-
inspect_source(cop, '!x.nil?')
|
95
|
-
expect(cop.offenses.size).to eq(1)
|
96
|
-
expect(cop.messages)
|
97
|
-
.to eq(['Explicit non-nil checks are usually redundant.'])
|
98
|
-
expect(cop.highlights).to eq(['!x.nil?'])
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'does not register an offense for `x.nil?`' do
|
102
|
-
inspect_source(cop, 'x.nil?')
|
103
|
-
expect(cop.offenses).to be_empty
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'does not register an offense for `!x`' do
|
107
|
-
inspect_source(cop, '!x')
|
108
|
-
expect(cop.offenses).to be_empty
|
109
|
-
end
|
110
|
-
|
111
|
-
it 'registers an offense for `not x.nil?`' do
|
112
|
-
inspect_source(cop, 'not x.nil?')
|
113
|
-
expect(cop.offenses.size).to eq(1)
|
114
|
-
expect(cop.highlights).to eq(['not x.nil?'])
|
115
|
-
end
|
116
|
-
|
117
|
-
it 'autocorrects by changing `x != nil` to `x`' do
|
118
|
-
corrected = autocorrect_source(cop, 'x != nil')
|
119
|
-
expect(corrected).to eq 'x'
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'autocorrects by changing `!x.nil?` to `x`' do
|
123
|
-
corrected = autocorrect_source(cop, '!x.nil?')
|
124
|
-
expect(corrected).to eq 'x'
|
125
|
-
end
|
126
|
-
|
127
|
-
it 'does not blow up when autocorrecting implicit receiver' do
|
128
|
-
corrected = autocorrect_source(cop, '!nil?')
|
129
|
-
expect(corrected).to eq 'self'
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::Not do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for not' do
|
9
|
-
inspect_source(cop, 'not test')
|
10
|
-
expect(cop.offenses.size).to eq(1)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'does not register an offense for !' do
|
14
|
-
inspect_source(cop, '!test')
|
15
|
-
expect(cop.offenses).to be_empty
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'auto-corrects "not" with !' do
|
19
|
-
new_source = autocorrect_source(cop, 'x = 10 if not y')
|
20
|
-
expect(new_source).to eq('x = 10 if !y')
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'leaves "not" as is if auto-correction changes the meaning' do
|
24
|
-
src = 'not x < y'
|
25
|
-
new_source = autocorrect_source(cop, src)
|
26
|
-
expect(new_source).to eq(src)
|
27
|
-
end
|
28
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::NumericLiterals, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) { { 'MinDigits' => 5 } }
|
8
|
-
|
9
|
-
it 'registers an offense for a long undelimited integer' do
|
10
|
-
inspect_source(cop, 'a = 12345')
|
11
|
-
expect(cop.offenses.size).to eq(1)
|
12
|
-
expect(cop.config_to_allow_offenses).to eq('MinDigits' => 6)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'registers an offense for a float with a long undelimited integer part' do
|
16
|
-
inspect_source(cop, 'a = 123456.789')
|
17
|
-
expect(cop.offenses.size).to eq(1)
|
18
|
-
expect(cop.config_to_allow_offenses).to eq('MinDigits' => 7)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'registers an offense for an integer with misplaced underscore' do
|
22
|
-
inspect_source(cop, 'a = 123_456_78_90_00')
|
23
|
-
expect(cop.offenses.size).to eq(1)
|
24
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'accepts long numbers with underscore' do
|
28
|
-
inspect_source(cop, ['a = 123_456',
|
29
|
-
'b = 123_456.55'])
|
30
|
-
expect(cop.messages).to be_empty
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'accepts a short integer without underscore' do
|
34
|
-
inspect_source(cop, 'a = 123')
|
35
|
-
expect(cop.messages).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'does not count a leading minus sign as a digit' do
|
39
|
-
inspect_source(cop, 'a = -1230')
|
40
|
-
expect(cop.messages).to be_empty
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'accepts short numbers without underscore' do
|
44
|
-
inspect_source(cop, ['a = 123',
|
45
|
-
'b = 123.456'])
|
46
|
-
expect(cop.messages).to be_empty
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'ignores non-decimal literals' do
|
50
|
-
inspect_source(cop, ['a = 0b1010101010101',
|
51
|
-
'b = 01717171717171',
|
52
|
-
'c = 0xab11111111bb'])
|
53
|
-
expect(cop.offenses).to be_empty
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'autocorrects a long integer offense' do
|
57
|
-
corrected = autocorrect_source(cop, ['a = 123456'])
|
58
|
-
expect(corrected).to eq 'a = 123_456'
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'autocorrects an integer with misplaced underscore' do
|
62
|
-
corrected = autocorrect_source(cop, ['a = 123_456_78_90_00'])
|
63
|
-
expect(corrected).to eq 'a = 123_456_789_000'
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'autocorrects negative numbers' do
|
67
|
-
corrected = autocorrect_source(cop, ['a = -123456'])
|
68
|
-
expect(corrected).to eq 'a = -123_456'
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'autocorrects floating-point numbers' do
|
72
|
-
corrected = autocorrect_source(cop, ['a = 123456.78'])
|
73
|
-
expect(corrected).to eq 'a = 123_456.78'
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'autocorrects negative floating-point numbers' do
|
77
|
-
corrected = autocorrect_source(cop, ['a = -123456.78'])
|
78
|
-
expect(corrected).to eq 'a = -123_456.78'
|
79
|
-
end
|
80
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::OneLineConditional do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for one line if/then/end' do
|
9
|
-
inspect_source(cop, 'if cond then run else dont end')
|
10
|
-
expect(cop.messages).to eq(['Favor the ternary operator (?:)' \
|
11
|
-
' over if/then/else/end constructs.'])
|
12
|
-
end
|
13
|
-
end
|
@@ -1,85 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::OpMethod do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
[:+, :eql?, :equal?].each do |op|
|
9
|
-
it "registers an offense for #{op} with arg not named other" do
|
10
|
-
inspect_source(cop,
|
11
|
-
["def #{op}(another)",
|
12
|
-
' another',
|
13
|
-
'end'])
|
14
|
-
expect(cop.offenses.size).to eq(1)
|
15
|
-
expect(cop.messages)
|
16
|
-
.to eq(["When defining the `#{op}` operator, " \
|
17
|
-
'name its argument `other`.'])
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'works properly even if the argument not surrounded with braces' do
|
22
|
-
inspect_source(cop,
|
23
|
-
['def + another',
|
24
|
-
' another',
|
25
|
-
'end'])
|
26
|
-
expect(cop.offenses.size).to eq(1)
|
27
|
-
expect(cop.messages)
|
28
|
-
.to eq(['When defining the `+` operator, name its argument `other`.'])
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'does not register an offense for arg named other' do
|
32
|
-
inspect_source(cop,
|
33
|
-
['def +(other)',
|
34
|
-
' other',
|
35
|
-
'end'])
|
36
|
-
expect(cop.offenses).to be_empty
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'does not register an offense for arg named _other' do
|
40
|
-
inspect_source(cop,
|
41
|
-
['def <=>(_other)',
|
42
|
-
' 0',
|
43
|
-
'end'])
|
44
|
-
expect(cop.offenses).to be_empty
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'does not register an offense for []' do
|
48
|
-
inspect_source(cop,
|
49
|
-
['def [](index)',
|
50
|
-
' other',
|
51
|
-
'end'])
|
52
|
-
expect(cop.offenses).to be_empty
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'does not register an offense for []=' do
|
56
|
-
inspect_source(cop,
|
57
|
-
['def []=(index, value)',
|
58
|
-
' other',
|
59
|
-
'end'])
|
60
|
-
expect(cop.offenses).to be_empty
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'does not register an offense for <<' do
|
64
|
-
inspect_source(cop,
|
65
|
-
['def <<(cop)',
|
66
|
-
' other',
|
67
|
-
'end'])
|
68
|
-
expect(cop.offenses).to be_empty
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'does not register an offense for non binary operators' do
|
72
|
-
inspect_source(cop,
|
73
|
-
['def -@', # Unary minus
|
74
|
-
'end',
|
75
|
-
'',
|
76
|
-
# This + is not a unary operator. It can only be
|
77
|
-
# called with dot notation.
|
78
|
-
'def +',
|
79
|
-
'end',
|
80
|
-
'',
|
81
|
-
'def *(a, b)', # Quite strange, but legal ruby.
|
82
|
-
'end'])
|
83
|
-
expect(cop.offenses).to be_empty
|
84
|
-
end
|
85
|
-
end
|
@@ -1,161 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::ParenthesesAroundCondition, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) { { 'AllowSafeAssignment' => true } }
|
8
|
-
|
9
|
-
it 'registers an offense for parentheses around condition' do
|
10
|
-
inspect_source(cop, ['if (x > 10)',
|
11
|
-
'elsif (x < 3)',
|
12
|
-
'end',
|
13
|
-
'unless (x > 10)',
|
14
|
-
'end',
|
15
|
-
'while (x > 10)',
|
16
|
-
'end',
|
17
|
-
'until (x > 10)',
|
18
|
-
'end',
|
19
|
-
'x += 1 if (x < 10)',
|
20
|
-
'x += 1 unless (x < 10)',
|
21
|
-
'x += 1 until (x < 10)',
|
22
|
-
'x += 1 while (x < 10)'
|
23
|
-
])
|
24
|
-
expect(cop.offenses.size).to eq(9)
|
25
|
-
expect(cop.messages.first)
|
26
|
-
.to eq("Don't use parentheses around the condition of an `if`.")
|
27
|
-
expect(cop.messages.last)
|
28
|
-
.to eq("Don't use parentheses around the condition of a `while`.")
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'accepts parentheses if there is no space between the keyword and (.' do
|
32
|
-
inspect_source(cop, ['if(x > 5) then something end',
|
33
|
-
'do_something until(x > 5)'])
|
34
|
-
expect(cop.offenses).to be_empty
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'auto-corrects parentheses around condition' do
|
38
|
-
corrected = autocorrect_source(cop, ['if (x > 10)',
|
39
|
-
'elsif (x < 3)',
|
40
|
-
'end',
|
41
|
-
'unless (x > 10)',
|
42
|
-
'end',
|
43
|
-
'while (x > 10)',
|
44
|
-
'end',
|
45
|
-
'until (x > 10)',
|
46
|
-
'end',
|
47
|
-
'x += 1 if (x < 10)',
|
48
|
-
'x += 1 unless (x < 10)',
|
49
|
-
'x += 1 while (x < 10)',
|
50
|
-
'x += 1 until (x < 10)'
|
51
|
-
])
|
52
|
-
expect(corrected).to eq ['if x > 10',
|
53
|
-
'elsif x < 3',
|
54
|
-
'end',
|
55
|
-
'unless x > 10',
|
56
|
-
'end',
|
57
|
-
'while x > 10',
|
58
|
-
'end',
|
59
|
-
'until x > 10',
|
60
|
-
'end',
|
61
|
-
'x += 1 if x < 10',
|
62
|
-
'x += 1 unless x < 10',
|
63
|
-
'x += 1 while x < 10',
|
64
|
-
'x += 1 until x < 10'
|
65
|
-
].join("\n")
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'accepts condition without parentheses' do
|
69
|
-
inspect_source(cop, ['if x > 10',
|
70
|
-
'end',
|
71
|
-
'unless x > 10',
|
72
|
-
'end',
|
73
|
-
'while x > 10',
|
74
|
-
'end',
|
75
|
-
'until x > 10',
|
76
|
-
'end',
|
77
|
-
'x += 1 if x < 10',
|
78
|
-
'x += 1 unless x < 10',
|
79
|
-
'x += 1 while x < 10',
|
80
|
-
'x += 1 until x < 10'
|
81
|
-
])
|
82
|
-
expect(cop.offenses).to be_empty
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'accepts parentheses around condition in a ternary' do
|
86
|
-
inspect_source(cop, '(a == 0) ? b : a')
|
87
|
-
expect(cop.offenses).to be_empty
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'is not confused by leading parenthesis in subexpression' do
|
91
|
-
inspect_source(cop, '(a > b) && other ? one : two')
|
92
|
-
expect(cop.offenses).to be_empty
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'is not confused by unbalanced parentheses' do
|
96
|
-
inspect_source(cop, ['if (a + b).c()',
|
97
|
-
'end'])
|
98
|
-
expect(cop.offenses).to be_empty
|
99
|
-
end
|
100
|
-
|
101
|
-
%w(rescue if unless while until).each do |op|
|
102
|
-
it "allows parens if the condition node is a modifier #{op} op" do
|
103
|
-
inspect_source(cop, ["if (something #{op} top)",
|
104
|
-
'end'])
|
105
|
-
expect(cop.offenses).to be_empty
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'does not blow up when the condition is a ternary op' do
|
110
|
-
inspect_source(cop, 'x if (a ? b : c)')
|
111
|
-
expect(cop.offenses.size).to eq(1)
|
112
|
-
end
|
113
|
-
|
114
|
-
context 'safe assignment is allowed' do
|
115
|
-
it 'accepts variable assignment in condition surrounded with parentheses' do
|
116
|
-
inspect_source(cop,
|
117
|
-
['if (test = 10)',
|
118
|
-
'end'
|
119
|
-
])
|
120
|
-
expect(cop.offenses).to be_empty
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'accepts element assignment in condition surrounded with parentheses' do
|
124
|
-
inspect_source(cop,
|
125
|
-
['if (test[0] = 10)',
|
126
|
-
'end'
|
127
|
-
])
|
128
|
-
expect(cop.offenses).to be_empty
|
129
|
-
end
|
130
|
-
|
131
|
-
it 'accepts setter in condition surrounded with parentheses' do
|
132
|
-
inspect_source(cop,
|
133
|
-
['if (self.test = 10)',
|
134
|
-
'end'
|
135
|
-
])
|
136
|
-
expect(cop.offenses).to be_empty
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
context 'safe assignment is not allowed' do
|
141
|
-
let(:cop_config) { { 'AllowSafeAssignment' => false } }
|
142
|
-
|
143
|
-
it 'does not accept variable assignment in condition surrounded with ' \
|
144
|
-
'parentheses' do
|
145
|
-
inspect_source(cop,
|
146
|
-
['if (test = 10)',
|
147
|
-
'end'
|
148
|
-
])
|
149
|
-
expect(cop.offenses.size).to eq(1)
|
150
|
-
end
|
151
|
-
|
152
|
-
it 'does not accept element assignment in condition surrounded with ' \
|
153
|
-
'parentheses' do
|
154
|
-
inspect_source(cop,
|
155
|
-
['if (test[0] = 10)',
|
156
|
-
'end'
|
157
|
-
])
|
158
|
-
expect(cop.offenses.size).to eq(1)
|
159
|
-
end
|
160
|
-
end
|
161
|
-
end
|