Sha256: 5ea0b233d3abf084d3c6be6b59d34efff91e508f7a7ad8df106022db0e4f1081

Contents?: true

Size: 604 Bytes

Versions: 3

Compression:

Stored size: 604 Bytes

Contents

require 'rom/repository/header_builder'

module ROM
  class Repository < Gateway
    # @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.1.0 lib/rom/repository/mapper_builder.rb
rom-repository-0.0.2 lib/rom/repository/mapper_builder.rb
rom-repository-0.0.1 lib/rom/repository/mapper_builder.rb