Sha256: 13e71ba3254a9ba7f00573754ff4d85dbb009c24ac61f6eed9b1eb8906c403e7

Contents?: true

Size: 594 Bytes

Versions: 3

Compression:

Stored size: 594 Bytes

Contents

require 'rom/repository/header_builder'

module ROM
  class Repository
    # @api private
    class MapperBuilder
      attr_reader :header_builder

      attr_reader :registry

      def self.registry
        @__registry__ ||= {}
      end

      def self.new(header_builder = HeaderBuilder.new)
        super
      end

      def initialize(header_builder)
        @header_builder = header_builder
        @registry = self.class.registry
      end

      def call(ast)
        registry[ast.hash] ||= Mapper.build(header_builder[ast])
      end
      alias_method :[], :call
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rom-repository-0.2.0 lib/rom/repository/mapper_builder.rb
rom-repository-0.2.0.rc1 lib/rom/repository/mapper_builder.rb
rom-repository-0.2.0.beta1 lib/rom/repository/mapper_builder.rb