Sha256: 3e0989106db4ca91f2a1cb1ad1b132aff608d01592c38e7fc1c5cfa2eb3a37ad

Contents?: true

Size: 633 Bytes

Versions: 18

Compression:

Stored size: 633 Bytes

Contents

require 'rom/registry'

module ROM
  # @private
  class MapperRegistry < Registry
    # @api private
    def []=(name, mapper)
      elements[name] = mapper
    end

    # @api private
    def [](name)
      elements.fetch(name) { raise(MapperMissingError, name) }
    end

    # @api private
    def key?(name)
      elements.key?(name)
    end

    # @api private
    def by_path(path)
      elements.fetch(paths(path).detect { |name| elements.key?(name) }) {
        raise(MapperMissingError, path)
      }
    end

    private

    # @api private
    def paths(path)
      path.split('.').map(&:to_sym).reverse
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
rom-3.3.3 lib/rom/mapper_registry.rb
rom-3.3.2 lib/rom/mapper_registry.rb
rom-3.3.1 lib/rom/mapper_registry.rb
rom-3.3.0 lib/rom/mapper_registry.rb
rom-3.2.3 lib/rom/mapper_registry.rb
rom-3.2.2 lib/rom/mapper_registry.rb
rom-3.2.1 lib/rom/mapper_registry.rb
rom-3.2.0 lib/rom/mapper_registry.rb
rom-3.1.0 lib/rom/mapper_registry.rb
rom-3.0.3 lib/rom/mapper_registry.rb
rom-3.0.2 lib/rom/mapper_registry.rb
rom-3.0.1 lib/rom/mapper_registry.rb
rom-3.0.0 lib/rom/mapper_registry.rb
rom-3.0.0.rc2 lib/rom/mapper_registry.rb
rom-3.0.0.rc1 lib/rom/mapper_registry.rb
rom-3.0.0.beta3 lib/rom/mapper_registry.rb
rom-3.0.0.beta2 lib/rom/mapper_registry.rb
rom-3.0.0.beta1 lib/rom/mapper_registry.rb