Sha256: 59ee337876c0d896561749013f7d1590e63c52cf3b59a96e01fd225100828e12

Contents?: true

Size: 680 Bytes

Versions: 2

Compression:

Stored size: 680 Bytes

Contents

require "metamorpher/version"
require "metamorpher/builders/ruby"

require "metamorpher/support/map_at"

require "metamorpher/matcher"
require "metamorpher/rewriter"
require "metamorpher/refactorer"

module Metamorpher
  def self.builder
    @builder ||= Builders::Ruby::Builder.new
  end

  def self.configure(builder: :ast)
    configure_builder(builder)
  end

  private

  def self.configure_builder(builder)
    require "metamorpher/builders/#{builder}/builder"
    @builder = builder_class_for(builder).new
  end

  def self.builder_class_for(name)
    namespace = name == :ast ? "AST" : name.to_s.capitalize
    Builders.const_get(namespace).const_get("Builder")
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
metamorpher-0.1.1 lib/metamorpher.rb
metamorpher-0.1.0 lib/metamorpher.rb