Class: Metamorpher::Builders::Ruby::UppercaseRewriter

Inherits:
Object
  • Object
show all
Includes:
AST, Rewriter
Defined in:
lib/metamorpher/builders/ruby/uppercase_rewriter.rb

Direct Known Subclasses

UppercaseConstantRewriter

Instance Method Summary collapse

Methods included from AST

#builder

Methods included from Rewriter

#rule

Instance Method Details

#patternObject



10
11
12
# File 'lib/metamorpher/builders/ruby/uppercase_rewriter.rb', line 10

def pattern
  builder.VARIABLE_TO_BE { |v| v.name && v.name.to_s[/^[A-Z_]*$/] }
end

#replacementObject



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/metamorpher/builders/ruby/uppercase_rewriter.rb', line 14

def replacement
  builder.derivation!(:variable_to_be) do |variable_to_be, builder|
    name = variable_to_be.name.to_s

    if name.end_with?("_")
      builder.greedy_variable! name.chomp("_").downcase.to_sym
    else
      builder.variable! name.downcase.to_sym
    end
  end
end