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,102 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Util do
|
6
|
-
describe '#line_range' do
|
7
|
-
let(:source) do
|
8
|
-
<<-END
|
9
|
-
foo = 1
|
10
|
-
bar = 2
|
11
|
-
class Test
|
12
|
-
def some_method
|
13
|
-
do_something
|
14
|
-
end
|
15
|
-
end
|
16
|
-
baz = 8
|
17
|
-
END
|
18
|
-
end
|
19
|
-
|
20
|
-
let(:ast) do
|
21
|
-
processed_source = parse_source(source)
|
22
|
-
processed_source.ast
|
23
|
-
end
|
24
|
-
|
25
|
-
let(:node) { ast.each_node.find(&:class_type?) }
|
26
|
-
|
27
|
-
context 'when Source::Range object is passed' do
|
28
|
-
it 'returns line range of that' do
|
29
|
-
line_range = described_class.line_range(node.loc.expression)
|
30
|
-
expect(line_range).to eq(3..7)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context 'when AST::Node object is passed' do
|
35
|
-
it 'returns line range of the expression' do
|
36
|
-
line_range = described_class.line_range(node)
|
37
|
-
expect(line_range).to eq(3..7)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe 'source indicated by #range_with_surrounding_comma' do
|
43
|
-
let(:input_range) { OpenStruct.new(begin_pos: 7, end_pos: 12) }
|
44
|
-
let(:buffer) { OpenStruct.new(source: 'raise ,Error,') }
|
45
|
-
|
46
|
-
subject do
|
47
|
-
r = described_class.range_with_surrounding_comma(input_range,
|
48
|
-
side, buffer)
|
49
|
-
buffer.source[r.begin_pos...r.end_pos]
|
50
|
-
end
|
51
|
-
|
52
|
-
context 'when side is :both' do
|
53
|
-
let(:side) { :both }
|
54
|
-
it { should eq(',Error,') }
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'when side is :left' do
|
58
|
-
let(:side) { :left }
|
59
|
-
it { should eq(',Error') }
|
60
|
-
end
|
61
|
-
|
62
|
-
context 'when side is :right' do
|
63
|
-
let(:side) { :right }
|
64
|
-
it { should eq('Error,') }
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe 'source indicated by #range_with_surrounding_space' do
|
69
|
-
let(:input_range) { OpenStruct.new(begin_pos: 5, end_pos: 9) }
|
70
|
-
let(:buffer) { OpenStruct.new(source: 'f { a(2) }') }
|
71
|
-
subject do
|
72
|
-
r = described_class.range_with_surrounding_space(input_range, side,
|
73
|
-
buffer)
|
74
|
-
buffer.source[r.begin_pos...r.end_pos]
|
75
|
-
end
|
76
|
-
|
77
|
-
context 'when side is :both' do
|
78
|
-
let(:side) { :both }
|
79
|
-
it { should eq(' a(2) ') }
|
80
|
-
end
|
81
|
-
|
82
|
-
context 'when side is :left' do
|
83
|
-
let(:side) { :left }
|
84
|
-
it { should eq(' a(2)') }
|
85
|
-
end
|
86
|
-
|
87
|
-
context 'when side is :right' do
|
88
|
-
let(:side) { :right }
|
89
|
-
it { should eq('a(2) ') }
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# Test compatibility with Range#size in Ruby 2.0.
|
94
|
-
describe '#numeric_range_size', ruby: 2 do
|
95
|
-
[1..1, 1...1, 1..2, 1...2, 1..3, 1...3, 1..-1, 1...-1].each do |range|
|
96
|
-
context "with range #{range}" do
|
97
|
-
subject { described_class.numeric_range_size(range) }
|
98
|
-
it { should eq(range.size) }
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
@@ -1,200 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::VariableForce::Assignment do
|
6
|
-
include AST::Sexp
|
7
|
-
|
8
|
-
let(:ast) do
|
9
|
-
processed_source = RuboCop::ProcessedSource.new(source)
|
10
|
-
processed_source.ast
|
11
|
-
end
|
12
|
-
|
13
|
-
let(:source) do
|
14
|
-
<<-END
|
15
|
-
class SomeClass
|
16
|
-
def some_method(flag)
|
17
|
-
puts 'Hello World!'
|
18
|
-
|
19
|
-
if flag > 0
|
20
|
-
foo = 1
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
END
|
25
|
-
end
|
26
|
-
|
27
|
-
let(:def_node) { ast.each_node.find(&:def_type?) }
|
28
|
-
|
29
|
-
let(:lvasgn_node) { ast.each_node.find(&:lvasgn_type?) }
|
30
|
-
|
31
|
-
let(:name) { lvasgn_node.children.first }
|
32
|
-
let(:scope) { RuboCop::Cop::VariableForce::Scope.new(def_node) }
|
33
|
-
let(:variable) do
|
34
|
-
RuboCop::Cop::VariableForce::Variable.new(name, lvasgn_node, scope)
|
35
|
-
end
|
36
|
-
let(:assignment) { described_class.new(lvasgn_node, variable) }
|
37
|
-
|
38
|
-
describe '.new' do
|
39
|
-
let(:variable) { double('variable') }
|
40
|
-
|
41
|
-
context 'when an assignment node is passed' do
|
42
|
-
it 'does not raise error' do
|
43
|
-
node = s(:lvasgn, :foo)
|
44
|
-
expect { described_class.new(node, variable) }.not_to raise_error
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context 'when an argument declaration node is passed' do
|
49
|
-
it 'raises error' do
|
50
|
-
node = s(:arg, :foo)
|
51
|
-
expect { described_class.new(node, variable) }
|
52
|
-
.to raise_error(ArgumentError)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context 'when any other type node is passed' do
|
57
|
-
it 'raises error' do
|
58
|
-
node = s(:def)
|
59
|
-
expect { described_class.new(node, variable) }
|
60
|
-
.to raise_error(ArgumentError)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe '#name' do
|
66
|
-
it 'returns the variable name' do
|
67
|
-
expect(assignment.name).to eq(:foo)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
describe '#meta_assignment_node' do
|
72
|
-
context 'when it is += operator assignment' do
|
73
|
-
let(:source) do
|
74
|
-
<<-END
|
75
|
-
def some_method
|
76
|
-
foo += 1
|
77
|
-
end
|
78
|
-
END
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'returns op_asgn node' do
|
82
|
-
expect(assignment.meta_assignment_node.type).to eq(:op_asgn)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
context 'when it is ||= operator assignment' do
|
87
|
-
let(:source) do
|
88
|
-
<<-END
|
89
|
-
def some_method
|
90
|
-
foo ||= 1
|
91
|
-
end
|
92
|
-
END
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'returns or_asgn node' do
|
96
|
-
expect(assignment.meta_assignment_node.type).to eq(:or_asgn)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
context 'when it is &&= operator assignment' do
|
101
|
-
let(:source) do
|
102
|
-
<<-END
|
103
|
-
def some_method
|
104
|
-
foo &&= 1
|
105
|
-
end
|
106
|
-
END
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'returns and_asgn node' do
|
110
|
-
expect(assignment.meta_assignment_node.type).to eq(:and_asgn)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
context 'when it is multiple assignment' do
|
115
|
-
let(:source) do
|
116
|
-
<<-END
|
117
|
-
def some_method
|
118
|
-
foo, bar = [1, 2]
|
119
|
-
end
|
120
|
-
END
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'returns masgn node' do
|
124
|
-
expect(assignment.meta_assignment_node.type).to eq(:masgn)
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
describe '#operator' do
|
130
|
-
context 'when it is normal assignment' do
|
131
|
-
let(:source) do
|
132
|
-
<<-END
|
133
|
-
def some_method
|
134
|
-
foo = 1
|
135
|
-
end
|
136
|
-
END
|
137
|
-
end
|
138
|
-
|
139
|
-
it 'returns =' do
|
140
|
-
expect(assignment.operator).to eq('=')
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
context 'when it is += operator assignment' do
|
145
|
-
let(:source) do
|
146
|
-
<<-END
|
147
|
-
def some_method
|
148
|
-
foo += 1
|
149
|
-
end
|
150
|
-
END
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'returns +=' do
|
154
|
-
expect(assignment.operator).to eq('+=')
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
context 'when it is ||= operator assignment' do
|
159
|
-
let(:source) do
|
160
|
-
<<-END
|
161
|
-
def some_method
|
162
|
-
foo ||= 1
|
163
|
-
end
|
164
|
-
END
|
165
|
-
end
|
166
|
-
|
167
|
-
it 'returns ||=' do
|
168
|
-
expect(assignment.operator).to eq('||=')
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
context 'when it is &&= operator assignment' do
|
173
|
-
let(:source) do
|
174
|
-
<<-END
|
175
|
-
def some_method
|
176
|
-
foo &&= 1
|
177
|
-
end
|
178
|
-
END
|
179
|
-
end
|
180
|
-
|
181
|
-
it 'returns &&=' do
|
182
|
-
expect(assignment.operator).to eq('&&=')
|
183
|
-
end
|
184
|
-
end
|
185
|
-
|
186
|
-
context 'when it is multiple assignment' do
|
187
|
-
let(:source) do
|
188
|
-
<<-END
|
189
|
-
def some_method
|
190
|
-
foo, bar = [1, 2]
|
191
|
-
end
|
192
|
-
END
|
193
|
-
end
|
194
|
-
|
195
|
-
it 'returns =' do
|
196
|
-
expect(assignment.operator).to eq('=')
|
197
|
-
end
|
198
|
-
end
|
199
|
-
end
|
200
|
-
end
|
@@ -1,699 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::VariableForce::Locatable do
|
6
|
-
include AST::Sexp
|
7
|
-
|
8
|
-
class LocatableObject
|
9
|
-
include RuboCop::Cop::VariableForce::Locatable
|
10
|
-
|
11
|
-
attr_reader :node, :scope
|
12
|
-
|
13
|
-
def initialize(node, scope)
|
14
|
-
@node = node
|
15
|
-
@scope = scope
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
let(:ast) do
|
20
|
-
processed_source = RuboCop::ProcessedSource.new(source)
|
21
|
-
processed_source.ast
|
22
|
-
end
|
23
|
-
|
24
|
-
let(:def_node) { ast.each_node.find(&:def_type?) }
|
25
|
-
let(:lvasgn_node) { ast.each_node.find(&:lvasgn_type?) }
|
26
|
-
|
27
|
-
let(:scope) { RuboCop::Cop::VariableForce::Scope.new(def_node) }
|
28
|
-
let(:assignment) { LocatableObject.new(lvasgn_node, scope) }
|
29
|
-
|
30
|
-
describe '#branch_point_node' do
|
31
|
-
context 'when it is not in branch' do
|
32
|
-
let(:source) do
|
33
|
-
<<-END
|
34
|
-
def some_method(flag)
|
35
|
-
foo = 1
|
36
|
-
end
|
37
|
-
END
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'returns nil' do
|
41
|
-
expect(assignment.branch_point_node).to be_nil
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'when it is inside of if' do
|
46
|
-
let(:source) do
|
47
|
-
<<-END
|
48
|
-
def some_method(flag)
|
49
|
-
if flag
|
50
|
-
foo = 1
|
51
|
-
end
|
52
|
-
end
|
53
|
-
END
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'returns the if node' do
|
57
|
-
expect(assignment.branch_point_node.type).to eq(:if)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
context 'when it is inside of else of if' do
|
62
|
-
let(:source) do
|
63
|
-
<<-END
|
64
|
-
def some_method(flag)
|
65
|
-
if flag
|
66
|
-
else
|
67
|
-
foo = 1
|
68
|
-
end
|
69
|
-
end
|
70
|
-
END
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'returns the if node' do
|
74
|
-
expect(assignment.branch_point_node.type).to eq(:if)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
context 'when it is inside of if condition' do
|
79
|
-
let(:source) do
|
80
|
-
<<-END
|
81
|
-
def some_method(flag)
|
82
|
-
if foo = 1
|
83
|
-
do_something
|
84
|
-
end
|
85
|
-
end
|
86
|
-
END
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'returns nil' do
|
90
|
-
expect(assignment.branch_point_node).to be_nil
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
context 'when multiple if are nested' do
|
95
|
-
context 'and it is inside of inner if' do
|
96
|
-
let(:source) do
|
97
|
-
<<-END
|
98
|
-
def some_method(a, b)
|
99
|
-
if a
|
100
|
-
if b
|
101
|
-
foo = 1
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
END
|
106
|
-
end
|
107
|
-
|
108
|
-
it 'returns inner if node' do
|
109
|
-
if_node = assignment.branch_point_node
|
110
|
-
expect(if_node.type).to eq(:if)
|
111
|
-
condition_node = if_node.children.first
|
112
|
-
expect(condition_node).to eq(s(:lvar, :b))
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
context 'and it is inside of inner if condition' do
|
117
|
-
let(:source) do
|
118
|
-
<<-END
|
119
|
-
def some_method(a, b)
|
120
|
-
if a
|
121
|
-
if foo = 1
|
122
|
-
do_something
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
END
|
127
|
-
end
|
128
|
-
|
129
|
-
it 'returns the next outer if node' do
|
130
|
-
if_node = assignment.branch_point_node
|
131
|
-
expect(if_node.type).to eq(:if)
|
132
|
-
condition_node = if_node.children.first
|
133
|
-
expect(condition_node).to eq(s(:lvar, :a))
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
context 'when it is inside of when of case' do
|
139
|
-
let(:source) do
|
140
|
-
<<-END
|
141
|
-
def some_method(flag)
|
142
|
-
case flag
|
143
|
-
when 1
|
144
|
-
foo = 1
|
145
|
-
end
|
146
|
-
end
|
147
|
-
END
|
148
|
-
end
|
149
|
-
|
150
|
-
it 'returns the case node' do
|
151
|
-
expect(assignment.branch_point_node.type).to eq(:case)
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
context 'when it is on the left side of &&' do
|
156
|
-
let(:source) do
|
157
|
-
<<-END
|
158
|
-
def some_method
|
159
|
-
(foo = 1) && do_something
|
160
|
-
end
|
161
|
-
END
|
162
|
-
end
|
163
|
-
|
164
|
-
it 'returns nil' do
|
165
|
-
expect(assignment.branch_point_node).to be_nil
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
context 'when it is on the right side of &&' do
|
170
|
-
let(:source) do
|
171
|
-
<<-END
|
172
|
-
def some_method
|
173
|
-
do_something && (foo = 1)
|
174
|
-
end
|
175
|
-
END
|
176
|
-
end
|
177
|
-
|
178
|
-
it 'returns the and node' do
|
179
|
-
expect(assignment.branch_point_node.type).to eq(:and)
|
180
|
-
end
|
181
|
-
end
|
182
|
-
|
183
|
-
context 'when it is on the left side of ||' do
|
184
|
-
let(:source) do
|
185
|
-
<<-END
|
186
|
-
def some_method
|
187
|
-
(foo = 1) || do_something
|
188
|
-
end
|
189
|
-
END
|
190
|
-
end
|
191
|
-
|
192
|
-
it 'returns nil' do
|
193
|
-
expect(assignment.branch_point_node).to be_nil
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
context 'when it is on the right side of ||' do
|
198
|
-
let(:source) do
|
199
|
-
<<-END
|
200
|
-
def some_method
|
201
|
-
do_something || (foo = 1)
|
202
|
-
end
|
203
|
-
END
|
204
|
-
end
|
205
|
-
|
206
|
-
it 'returns the or node' do
|
207
|
-
expect(assignment.branch_point_node.type).to eq(:or)
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
context 'when multiple && are chained' do
|
212
|
-
context 'and it is on the right side of the right &&' do
|
213
|
-
let(:source) do
|
214
|
-
<<-END
|
215
|
-
def some_method
|
216
|
-
do_something && do_anything && (foo = 1)
|
217
|
-
end
|
218
|
-
END
|
219
|
-
end
|
220
|
-
|
221
|
-
it 'returns the right and node' do
|
222
|
-
and_node = assignment.branch_point_node
|
223
|
-
expect(and_node.type).to eq(:and)
|
224
|
-
right_side_node = and_node.children[1]
|
225
|
-
expect(right_side_node.type).to eq(:begin)
|
226
|
-
end
|
227
|
-
end
|
228
|
-
|
229
|
-
context 'and it is on the right side of the left &&' do
|
230
|
-
let(:source) do
|
231
|
-
<<-END
|
232
|
-
def some_method
|
233
|
-
do_something && (foo = 1) && do_anything
|
234
|
-
end
|
235
|
-
END
|
236
|
-
end
|
237
|
-
|
238
|
-
it 'returns the left and node' do
|
239
|
-
and_node = assignment.branch_point_node
|
240
|
-
expect(and_node.type).to eq(:and)
|
241
|
-
right_side_node = and_node.children[1]
|
242
|
-
expect(right_side_node.type).to eq(:begin)
|
243
|
-
end
|
244
|
-
end
|
245
|
-
end
|
246
|
-
|
247
|
-
context 'when it is inside of begin with rescue' do
|
248
|
-
let(:source) do
|
249
|
-
<<-END
|
250
|
-
def some_method(flag)
|
251
|
-
begin
|
252
|
-
foo = 1
|
253
|
-
rescue
|
254
|
-
do_something
|
255
|
-
end
|
256
|
-
end
|
257
|
-
END
|
258
|
-
end
|
259
|
-
|
260
|
-
it 'returns the rescue node' do
|
261
|
-
expect(assignment.branch_point_node.type).to eq(:rescue)
|
262
|
-
end
|
263
|
-
end
|
264
|
-
|
265
|
-
context 'when it is inside of rescue' do
|
266
|
-
let(:source) do
|
267
|
-
<<-END
|
268
|
-
def some_method(flag)
|
269
|
-
begin
|
270
|
-
do_something
|
271
|
-
rescue
|
272
|
-
foo = 1
|
273
|
-
end
|
274
|
-
end
|
275
|
-
END
|
276
|
-
end
|
277
|
-
|
278
|
-
it 'returns the rescue node' do
|
279
|
-
expect(assignment.branch_point_node.type).to eq(:rescue)
|
280
|
-
end
|
281
|
-
end
|
282
|
-
|
283
|
-
context 'when it is inside of begin with ensure' do
|
284
|
-
let(:source) do
|
285
|
-
<<-END
|
286
|
-
def some_method(flag)
|
287
|
-
begin
|
288
|
-
foo = 1
|
289
|
-
ensure
|
290
|
-
do_something
|
291
|
-
end
|
292
|
-
end
|
293
|
-
END
|
294
|
-
end
|
295
|
-
|
296
|
-
it 'returns the ensure node' do
|
297
|
-
expect(assignment.branch_point_node.type).to eq(:ensure)
|
298
|
-
end
|
299
|
-
end
|
300
|
-
|
301
|
-
context 'when it is inside of ensure' do
|
302
|
-
let(:source) do
|
303
|
-
<<-END
|
304
|
-
def some_method(flag)
|
305
|
-
begin
|
306
|
-
do_something
|
307
|
-
ensure
|
308
|
-
foo = 1
|
309
|
-
end
|
310
|
-
end
|
311
|
-
END
|
312
|
-
end
|
313
|
-
|
314
|
-
it 'returns nil' do
|
315
|
-
expect(assignment.branch_point_node).to be_nil
|
316
|
-
end
|
317
|
-
end
|
318
|
-
|
319
|
-
context 'when it is inside of begin without rescue' do
|
320
|
-
let(:source) do
|
321
|
-
<<-END
|
322
|
-
def some_method(flag)
|
323
|
-
begin
|
324
|
-
foo = 1
|
325
|
-
end
|
326
|
-
end
|
327
|
-
END
|
328
|
-
end
|
329
|
-
|
330
|
-
it 'returns nil' do
|
331
|
-
expect(assignment.branch_point_node).to be_nil
|
332
|
-
end
|
333
|
-
end
|
334
|
-
end
|
335
|
-
|
336
|
-
describe '#branch_body_node' do
|
337
|
-
context 'when it is not in branch' do
|
338
|
-
let(:source) do
|
339
|
-
<<-END
|
340
|
-
def some_method(flag)
|
341
|
-
foo = 1
|
342
|
-
end
|
343
|
-
END
|
344
|
-
end
|
345
|
-
|
346
|
-
it 'returns nil' do
|
347
|
-
expect(assignment.branch_body_node).to be_nil
|
348
|
-
end
|
349
|
-
end
|
350
|
-
|
351
|
-
context 'when it is inside body of if' do
|
352
|
-
let(:source) do
|
353
|
-
<<-END
|
354
|
-
def some_method(flag)
|
355
|
-
if flag
|
356
|
-
foo = 1
|
357
|
-
puts foo
|
358
|
-
end
|
359
|
-
end
|
360
|
-
END
|
361
|
-
end
|
362
|
-
|
363
|
-
it 'returns the body node' do
|
364
|
-
expect(assignment.branch_body_node.type).to eq(:begin)
|
365
|
-
end
|
366
|
-
end
|
367
|
-
|
368
|
-
context 'when it is inside body of else of if' do
|
369
|
-
let(:source) do
|
370
|
-
<<-END
|
371
|
-
def some_method(flag)
|
372
|
-
if flag
|
373
|
-
do_something
|
374
|
-
else
|
375
|
-
foo = 1
|
376
|
-
puts foo
|
377
|
-
end
|
378
|
-
end
|
379
|
-
END
|
380
|
-
end
|
381
|
-
|
382
|
-
it 'returns the body node' do
|
383
|
-
expect(assignment.branch_body_node.type).to eq(:begin)
|
384
|
-
end
|
385
|
-
end
|
386
|
-
|
387
|
-
context 'when it is on the right side of &&' do
|
388
|
-
let(:source) do
|
389
|
-
<<-END
|
390
|
-
def some_method
|
391
|
-
do_something && (foo = 1)
|
392
|
-
end
|
393
|
-
END
|
394
|
-
end
|
395
|
-
|
396
|
-
it 'returns the right side node' do
|
397
|
-
expect(assignment.branch_body_node.type).to eq(:begin)
|
398
|
-
end
|
399
|
-
end
|
400
|
-
|
401
|
-
context 'when it is on the right side of ||' do
|
402
|
-
let(:source) do
|
403
|
-
<<-END
|
404
|
-
def some_method
|
405
|
-
do_something || (foo = 1)
|
406
|
-
end
|
407
|
-
END
|
408
|
-
end
|
409
|
-
|
410
|
-
it 'returns the right side node' do
|
411
|
-
expect(assignment.branch_body_node.type).to eq(:begin)
|
412
|
-
end
|
413
|
-
end
|
414
|
-
|
415
|
-
context 'when it is inside of begin with rescue' do
|
416
|
-
let(:source) do
|
417
|
-
<<-END
|
418
|
-
def some_method(flag)
|
419
|
-
begin
|
420
|
-
foo = 1
|
421
|
-
rescue
|
422
|
-
do_something
|
423
|
-
end
|
424
|
-
end
|
425
|
-
END
|
426
|
-
end
|
427
|
-
|
428
|
-
it 'returns the body node' do
|
429
|
-
expect(assignment.branch_body_node.type).to eq(:lvasgn)
|
430
|
-
end
|
431
|
-
end
|
432
|
-
|
433
|
-
context 'when it is inside of rescue' do
|
434
|
-
let(:source) do
|
435
|
-
<<-END
|
436
|
-
def some_method(flag)
|
437
|
-
begin
|
438
|
-
do_something
|
439
|
-
rescue
|
440
|
-
foo = 1
|
441
|
-
end
|
442
|
-
end
|
443
|
-
END
|
444
|
-
end
|
445
|
-
|
446
|
-
it 'returns the resbody node' do
|
447
|
-
expect(assignment.branch_body_node.type).to eq(:resbody)
|
448
|
-
end
|
449
|
-
end
|
450
|
-
|
451
|
-
context 'when it is inside of begin with ensure' do
|
452
|
-
let(:source) do
|
453
|
-
<<-END
|
454
|
-
def some_method(flag)
|
455
|
-
begin
|
456
|
-
foo = 1
|
457
|
-
ensure
|
458
|
-
do_something
|
459
|
-
end
|
460
|
-
end
|
461
|
-
END
|
462
|
-
end
|
463
|
-
|
464
|
-
it 'returns the body node' do
|
465
|
-
expect(assignment.branch_body_node.type).to eq(:lvasgn)
|
466
|
-
end
|
467
|
-
end
|
468
|
-
end
|
469
|
-
|
470
|
-
describe '#branch_id' do
|
471
|
-
context 'when it is not in branch' do
|
472
|
-
let(:source) do
|
473
|
-
<<-END
|
474
|
-
def some_method(flag)
|
475
|
-
foo = 1
|
476
|
-
end
|
477
|
-
END
|
478
|
-
end
|
479
|
-
|
480
|
-
it 'returns nil' do
|
481
|
-
expect(assignment.branch_id).to be_nil
|
482
|
-
end
|
483
|
-
end
|
484
|
-
|
485
|
-
context 'when it is inside body of if' do
|
486
|
-
let(:source) do
|
487
|
-
<<-END
|
488
|
-
def some_method(flag)
|
489
|
-
if flag
|
490
|
-
foo = 1
|
491
|
-
puts foo
|
492
|
-
end
|
493
|
-
end
|
494
|
-
END
|
495
|
-
end
|
496
|
-
|
497
|
-
it 'returns BRANCHNODEID_if_true' do
|
498
|
-
expect(assignment.branch_id).to match(/^\d+_if_true/)
|
499
|
-
end
|
500
|
-
end
|
501
|
-
|
502
|
-
context 'when it is inside body of else of if' do
|
503
|
-
let(:source) do
|
504
|
-
<<-END
|
505
|
-
def some_method(flag)
|
506
|
-
if flag
|
507
|
-
do_something
|
508
|
-
else
|
509
|
-
foo = 1
|
510
|
-
puts foo
|
511
|
-
end
|
512
|
-
end
|
513
|
-
END
|
514
|
-
end
|
515
|
-
|
516
|
-
it 'returns BRANCHNODEID_if_false' do
|
517
|
-
expect(assignment.branch_id).to match(/^\d+_if_false/)
|
518
|
-
end
|
519
|
-
end
|
520
|
-
|
521
|
-
context 'when it is inside body of when of case' do
|
522
|
-
let(:source) do
|
523
|
-
<<-END
|
524
|
-
def some_method(flag)
|
525
|
-
case flag
|
526
|
-
when first
|
527
|
-
do_something
|
528
|
-
when second
|
529
|
-
foo = 1
|
530
|
-
puts foo
|
531
|
-
else
|
532
|
-
do_something
|
533
|
-
end
|
534
|
-
end
|
535
|
-
END
|
536
|
-
end
|
537
|
-
|
538
|
-
it 'returns BRANCHNODEID_case_whenINDEX' do
|
539
|
-
expect(assignment.branch_id).to match(/^\d+_case_when1/)
|
540
|
-
end
|
541
|
-
end
|
542
|
-
|
543
|
-
context 'when it is inside body of when of case' do
|
544
|
-
let(:source) do
|
545
|
-
<<-END
|
546
|
-
def some_method(flag)
|
547
|
-
case flag
|
548
|
-
when first
|
549
|
-
do_something
|
550
|
-
when second
|
551
|
-
do_something
|
552
|
-
else
|
553
|
-
foo = 1
|
554
|
-
puts foo
|
555
|
-
end
|
556
|
-
end
|
557
|
-
END
|
558
|
-
end
|
559
|
-
|
560
|
-
it 'returns BRANCHNODEID_case_else' do
|
561
|
-
expect(assignment.branch_id).to match(/^\d+_case_else/)
|
562
|
-
end
|
563
|
-
end
|
564
|
-
|
565
|
-
context 'when it is on the left side of &&' do
|
566
|
-
let(:source) do
|
567
|
-
<<-END
|
568
|
-
def some_method
|
569
|
-
(foo = 1) && do_something
|
570
|
-
end
|
571
|
-
END
|
572
|
-
end
|
573
|
-
|
574
|
-
it 'returns nil' do
|
575
|
-
expect(assignment.branch_id).to be_nil
|
576
|
-
end
|
577
|
-
end
|
578
|
-
|
579
|
-
context 'when it is on the right side of &&' do
|
580
|
-
let(:source) do
|
581
|
-
<<-END
|
582
|
-
def some_method
|
583
|
-
do_something && (foo = 1)
|
584
|
-
end
|
585
|
-
END
|
586
|
-
end
|
587
|
-
|
588
|
-
it 'returns BRANCHNODEID_and_right' do
|
589
|
-
expect(assignment.branch_id).to match(/^\d+_and_right/)
|
590
|
-
end
|
591
|
-
end
|
592
|
-
|
593
|
-
context 'when it is on the left side of ||' do
|
594
|
-
let(:source) do
|
595
|
-
<<-END
|
596
|
-
def some_method
|
597
|
-
(foo = 1) || do_something
|
598
|
-
end
|
599
|
-
END
|
600
|
-
end
|
601
|
-
|
602
|
-
it 'returns nil' do
|
603
|
-
expect(assignment.branch_id).to be_nil
|
604
|
-
end
|
605
|
-
end
|
606
|
-
|
607
|
-
context 'when it is on the right side of ||' do
|
608
|
-
let(:source) do
|
609
|
-
<<-END
|
610
|
-
def some_method
|
611
|
-
do_something || (foo = 1)
|
612
|
-
end
|
613
|
-
END
|
614
|
-
end
|
615
|
-
|
616
|
-
it 'returns BRANCHNODEID_or_right' do
|
617
|
-
expect(assignment.branch_id).to match(/^\d+_or_right/)
|
618
|
-
end
|
619
|
-
end
|
620
|
-
|
621
|
-
context 'when it is inside of begin with rescue' do
|
622
|
-
let(:source) do
|
623
|
-
<<-END
|
624
|
-
def some_method(flag)
|
625
|
-
begin
|
626
|
-
foo = 1
|
627
|
-
rescue
|
628
|
-
do_something
|
629
|
-
end
|
630
|
-
end
|
631
|
-
END
|
632
|
-
end
|
633
|
-
|
634
|
-
it 'returns BRANCHNODEID_rescue_main' do
|
635
|
-
expect(assignment.branch_id).to match(/^\d+_rescue_main/)
|
636
|
-
end
|
637
|
-
end
|
638
|
-
|
639
|
-
context 'when it is inside of rescue' do
|
640
|
-
let(:source) do
|
641
|
-
<<-END
|
642
|
-
def some_method(flag)
|
643
|
-
begin
|
644
|
-
do_something
|
645
|
-
rescue FirstError
|
646
|
-
do_something
|
647
|
-
rescue SecondError
|
648
|
-
foo = 1
|
649
|
-
end
|
650
|
-
end
|
651
|
-
END
|
652
|
-
end
|
653
|
-
|
654
|
-
it 'returns BRANCHNODEID_rescue_rescueINDEX' do
|
655
|
-
expect(assignment.branch_id).to match(/^\d+_rescue_rescue1/)
|
656
|
-
end
|
657
|
-
end
|
658
|
-
|
659
|
-
context 'when it is inside of else of rescue' do
|
660
|
-
let(:source) do
|
661
|
-
<<-END
|
662
|
-
def some_method(flag)
|
663
|
-
begin
|
664
|
-
do_something
|
665
|
-
rescue FirstError
|
666
|
-
do_something
|
667
|
-
rescue SecondError
|
668
|
-
do_something
|
669
|
-
else
|
670
|
-
foo = 1
|
671
|
-
end
|
672
|
-
end
|
673
|
-
END
|
674
|
-
end
|
675
|
-
|
676
|
-
it 'returns BRANCHNODEID_rescue_else' do
|
677
|
-
expect(assignment.branch_id).to match(/^\d+_rescue_else/)
|
678
|
-
end
|
679
|
-
end
|
680
|
-
|
681
|
-
context 'when it is inside of begin with ensure' do
|
682
|
-
let(:source) do
|
683
|
-
<<-END
|
684
|
-
def some_method(flag)
|
685
|
-
begin
|
686
|
-
foo = 1
|
687
|
-
ensure
|
688
|
-
do_something
|
689
|
-
end
|
690
|
-
end
|
691
|
-
END
|
692
|
-
end
|
693
|
-
|
694
|
-
it 'returns BRANCHNODEID_ensure_main' do
|
695
|
-
expect(assignment.branch_id).to match(/^\d+_ensure_main/)
|
696
|
-
end
|
697
|
-
end
|
698
|
-
end
|
699
|
-
end
|