Files

Class/Module Index [+]

Quicksearch

RuboCop::Cop::AutocorrectUnlessChangingAST

This module does auto-correction of nodes that could become grammatically different after the correction. If the code change would alter the abstract syntax tree, it is not done.

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/mixin/autocorrect_unless_changing_ast.rb, line 8
def autocorrect(node)
  c = correction(node)
  new_source = rewrite_node(node)

  # Make the correction only if it doesn't change the AST.
  fail CorrectionNotPossible if node != SourceParser.parse(new_source).ast

  @corrections << c
end
rewrite_node(node) click to toggle source
# File lib/rubocop/cop/mixin/autocorrect_unless_changing_ast.rb, line 18
def rewrite_node(node)
  processed_source = SourceParser.parse(node.loc.expression.source)
  c = correction(processed_source.ast)
  Corrector.new(processed_source.buffer, [c]).rewrite
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.