module Registry::ClassMethods

Attributes

registry_key[R]
registry_keys[R]

Public Instance Methods

[](key) click to toggle source
# File lib/registry.rb, line 105
def [](key)
  registry[key && key.to_sym] || fail(MSGS[:unknown] % [key, registry.keys.sort])
end
lookup(key) click to toggle source
# File lib/registry.rb, line 101
def lookup(key)
  registered?(key) ? self[key] : registries[key]
end
register(*args) click to toggle source
# File lib/registry.rb, line 80
def register(*args)
  obj = !(args.last.is_a?(Symbol) || args.last.is_a?(String)) ? args.pop : self
  keys = args.map(&:to_sym)
  obj.instance_variable_set(:@registry_keys, keys)
  keys.reverse.each do |key|
    obj.instance_variable_set(:@registry_key, key)
    registry[key] = obj
  end
  self
end
registered?(key) click to toggle source
# File lib/registry.rb, line 97
def registered?(key)
  registry.key?(key && key.to_sym)
end
registries() click to toggle source
# File lib/registry.rb, line 117
def registries
  @registries ||= superclass.registries
end
registry(name = nil) click to toggle source
# File lib/registry.rb, line 109
def registry(name = nil)
  @registry ||= registries.registry(registry_name(name))
end
registry_name(name = nil) click to toggle source
# File lib/registry.rb, line 113
def registry_name(name = nil)
  name.nil? ? @registry_name ||= superclass.registry_name : @registry_name = name
end
unregister(obj = self) click to toggle source
# File lib/registry.rb, line 91
def unregister(obj = self)
  return unless obj.respond_to?(:registry_key) && obj.registry_key
  registry.delete(obj.registry_key)
  obj.remove_instance_variable(:@registry_key)
end