Module: Registry::ClassMethods
- Defined in:
- lib/registry.rb
Instance Attribute Summary collapse
-
#registry_key ⇒ Object
readonly
Returns the value of attribute registry_key.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #lookup(key) ⇒ Object
- #register(key, obj = self) ⇒ Object
- #registered?(key) ⇒ Boolean
- #registries ⇒ Object
- #registry(name = nil) ⇒ Object
- #registry_name(name = nil) ⇒ Object
- #unregister(obj = self) ⇒ Object
Instance Attribute Details
#registry_key ⇒ Object (readonly)
Returns the value of attribute registry_key.
78 79 80 |
# File 'lib/registry.rb', line 78 def registry_key @registry_key end |
Instance Method Details
#[](key) ⇒ Object
100 101 102 |
# File 'lib/registry.rb', line 100 def [](key) registry[key && key.to_sym] || fail(MSGS[:unknown] % [key, registry.keys.sort]) end |
#lookup(key) ⇒ Object
96 97 98 |
# File 'lib/registry.rb', line 96 def lookup(key) registered?(key) ? self[key] : registries[key] end |
#register(key, obj = self) ⇒ Object
80 81 82 83 84 |
# File 'lib/registry.rb', line 80 def register(key, obj = self) key = key.to_sym obj.instance_variable_set(:@registry_key, key) registry[key] = obj end |
#registered?(key) ⇒ Boolean
92 93 94 |
# File 'lib/registry.rb', line 92 def registered?(key) registry.key?(key && key.to_sym) end |
#registries ⇒ Object
112 113 114 |
# File 'lib/registry.rb', line 112 def registries @registries ||= superclass.registries end |
#registry(name = nil) ⇒ Object
104 105 106 |
# File 'lib/registry.rb', line 104 def registry(name = nil) @registry ||= registries.registry(registry_name(name)) end |
#registry_name(name = nil) ⇒ Object
108 109 110 |
# File 'lib/registry.rb', line 108 def registry_name(name = nil) name.nil? ? @registry_name ||= superclass.registry_name : @registry_name = name end |
#unregister(obj = self) ⇒ Object
86 87 88 89 90 |
# File 'lib/registry.rb', line 86 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 |