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