Module: Registry::ClassMethods

Defined in:
lib/registry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#registry_keyObject (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

Returns:

  • (Boolean)


92
93
94
# File 'lib/registry.rb', line 92

def registered?(key)
  registry.key?(key && key.to_sym)
end

#registriesObject



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