class ROM::Registry
@api private
Public Class Methods
[](identifier)
click to toggle source
@api private
# File lib/rom/registry.rb, line 45 def self.[](identifier) fetch_or_store(identifier) do ::Dry::Core::ClassBuilder .new(parent: self, name: "#{name}[:#{identifier}]") .call end end
build(elements = {})
click to toggle source
Create a registry without options
@api private
# File lib/rom/registry.rb, line 40 def self.build(elements = {}) new(elements, **{}) end
element_not_found_error()
click to toggle source
@api private
# File lib/rom/registry.rb, line 54 def self.element_not_found_error ElementNotFoundError end
new(*args, **kwargs)
click to toggle source
@api private
Calls superclass method
# File lib/rom/registry.rb, line 29 def self.new(*args, **kwargs) if args.empty? && kwargs.empty? super({}, **{}) else super end end
Public Instance Methods
each() { |element| ... }
click to toggle source
@api private
# File lib/rom/registry.rb, line 77 def each return to_enum unless block_given? elements.each { |element| yield(element) } end
fetch(key) { || ... }
click to toggle source
@api private
# File lib/rom/registry.rb, line 89 def fetch(key) raise ArgumentError, 'key cannot be nil' if key.nil? elements.fetch(key.to_sym) do return yield if block_given? raise self.class.element_not_found_error.new(key, self) end end
Also aliased as: []
key?(name)
click to toggle source
@api private
# File lib/rom/registry.rb, line 84 def key?(name) !name.nil? && elements.key?(name.to_sym) end
map() { |element| ... }
click to toggle source
@api private
# File lib/rom/registry.rb, line 69 def map new_elements = elements.each_with_object({}) do |(name, element), h| h[name] = yield(element) end self.class.new(new_elements, **options) end
merge(other)
click to toggle source
@api private
# File lib/rom/registry.rb, line 59 def merge(other) self.class.new(Hash(other), **options) end
respond_to_missing?(name, include_private = false)
click to toggle source
@api private
Calls superclass method
# File lib/rom/registry.rb, line 105 def respond_to_missing?(name, include_private = false) elements.key?(name) || super end
to_hash()
click to toggle source
@api private
# File lib/rom/registry.rb, line 64 def to_hash elements end
type()
click to toggle source
# File lib/rom/registry.rb, line 100 def type self.class.name end
Private Instance Methods
method_missing(name, *)
click to toggle source
@api private
Calls superclass method
# File lib/rom/registry.rb, line 112 def method_missing(name, *) elements.fetch(name) { super } end