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