module Metamorpher
Based on blog.rubybestpractices.com/posts/aaronp/001_double_dispatch_dance.html
Constants
- VERSION
Public Class Methods
builder()
click to toggle source
# File lib/metamorpher.rb, line 12 def self.builder @builder ||= Builders::Ruby::Builder.new end
configure(builder: :ast)
click to toggle source
# File lib/metamorpher.rb, line 16 def self.configure(builder: :ast) configure_builder(builder) end
Private Class Methods
builder_class_for(name)
click to toggle source
# File lib/metamorpher.rb, line 27 def self.builder_class_for(name) namespace = name == :ast ? "AST" : name.to_s.capitalize Builders.const_get(namespace).const_get("Builder") end
configure_builder(builder)
click to toggle source
# File lib/metamorpher.rb, line 22 def self.configure_builder(builder) require "metamorpher/builders/#{builder}/builder" @builder = builder_class_for(builder).new end