rubocop 0.76.0 → 0.83.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.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +6 -6
- data/config/default.yml +466 -306
- data/lib/rubocop/ast/builder.rb +45 -42
- data/lib/rubocop/ast/node/array_node.rb +13 -0
- data/lib/rubocop/ast/node/block_node.rb +7 -1
- data/lib/rubocop/ast/node/case_match_node.rb +56 -0
- data/lib/rubocop/ast/node/def_node.rb +11 -0
- data/lib/rubocop/ast/node/forward_args_node.rb +18 -0
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +8 -0
- data/lib/rubocop/ast/node/regexp_node.rb +2 -4
- data/lib/rubocop/ast/node/send_node.rb +4 -0
- data/lib/rubocop/ast/node.rb +13 -20
- data/lib/rubocop/ast/traversal.rb +29 -10
- data/lib/rubocop/cli/command/auto_genenerate_config.rb +105 -0
- data/lib/rubocop/cli/command/base.rb +33 -0
- data/lib/rubocop/cli/command/execute_runner.rb +76 -0
- data/lib/rubocop/cli/command/init_dotfile.rb +45 -0
- data/lib/rubocop/cli/command/show_cops.rb +80 -0
- data/lib/rubocop/cli/command/version.rb +17 -0
- data/lib/rubocop/cli/command.rb +21 -0
- data/lib/rubocop/cli/environment.rb +21 -0
- data/lib/rubocop/cli.rb +20 -233
- data/lib/rubocop/comment_config.rb +6 -1
- data/lib/rubocop/config.rb +41 -11
- data/lib/rubocop/config_loader.rb +54 -44
- data/lib/rubocop/config_loader_resolver.rb +28 -1
- data/lib/rubocop/config_obsoletion.rb +67 -11
- data/lib/rubocop/config_validator.rb +74 -99
- data/lib/rubocop/cop/autocorrect_logic.rb +7 -4
- data/lib/rubocop/cop/badge.rb +5 -5
- data/lib/rubocop/cop/bundler/gem_comment.rb +4 -4
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +3 -3
- data/lib/rubocop/cop/cop.rb +21 -0
- data/lib/rubocop/cop/corrector.rb +48 -24
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/condition_corrector.rb +1 -2
- data/lib/rubocop/cop/correctors/empty_line_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +3 -3
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +2 -2
- data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/space_corrector.rb +1 -2
- data/lib/rubocop/cop/correctors/string_literal_corrector.rb +2 -2
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
- data/lib/rubocop/cop/generator/configuration_injector.rb +1 -1
- data/lib/rubocop/cop/generator.rb +6 -6
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +59 -0
- data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -1
- data/lib/rubocop/cop/internal_affairs.rb +1 -0
- data/lib/rubocop/cop/layout/{align_arguments.rb → argument_alignment.rb} +1 -1
- data/lib/rubocop/cop/layout/array_alignment.rb +82 -0
- data/lib/rubocop/cop/layout/{indent_assignment.rb → assignment_indentation.rb} +1 -1
- data/lib/rubocop/cop/layout/block_end_newline.rb +5 -3
- data/lib/rubocop/cop/layout/condition_position.rb +12 -2
- data/lib/rubocop/cop/layout/dot_position.rb +1 -1
- data/lib/rubocop/cop/layout/else_alignment.rb +8 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -1
- data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +68 -0
- data/lib/rubocop/cop/layout/end_of_line.rb +2 -2
- data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
- data/lib/rubocop/cop/layout/{indent_first_argument.rb → first_argument_indentation.rb} +5 -5
- data/lib/rubocop/cop/layout/{indent_first_array_element.rb → first_array_element_indentation.rb} +20 -14
- data/lib/rubocop/cop/layout/{indent_first_hash_element.rb → first_hash_element_indentation.rb} +4 -4
- data/lib/rubocop/cop/layout/{indent_first_parameter.rb → first_parameter_indentation.rb} +3 -3
- data/lib/rubocop/cop/layout/{align_hash.rb → hash_alignment.rb} +10 -6
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -2
- data/lib/rubocop/cop/layout/{indent_heredoc.rb → heredoc_indentation.rb} +7 -7
- data/lib/rubocop/cop/layout/{tab.rb → indentation_style.rb} +48 -6
- data/lib/rubocop/cop/layout/leading_comment_space.rb +34 -3
- data/lib/rubocop/cop/layout/{leading_blank_lines.rb → leading_empty_lines.rb} +1 -1
- data/lib/rubocop/cop/{metrics → layout}/line_length.rb +72 -110
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +15 -6
- data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +0 -4
- data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +13 -4
- data/lib/rubocop/cop/layout/{align_parameters.rb → parameter_alignment.rb} +1 -1
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +3 -3
- data/lib/rubocop/cop/layout/space_around_keyword.rb +12 -0
- data/lib/rubocop/cop/layout/space_around_method_call_operator.rb +133 -0
- data/lib/rubocop/cop/layout/space_around_operators.rb +69 -9
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +17 -0
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +8 -0
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +2 -2
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +2 -9
- data/lib/rubocop/cop/layout/space_inside_range_literal.rb +2 -2
- data/lib/rubocop/cop/layout/{trailing_blank_lines.rb → trailing_empty_lines.rb} +1 -1
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +2 -2
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +38 -0
- data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +14 -0
- data/lib/rubocop/cop/lint/boolean_symbol.rb +12 -0
- data/lib/rubocop/cop/lint/debugger.rb +2 -2
- data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
- data/lib/rubocop/cop/lint/{duplicated_key.rb → duplicate_hash_key.rb} +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -5
- data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
- data/lib/rubocop/cop/lint/empty_when.rb +29 -6
- data/lib/rubocop/cop/lint/ensure_return.rb +18 -1
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +1 -1
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
- data/lib/rubocop/cop/lint/inherit_exception.rb +1 -1
- data/lib/rubocop/cop/lint/interpolation_check.rb +1 -1
- data/lib/rubocop/cop/lint/literal_as_condition.rb +10 -13
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/loop.rb +6 -4
- data/lib/rubocop/cop/lint/{multiple_compare.rb → multiple_comparison.rb} +2 -2
- data/lib/rubocop/cop/lint/nested_method_definition.rb +2 -2
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +89 -0
- data/lib/rubocop/cop/lint/number_conversion.rb +1 -1
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +21 -9
- data/lib/rubocop/cop/lint/percent_string_array.rb +2 -2
- data/lib/rubocop/cop/lint/raise_exception.rb +75 -0
- data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +4 -9
- data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +13 -8
- data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
- data/lib/rubocop/cop/lint/{string_conversion_in_interpolation.rb → redundant_string_coercion.rb} +2 -2
- data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -1
- data/lib/rubocop/cop/lint/struct_new_override.rb +58 -0
- data/lib/rubocop/cop/lint/{handle_exceptions.rb → suppressed_exception.rb} +13 -29
- data/lib/rubocop/cop/lint/unified_integer.rb +0 -2
- data/lib/rubocop/cop/lint/unused_method_argument.rb +32 -6
- data/lib/rubocop/cop/lint/uri_regexp.rb +4 -4
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +69 -23
- data/lib/rubocop/cop/lint/useless_assignment.rb +3 -2
- data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +5 -0
- data/lib/rubocop/cop/lint/useless_setter_call.rb +5 -1
- data/lib/rubocop/cop/metrics/method_length.rb +1 -1
- data/lib/rubocop/cop/migration/department_name.rb +47 -6
- data/lib/rubocop/cop/mixin/alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +4 -0
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +6 -1
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +14 -5
- data/lib/rubocop/cop/mixin/{hash_alignment.rb → hash_alignment_styles.rb} +1 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +178 -0
- data/lib/rubocop/cop/mixin/line_length_help.rb +89 -0
- data/lib/rubocop/cop/mixin/method_complexity.rb +5 -0
- data/lib/rubocop/cop/mixin/nil_methods.rb +4 -4
- data/lib/rubocop/cop/mixin/parser_diagnostic.rb +1 -1
- data/lib/rubocop/cop/mixin/rational_literal.rb +18 -0
- data/lib/rubocop/cop/mixin/statement_modifier.rb +9 -24
- data/lib/rubocop/cop/mixin/target_ruby_version.rb +5 -1
- data/lib/rubocop/cop/mixin/trailing_comma.rb +9 -13
- data/lib/rubocop/cop/naming/{uncommunicative_block_param_name.rb → block_parameter_name.rb} +3 -3
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +2 -1
- data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +6 -6
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
- data/lib/rubocop/cop/naming/method_name.rb +26 -0
- data/lib/rubocop/cop/naming/{uncommunicative_method_param_name.rb → method_parameter_name.rb} +4 -4
- data/lib/rubocop/cop/naming/predicate_name.rb +6 -6
- data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
- data/lib/rubocop/cop/offense.rb +11 -0
- data/lib/rubocop/cop/registry.rb +15 -3
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +26 -6
- data/lib/rubocop/cop/style/alias.rb +5 -5
- data/lib/rubocop/cop/style/and_or.rb +5 -6
- data/lib/rubocop/cop/style/array_join.rb +2 -2
- data/lib/rubocop/cop/style/attr.rb +8 -0
- data/lib/rubocop/cop/style/block_delimiters.rb +60 -1
- data/lib/rubocop/cop/style/case_equality.rb +24 -1
- data/lib/rubocop/cop/style/character_literal.rb +2 -2
- data/lib/rubocop/cop/style/collection_methods.rb +2 -0
- data/lib/rubocop/cop/style/conditional_assignment.rb +10 -10
- data/lib/rubocop/cop/style/copyright.rb +1 -1
- data/lib/rubocop/cop/style/dir.rb +1 -1
- data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +49 -0
- data/lib/rubocop/cop/style/documentation.rb +43 -5
- data/lib/rubocop/cop/style/double_cop_disable_directive.rb +1 -1
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
- data/lib/rubocop/cop/style/each_with_object.rb +3 -3
- data/lib/rubocop/cop/style/empty_method.rb +1 -5
- data/lib/rubocop/cop/style/end_block.rb +6 -0
- data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
- data/lib/rubocop/cop/style/even_odd.rb +2 -2
- data/lib/rubocop/cop/style/expand_path_arguments.rb +3 -3
- data/lib/rubocop/cop/style/exponential_notation.rb +119 -0
- data/lib/rubocop/cop/style/format_string.rb +2 -2
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +89 -11
- data/lib/rubocop/cop/style/guard_clause.rb +28 -4
- data/lib/rubocop/cop/style/hash_each_methods.rb +89 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +3 -5
- data/lib/rubocop/cop/style/hash_transform_keys.rb +83 -0
- data/lib/rubocop/cop/style/hash_transform_values.rb +80 -0
- data/lib/rubocop/cop/style/if_unless_modifier.rb +61 -6
- data/lib/rubocop/cop/style/if_with_semicolon.rb +16 -0
- data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +9 -5
- data/lib/rubocop/cop/style/ip_addresses.rb +4 -4
- data/lib/rubocop/cop/style/lambda.rb +3 -2
- data/lib/rubocop/cop/style/lambda_call.rb +1 -21
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +169 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +54 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +7 -205
- data/lib/rubocop/cop/style/mixin_grouping.rb +2 -2
- data/lib/rubocop/cop/style/module_function.rb +58 -12
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +1 -1
- data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
- data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
- data/lib/rubocop/cop/style/multiline_when_then.rb +21 -2
- data/lib/rubocop/cop/style/mutable_constant.rb +2 -4
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +9 -9
- data/lib/rubocop/cop/style/next.rb +7 -7
- data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
- data/lib/rubocop/cop/style/non_nil_check.rb +4 -4
- data/lib/rubocop/cop/style/not.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literals.rb +8 -4
- data/lib/rubocop/cop/style/numeric_predicate.rb +5 -4
- data/lib/rubocop/cop/style/one_line_conditional.rb +4 -3
- data/lib/rubocop/cop/style/option_hash.rb +3 -3
- data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
- data/lib/rubocop/cop/style/or_assignment.rb +4 -3
- data/lib/rubocop/cop/style/percent_literal_delimiters.rb +7 -7
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
- data/lib/rubocop/cop/style/perl_backrefs.rb +2 -2
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +1 -1
- data/lib/rubocop/cop/style/random_with_offset.rb +3 -3
- data/lib/rubocop/cop/style/redundant_condition.rb +18 -6
- data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
- data/lib/rubocop/cop/style/redundant_exception.rb +3 -3
- data/lib/rubocop/cop/style/redundant_interpolation.rb +2 -2
- data/lib/rubocop/cop/style/redundant_parentheses.rb +3 -3
- data/lib/rubocop/cop/style/redundant_percent_q.rb +2 -2
- data/lib/rubocop/cop/style/redundant_return.rb +7 -15
- data/lib/rubocop/cop/style/redundant_self.rb +1 -1
- data/lib/rubocop/cop/style/redundant_sort.rb +3 -3
- data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
- data/lib/rubocop/cop/style/return_nil.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +1 -1
- data/lib/rubocop/cop/style/self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/slicing_with_range.rb +39 -0
- data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
- data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -4
- data/lib/rubocop/cop/style/string_hash_keys.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +3 -3
- data/lib/rubocop/cop/style/symbol_literal.rb +2 -2
- data/lib/rubocop/cop/style/ternary_parentheses.rb +2 -3
- data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +35 -22
- data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +41 -0
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +88 -0
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +44 -0
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +7 -1
- data/lib/rubocop/cop/style/trivial_accessors.rb +6 -6
- data/lib/rubocop/cop/style/unpack_first.rb +0 -4
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/while_until_modifier.rb +2 -2
- data/lib/rubocop/cop/style/word_array.rb +1 -1
- data/lib/rubocop/cop/style/yoda_condition.rb +16 -1
- data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -1
- data/lib/rubocop/cop/team.rb +5 -0
- data/lib/rubocop/cop/util.rb +24 -0
- data/lib/rubocop/cop/variable_force/assignment.rb +1 -0
- data/lib/rubocop/cop/variable_force/scope.rb +1 -0
- data/lib/rubocop/cop/variable_force/variable.rb +1 -0
- data/lib/rubocop/cop/variable_force.rb +4 -1
- data/lib/rubocop/formatter/base_formatter.rb +2 -2
- data/lib/rubocop/formatter/clang_style_formatter.rb +0 -2
- data/lib/rubocop/formatter/formatter_set.rb +1 -1
- data/lib/rubocop/formatter/json_formatter.rb +6 -5
- data/lib/rubocop/formatter/junit_formatter.rb +74 -0
- data/lib/rubocop/formatter/pacman_formatter.rb +1 -1
- data/lib/rubocop/formatter/tap_formatter.rb +0 -2
- data/lib/rubocop/name_similarity.rb +12 -9
- data/lib/rubocop/node_pattern.rb +97 -11
- data/lib/rubocop/options.rb +26 -13
- data/lib/rubocop/processed_source.rb +1 -4
- data/lib/rubocop/rake_task.rb +1 -0
- data/lib/rubocop/result_cache.rb +23 -7
- data/lib/rubocop/rspec/cop_helper.rb +1 -1
- data/lib/rubocop/rspec/expect_offense.rb +1 -1
- data/lib/rubocop/rspec/shared_contexts.rb +5 -4
- data/lib/rubocop/runner.rb +25 -4
- data/lib/rubocop/target_finder.rb +6 -4
- data/lib/rubocop/target_ruby.rb +151 -0
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +53 -27
- metadata +73 -48
- data/lib/rubocop/cop/layout/align_array.rb +0 -39
- data/lib/rubocop/cop/lint/end_in_method.rb +0 -40
- data/lib/rubocop/cop/mixin/safe_mode.rb +0 -24
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +0 -209
- data/lib/rubocop/formatter/disabled_lines_formatter.rb +0 -57
- data/lib/rubocop/string_util.rb +0 -14
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
# Help methods for determining if a line is too long.
|
6
|
+
module LineLengthHelp
|
7
|
+
private
|
8
|
+
|
9
|
+
def ignore_cop_directives?
|
10
|
+
config.for_cop('Layout/LineLength')['IgnoreCopDirectives']
|
11
|
+
end
|
12
|
+
|
13
|
+
def directive_on_source_line?(line_index)
|
14
|
+
source_line_number = line_index + processed_source.buffer.first_line
|
15
|
+
comment =
|
16
|
+
processed_source.comments
|
17
|
+
.detect { |e| e.location.line == source_line_number }
|
18
|
+
|
19
|
+
return false unless comment
|
20
|
+
|
21
|
+
comment.text.match(CommentConfig::COMMENT_DIRECTIVE_REGEXP)
|
22
|
+
end
|
23
|
+
|
24
|
+
def allow_uri?
|
25
|
+
config.for_cop('Layout/LineLength')['AllowURI']
|
26
|
+
end
|
27
|
+
|
28
|
+
def allowed_uri_position?(line, uri_range)
|
29
|
+
uri_range.begin < max_line_length &&
|
30
|
+
(uri_range.end == line_length(line) ||
|
31
|
+
uri_range.end == line_length(line) - 1)
|
32
|
+
end
|
33
|
+
|
34
|
+
def line_length(line)
|
35
|
+
line.length + indentation_difference(line)
|
36
|
+
end
|
37
|
+
|
38
|
+
def find_excessive_uri_range(line)
|
39
|
+
last_uri_match = match_uris(line).last
|
40
|
+
return nil unless last_uri_match
|
41
|
+
|
42
|
+
begin_position, end_position = last_uri_match.offset(0).map do |pos|
|
43
|
+
pos + indentation_difference(line)
|
44
|
+
end
|
45
|
+
return nil if begin_position < max_line_length &&
|
46
|
+
end_position < max_line_length
|
47
|
+
|
48
|
+
begin_position...end_position
|
49
|
+
end
|
50
|
+
|
51
|
+
def match_uris(string)
|
52
|
+
matches = []
|
53
|
+
string.scan(uri_regexp) do
|
54
|
+
matches << $LAST_MATCH_INFO if valid_uri?($LAST_MATCH_INFO[0])
|
55
|
+
end
|
56
|
+
matches
|
57
|
+
end
|
58
|
+
|
59
|
+
def indentation_difference(line)
|
60
|
+
return 0 unless tab_indentation_width
|
61
|
+
|
62
|
+
line.match(/^\t*/)[0].size * (tab_indentation_width - 1)
|
63
|
+
end
|
64
|
+
|
65
|
+
def tab_indentation_width
|
66
|
+
config.for_cop('Layout/IndentationStyle')['IndentationWidth'] ||
|
67
|
+
config.for_cop('Layout/IndentationWidth')['Width']
|
68
|
+
end
|
69
|
+
|
70
|
+
def uri_regexp
|
71
|
+
@uri_regexp ||=
|
72
|
+
URI::DEFAULT_PARSER
|
73
|
+
.make_regexp(config.for_cop('Layout/LineLength')['URISchemes'])
|
74
|
+
end
|
75
|
+
|
76
|
+
def valid_uri?(uri_ish_string)
|
77
|
+
URI.parse(uri_ish_string)
|
78
|
+
true
|
79
|
+
rescue URI::InvalidURIError, NoMethodError
|
80
|
+
false
|
81
|
+
end
|
82
|
+
|
83
|
+
def line_length_without_directive(line)
|
84
|
+
before_comment, = line.split(CommentConfig::COMMENT_DIRECTIVE_REGEXP)
|
85
|
+
before_comment.rstrip.length
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -5,15 +5,20 @@ module RuboCop
|
|
5
5
|
# This module handles measurement and reporting of complexity in methods.
|
6
6
|
module MethodComplexity
|
7
7
|
include ConfigurableMax
|
8
|
+
include IgnoredMethods
|
8
9
|
extend NodePattern::Macros
|
9
10
|
|
10
11
|
def on_def(node)
|
12
|
+
return if ignored_method?(node.method_name)
|
13
|
+
|
11
14
|
check_complexity(node, node.method_name)
|
12
15
|
end
|
13
16
|
alias on_defs on_def
|
14
17
|
|
15
18
|
def on_block(node)
|
16
19
|
define_method?(node) do |name|
|
20
|
+
return if ignored_method?(name)
|
21
|
+
|
17
22
|
check_complexity(node, name)
|
18
23
|
end
|
19
24
|
end
|
@@ -5,20 +5,20 @@ module RuboCop
|
|
5
5
|
# This module provides a list of methods that are:
|
6
6
|
# 1. In the NilClass by default
|
7
7
|
# 2. Added to NilClass by explicitly requiring any standard libraries
|
8
|
-
# 3. Cop's configuration parameter
|
8
|
+
# 3. Cop's configuration parameter AllowedMethods.
|
9
9
|
module NilMethods
|
10
10
|
private
|
11
11
|
|
12
12
|
def nil_methods
|
13
|
-
nil.methods + other_stdlib_methods +
|
13
|
+
nil.methods + other_stdlib_methods + allowed_methods
|
14
14
|
end
|
15
15
|
|
16
16
|
def other_stdlib_methods
|
17
17
|
[:to_d]
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
21
|
-
cop_config['
|
20
|
+
def allowed_methods
|
21
|
+
cop_config['AllowedMethods'].map(&:to_sym)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
# Common functionality for handling Rational literals.
|
6
|
+
module RationalLiteral
|
7
|
+
extend NodePattern::Macros
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def_node_matcher :rational_literal?, <<~PATTERN
|
12
|
+
(send
|
13
|
+
(int _) :/
|
14
|
+
(rational _))
|
15
|
+
PATTERN
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -4,6 +4,8 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
# Common functionality for modifier cops.
|
6
6
|
module StatementModifier
|
7
|
+
include LineLengthHelp
|
8
|
+
|
7
9
|
private
|
8
10
|
|
9
11
|
def single_line_as_modifier?(node)
|
@@ -34,37 +36,20 @@ module RuboCop
|
|
34
36
|
def modifier_fits_on_single_line?(node)
|
35
37
|
return true unless max_line_length
|
36
38
|
|
37
|
-
|
38
|
-
node.body.source_length)
|
39
|
-
|
40
|
-
modifier_length <= max_line_length
|
39
|
+
length_in_modifier_form(node, node.condition) <= max_line_length
|
41
40
|
end
|
42
41
|
|
43
|
-
def length_in_modifier_form(node, cond
|
42
|
+
def length_in_modifier_form(node, cond)
|
44
43
|
keyword = node.loc.keyword
|
45
|
-
|
46
|
-
indentation
|
47
|
-
|
48
|
-
cond_length = cond.source_range.size
|
49
|
-
space = 1
|
50
|
-
|
51
|
-
indentation + body_length + space + kw_length + space + cond_length
|
44
|
+
indentation = keyword.source_line[/^\s*/]
|
45
|
+
line_length("#{indentation}#{node.body.source} #{keyword.source} " \
|
46
|
+
"#{cond.source}")
|
52
47
|
end
|
53
48
|
|
54
49
|
def max_line_length
|
55
|
-
return unless config.for_cop('
|
56
|
-
|
57
|
-
config.for_cop('Metrics/LineLength')['Max']
|
58
|
-
end
|
59
|
-
|
60
|
-
def indentation_multiplier
|
61
|
-
return 1 if config.for_cop('Layout/Tab')['Enabled']
|
50
|
+
return unless config.for_cop('Layout/LineLength')['Enabled']
|
62
51
|
|
63
|
-
|
64
|
-
config.for_cop('Layout/Tab')['IndentationWidth'] ||
|
65
|
-
config.for_cop('Layout/IndentationWidth')['Width'] ||
|
66
|
-
default_configuration.for_cop('Layout/Tab')['IndentationWidth'] ||
|
67
|
-
default_configuration.for_cop('Layout/IndentationWidth')['Width']
|
52
|
+
config.for_cop('Layout/LineLength')['Max']
|
68
53
|
end
|
69
54
|
end
|
70
55
|
end
|
@@ -4,12 +4,16 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
# Common functionality for checking target ruby version.
|
6
6
|
module TargetRubyVersion
|
7
|
+
def required_minimum_ruby_version
|
8
|
+
@minimum_target_ruby_version
|
9
|
+
end
|
10
|
+
|
7
11
|
def minimum_target_ruby_version(version)
|
8
12
|
@minimum_target_ruby_version = version
|
9
13
|
end
|
10
14
|
|
11
15
|
def support_target_ruby_version?(version)
|
12
|
-
|
16
|
+
required_minimum_ruby_version <= version
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
@@ -23,7 +23,7 @@ module RuboCop
|
|
23
23
|
if comma_offset && !inside_comment?(after_last_item, comma_offset)
|
24
24
|
check_comma(node, kind, after_last_item.begin_pos + comma_offset)
|
25
25
|
elsif should_have_comma?(style, node)
|
26
|
-
put_comma(
|
26
|
+
put_comma(items, kind)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -93,9 +93,12 @@ module RuboCop
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def method_name_and_arguments_on_same_line?(node)
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
return false unless node.call_type?
|
97
|
+
|
98
|
+
line = node.loc.selector.nil? ? node.loc.line : node.loc.selector.line
|
99
|
+
|
100
|
+
line == node.last_argument.last_line &&
|
101
|
+
node.last_line == node.last_argument.last_line
|
99
102
|
end
|
100
103
|
|
101
104
|
# A single argument with the closing bracket on the same line as the end
|
@@ -132,7 +135,7 @@ module RuboCop
|
|
132
135
|
|
133
136
|
def avoid_comma(kind, comma_begin_pos, extra_info)
|
134
137
|
range = range_between(comma_begin_pos, comma_begin_pos + 1)
|
135
|
-
article =
|
138
|
+
article = /array/.match?(kind) ? 'an' : 'a'
|
136
139
|
msg = format(
|
137
140
|
MSG,
|
138
141
|
command: 'Avoid',
|
@@ -142,9 +145,7 @@ module RuboCop
|
|
142
145
|
add_offense(range, location: range, message: msg)
|
143
146
|
end
|
144
147
|
|
145
|
-
def put_comma(
|
146
|
-
return if avoid_autocorrect?(elements(node))
|
147
|
-
|
148
|
+
def put_comma(items, kind)
|
148
149
|
last_item = items.last
|
149
150
|
return if last_item.block_pass_type?
|
150
151
|
|
@@ -166,11 +167,6 @@ module RuboCop
|
|
166
167
|
range_between(expr.begin_pos + ix, expr.end_pos)
|
167
168
|
end
|
168
169
|
|
169
|
-
# By default, there's no reason to avoid auto-correct.
|
170
|
-
def avoid_autocorrect?(_nodes)
|
171
|
-
false
|
172
|
-
end
|
173
|
-
|
174
170
|
def any_heredoc?(items)
|
175
171
|
items.any? { |item| heredoc?(item) }
|
176
172
|
end
|
@@ -11,9 +11,9 @@ module RuboCop
|
|
11
11
|
# The `AllowNamesEndingInNumbers` config option takes a boolean. When
|
12
12
|
# set to false, this cop will register offenses for names ending with
|
13
13
|
# numbers. Its default is false. The `AllowedNames` config option
|
14
|
-
# takes an array of
|
14
|
+
# takes an array of permitted names that will never register an
|
15
15
|
# offense. The `ForbiddenNames` config option takes an array of
|
16
|
-
#
|
16
|
+
# restricted names that will always register an offense.
|
17
17
|
#
|
18
18
|
# @example
|
19
19
|
# # bad
|
@@ -35,7 +35,7 @@ module RuboCop
|
|
35
35
|
# foo { |speed, distance| speed * distance }
|
36
36
|
#
|
37
37
|
# baz { |age, height, gender| do_stuff(age, height, gender) }
|
38
|
-
class
|
38
|
+
class BlockParameterName < Cop
|
39
39
|
include UncommunicativeName
|
40
40
|
|
41
41
|
def on_block(node)
|
@@ -45,8 +45,9 @@ module RuboCop
|
|
45
45
|
# SomeClass = Class.new(...)
|
46
46
|
# SomeClass = Struct.new(...)
|
47
47
|
return if allowed_assignment?(value)
|
48
|
+
return if SNAKE_CASE.match?(const_name)
|
48
49
|
|
49
|
-
add_offense(node, location: :name)
|
50
|
+
add_offense(node, location: :name)
|
50
51
|
end
|
51
52
|
|
52
53
|
private
|
@@ -5,7 +5,7 @@ module RuboCop
|
|
5
5
|
module Naming
|
6
6
|
# This cop checks that your heredocs are using meaningful delimiters.
|
7
7
|
# By default it disallows `END` and `EO*`, and can be configured through
|
8
|
-
#
|
8
|
+
# forbidden listing additional delimiters.
|
9
9
|
#
|
10
10
|
# @example
|
11
11
|
#
|
@@ -39,15 +39,15 @@ module RuboCop
|
|
39
39
|
def meaningful_delimiters?(node)
|
40
40
|
delimiters = delimiter_string(node)
|
41
41
|
|
42
|
-
return false unless
|
42
|
+
return false unless /\w/.match?(delimiters)
|
43
43
|
|
44
|
-
|
45
|
-
delimiters =~ Regexp.new(
|
44
|
+
forbidden_delimiters.none? do |forbidden_delimiter|
|
45
|
+
delimiters =~ Regexp.new(forbidden_delimiter)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
def
|
50
|
-
cop_config['
|
49
|
+
def forbidden_delimiters
|
50
|
+
cop_config['ForbiddenDelimiters'] || []
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -10,7 +10,7 @@ module RuboCop
|
|
10
10
|
# directive. It can be configured to allow for memoized instance variables
|
11
11
|
# prefixed with an underscore. Prefixing ivars with an underscore is a
|
12
12
|
# convention that is used to implicitly indicate that an ivar should not
|
13
|
-
# be set or
|
13
|
+
# be set or referenced outside of the memoization method.
|
14
14
|
#
|
15
15
|
# @example EnforcedStyleForLeadingUnderscores: disallowed (default)
|
16
16
|
# # bad
|
@@ -31,9 +31,24 @@ module RuboCop
|
|
31
31
|
class MethodName < Cop
|
32
32
|
include ConfigurableNaming
|
33
33
|
include IgnoredPattern
|
34
|
+
include RangeHelp
|
34
35
|
|
35
36
|
MSG = 'Use %<style>s for method names.'
|
36
37
|
|
38
|
+
def_node_matcher :sym_name, '(sym $_name)'
|
39
|
+
def_node_matcher :str_name, '(str $_name)'
|
40
|
+
|
41
|
+
def on_send(node)
|
42
|
+
return unless (attrs = node.attribute_accessor?)
|
43
|
+
|
44
|
+
attrs.last.each do |name_item|
|
45
|
+
name = attr_name(name_item)
|
46
|
+
next if !name || matches_ignored_pattern?(name)
|
47
|
+
|
48
|
+
check_name(node, name, range_position(node))
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
37
52
|
def on_def(node)
|
38
53
|
return if node.operator_method? ||
|
39
54
|
matches_ignored_pattern?(node.method_name)
|
@@ -44,6 +59,17 @@ module RuboCop
|
|
44
59
|
|
45
60
|
private
|
46
61
|
|
62
|
+
def attr_name(name_item)
|
63
|
+
sym_name(name_item) || str_name(name_item)
|
64
|
+
end
|
65
|
+
|
66
|
+
def range_position(node)
|
67
|
+
selector_end_pos = node.loc.selector.end_pos + 1
|
68
|
+
expr_end_pos = node.loc.expression.end_pos
|
69
|
+
|
70
|
+
range_between(selector_end_pos, expr_end_pos)
|
71
|
+
end
|
72
|
+
|
47
73
|
def message(style)
|
48
74
|
format(MSG, style: style)
|
49
75
|
end
|
data/lib/rubocop/cop/naming/{uncommunicative_method_param_name.rb → method_parameter_name.rb}
RENAMED
@@ -11,9 +11,9 @@ module RuboCop
|
|
11
11
|
# The `AllowNamesEndingInNumbers` config option takes a boolean. When
|
12
12
|
# set to false, this cop will register offenses for names ending with
|
13
13
|
# numbers. Its default is false. The `AllowedNames` config option
|
14
|
-
# takes an array of
|
14
|
+
# takes an array of permitted names that will never register an
|
15
15
|
# offense. The `ForbiddenNames` config option takes an array of
|
16
|
-
#
|
16
|
+
# restricted names that will always register an offense.
|
17
17
|
#
|
18
18
|
# @example
|
19
19
|
# # bad
|
@@ -43,13 +43,13 @@ module RuboCop
|
|
43
43
|
# def baz(age_a, height_b, gender_c)
|
44
44
|
# do_stuff(age_a, height_b, gender_c)
|
45
45
|
# end
|
46
|
-
class
|
46
|
+
class MethodParameterName < Cop
|
47
47
|
include UncommunicativeName
|
48
48
|
|
49
49
|
def on_def(node)
|
50
50
|
return unless node.arguments?
|
51
51
|
|
52
|
-
check(node, node.arguments)
|
52
|
+
check(node, node.arguments.reject(&:forward_args_type?))
|
53
53
|
end
|
54
54
|
alias on_defs on_def
|
55
55
|
end
|
@@ -70,11 +70,11 @@ module RuboCop
|
|
70
70
|
!method_name.match(/^#{prefix}[^0-9]/) ||
|
71
71
|
method_name == expected_name(method_name, prefix) ||
|
72
72
|
method_name.end_with?('=') ||
|
73
|
-
|
73
|
+
allowed_methods.include?(method_name)
|
74
74
|
end
|
75
75
|
|
76
76
|
def expected_name(method_name, prefix)
|
77
|
-
new_name = if
|
77
|
+
new_name = if forbidden_prefixes.include?(prefix)
|
78
78
|
method_name.sub(prefix, '')
|
79
79
|
else
|
80
80
|
method_name.dup
|
@@ -87,16 +87,16 @@ module RuboCop
|
|
87
87
|
"Rename `#{method_name}` to `#{new_name}`."
|
88
88
|
end
|
89
89
|
|
90
|
-
def
|
91
|
-
cop_config['
|
90
|
+
def forbidden_prefixes
|
91
|
+
cop_config['ForbiddenPrefixes']
|
92
92
|
end
|
93
93
|
|
94
94
|
def predicate_prefixes
|
95
95
|
cop_config['NamePrefix']
|
96
96
|
end
|
97
97
|
|
98
|
-
def
|
99
|
-
cop_config['
|
98
|
+
def allowed_methods
|
99
|
+
cop_config['AllowedMethods']
|
100
100
|
end
|
101
101
|
|
102
102
|
def method_definition_macros(macro_name)
|
data/lib/rubocop/cop/offense.rb
CHANGED
@@ -65,6 +65,17 @@ module RuboCop
|
|
65
65
|
freeze
|
66
66
|
end
|
67
67
|
|
68
|
+
# @api public
|
69
|
+
#
|
70
|
+
# @!attribute [r] correctable?
|
71
|
+
#
|
72
|
+
# @return [Boolean]
|
73
|
+
# whether this offense can be automatically corrected via
|
74
|
+
# autocorrect or a todo.
|
75
|
+
def correctable?
|
76
|
+
@status != :unsupported
|
77
|
+
end
|
78
|
+
|
68
79
|
# @api public
|
69
80
|
#
|
70
81
|
# @!attribute [r] corrected?
|
data/lib/rubocop/cop/registry.rb
CHANGED
@@ -22,12 +22,13 @@ module RuboCop
|
|
22
22
|
|
23
23
|
# Registry that tracks all cops by their badge and department.
|
24
24
|
class Registry
|
25
|
-
def initialize(cops = [])
|
25
|
+
def initialize(cops = [], options = {})
|
26
26
|
@registry = {}
|
27
27
|
@departments = {}
|
28
28
|
@cops_by_cop_name = Hash.new { |hash, key| hash[key] = [] }
|
29
29
|
|
30
30
|
cops.each { |cop| enlist(cop) }
|
31
|
+
@options = options
|
31
32
|
end
|
32
33
|
|
33
34
|
def enlist(cop)
|
@@ -146,13 +147,24 @@ module RuboCop
|
|
146
147
|
|
147
148
|
def enabled?(cop, config, only_safe)
|
148
149
|
cfg = config.for_cop(cop)
|
150
|
+
|
151
|
+
cop_enabled = cfg.fetch('Enabled') == true ||
|
152
|
+
enabled_pending_cop?(cfg, config)
|
153
|
+
|
149
154
|
if only_safe
|
150
|
-
|
155
|
+
cop_enabled && cfg.fetch('Safe', true)
|
151
156
|
else
|
152
|
-
|
157
|
+
cop_enabled
|
153
158
|
end
|
154
159
|
end
|
155
160
|
|
161
|
+
def enabled_pending_cop?(cop_cfg, config)
|
162
|
+
return false if @options[:disable_pending_cops]
|
163
|
+
|
164
|
+
cop_cfg.fetch('Enabled') == 'pending' &&
|
165
|
+
(@options[:enable_pending_cops] || config.enabled_new_cops?)
|
166
|
+
end
|
167
|
+
|
156
168
|
def names
|
157
169
|
cops.map(&:cop_name)
|
158
170
|
end
|
@@ -5,11 +5,12 @@ module RuboCop
|
|
5
5
|
module Style
|
6
6
|
# Access modifiers should be declared to apply to a group of methods
|
7
7
|
# or inline before each method, depending on configuration.
|
8
|
+
# EnforcedStyle config covers only method definitions.
|
9
|
+
# Applications of visibility methods to symbols can be controlled
|
10
|
+
# using AllowModifiersOnSymbols config.
|
8
11
|
#
|
9
12
|
# @example EnforcedStyle: group (default)
|
10
|
-
#
|
11
13
|
# # bad
|
12
|
-
#
|
13
14
|
# class Foo
|
14
15
|
#
|
15
16
|
# private def bar; end
|
@@ -18,7 +19,6 @@ module RuboCop
|
|
18
19
|
# end
|
19
20
|
#
|
20
21
|
# # good
|
21
|
-
#
|
22
22
|
# class Foo
|
23
23
|
#
|
24
24
|
# private
|
@@ -27,10 +27,9 @@ module RuboCop
|
|
27
27
|
# def baz; end
|
28
28
|
#
|
29
29
|
# end
|
30
|
-
# @example EnforcedStyle: inline
|
31
30
|
#
|
31
|
+
# @example EnforcedStyle: inline
|
32
32
|
# # bad
|
33
|
-
#
|
34
33
|
# class Foo
|
35
34
|
#
|
36
35
|
# private
|
@@ -41,13 +40,28 @@ module RuboCop
|
|
41
40
|
# end
|
42
41
|
#
|
43
42
|
# # good
|
44
|
-
#
|
45
43
|
# class Foo
|
46
44
|
#
|
47
45
|
# private def bar; end
|
48
46
|
# private def baz; end
|
49
47
|
#
|
50
48
|
# end
|
49
|
+
#
|
50
|
+
# @example AllowModifiersOnSymbols: true
|
51
|
+
# # good
|
52
|
+
# class Foo
|
53
|
+
#
|
54
|
+
# private :bar, :baz
|
55
|
+
#
|
56
|
+
# end
|
57
|
+
#
|
58
|
+
# @example AllowModifiersOnSymbols: false
|
59
|
+
# # bad
|
60
|
+
# class Foo
|
61
|
+
#
|
62
|
+
# private :bar, :baz
|
63
|
+
#
|
64
|
+
# end
|
51
65
|
class AccessModifierDeclarations < Cop
|
52
66
|
include ConfigurableEnforcedStyle
|
53
67
|
|
@@ -61,9 +75,15 @@ module RuboCop
|
|
61
75
|
'inlined in method definitions.'
|
62
76
|
].join(' ')
|
63
77
|
|
78
|
+
def_node_matcher :access_modifier_with_symbol?, <<~PATTERN
|
79
|
+
(send nil? {:private :protected :public} (sym _))
|
80
|
+
PATTERN
|
81
|
+
|
64
82
|
def on_send(node)
|
65
83
|
return unless node.access_modifier?
|
66
84
|
return if node.parent.pair_type?
|
85
|
+
return if cop_config['AllowModifiersOnSymbols'] &&
|
86
|
+
access_modifier_with_symbol?(node)
|
67
87
|
|
68
88
|
if offense?(node)
|
69
89
|
add_offense(node, location: :selector) do
|
@@ -91,7 +91,7 @@ module RuboCop
|
|
91
91
|
when :def, :defs
|
92
92
|
return :dynamic
|
93
93
|
when :block
|
94
|
-
return :instance_eval if parent.
|
94
|
+
return :instance_eval if parent.method?(:instance_eval)
|
95
95
|
|
96
96
|
return :dynamic
|
97
97
|
end
|
@@ -115,7 +115,7 @@ module RuboCop
|
|
115
115
|
lambda do |corrector|
|
116
116
|
new, old = *send_node.arguments
|
117
117
|
replacement = "alias #{identifier(new)} #{identifier(old)}"
|
118
|
-
corrector.replace(send_node
|
118
|
+
corrector.replace(send_node, replacement)
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
@@ -125,15 +125,15 @@ module RuboCop
|
|
125
125
|
'alias_method ' \
|
126
126
|
":#{identifier(node.new_identifier)}, " \
|
127
127
|
":#{identifier(node.old_identifier)}"
|
128
|
-
corrector.replace(node
|
128
|
+
corrector.replace(node, replacement)
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
132
|
def correct_alias_with_symbol_args(node)
|
133
133
|
lambda do |corrector|
|
134
|
-
corrector.replace(node.new_identifier
|
134
|
+
corrector.replace(node.new_identifier,
|
135
135
|
node.new_identifier.source[1..-1])
|
136
|
-
corrector.replace(node.old_identifier
|
136
|
+
corrector.replace(node.old_identifier,
|
137
137
|
node.old_identifier.source[1..-1])
|
138
138
|
end
|
139
139
|
end
|