class Metamorpher::Builders::Ruby::Builder

Public Instance Methods

build(*sources) click to toggle source
# File lib/metamorpher/builders/ruby/builder.rb, line 11
def build(*sources)
  terms = sources.map { |source| decorate(rewrite(parse(source))) }
  terms.size == 1 ? terms.first : Metamorpher::Terms::TermSet.new(terms: terms)
end

Private Instance Methods

decorate(term) click to toggle source
# File lib/metamorpher/builders/ruby/builder.rb, line 18
def decorate(term)
  term.extend(Term)
end
driver() click to toggle source
# File lib/metamorpher/builders/ruby/builder.rb, line 34
def driver
  @driver ||= Drivers::Ruby.new
end
parse(source) click to toggle source
# File lib/metamorpher/builders/ruby/builder.rb, line 26
def parse(source)
  driver.parse(source)
end
rewrite(parsed) click to toggle source
# File lib/metamorpher/builders/ruby/builder.rb, line 22
def rewrite(parsed)
  rewriters.reduce(parsed) { |a, e| e.reduce(a) }
end
rewriters() click to toggle source
# File lib/metamorpher/builders/ruby/builder.rb, line 30
def rewriters
  @rewriters ||= [UppercaseConstantRewriter.new, UppercaseRewriter.new]
end