Sha256: 20eae4b7c7b9d0cff39c0367adde0a2267adf60945cd9f9869046b4a5cd6f709

Contents?: true

Size: 710 Bytes

Versions: 7

Compression:

Stored size: 710 Bytes

Contents

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

require "metamorpher/support/map_at"

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

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

7 entries across 7 versions & 1 rubygems

Version Path
metamorpher-0.2.6 lib/metamorpher.rb
metamorpher-0.2.5 lib/metamorpher.rb
metamorpher-0.2.4 lib/metamorpher.rb
metamorpher-0.2.3 lib/metamorpher.rb
metamorpher-0.2.2 lib/metamorpher.rb
metamorpher-0.2.1 lib/metamorpher.rb
metamorpher-0.2.0 lib/metamorpher.rb