Sha256: 1d7a41faecacabb9700cc7147851a204222e07e06fb19ba5a0ffa378c66c3bdc

Contents?: true

Size: 894 Bytes

Versions: 1

Compression:

Stored size: 894 Bytes

Contents

# frozen_string_literal: true

require "rom/registries/root"

module ROM
  # @api public
  class Registries::Root
    option :notifications, optional: true

    # @api private
    # @api deprecated
    def trigger(event, payload)
      notifications&.trigger(event, payload)
    end

    # @api public
    # @deprecated
    def map_with(*ids)
      with(opts: {map_with: ids})
    end

    undef :build
    # @api private
    def build(key, &block)
      item = components.(key, &block)

      if commands? && (mappers = opts[:map_with])
        item >> mappers.map { |mapper| item.relation.mappers[mapper] }.reduce(:>>)
      else
        item
      end
    end

    private

    # @api private
    def respond_to_missing?(name, *)
      super || key?(name)
    end

    # @api public
    # @deprecated
    def method_missing(name, *args, &block)
      fetch(name) { super }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rom-6.0.0.alpha1 lib/rom/compat/registries.rb