lib/registry.rb in regstry-1.0.5 vs lib/registry.rb in regstry-1.0.6
- old
+ new
@@ -46,10 +46,14 @@
def [](key)
key && objects[key.to_sym] || raise(UnknownKey, MSGS[:unknown] % [key, objects.keys.sort])
end
+ def delete(key)
+ objects.delete(key)
+ end
+
def objects
@objects ||= {}
end
def clear
@@ -74,9 +78,14 @@
attr_reader :registry_key
def register(key, obj = self)
obj.instance_variable_set(:@registry_key, key)
registry[key] = obj
+ end
+
+ def unregister(obj = self)
+ registry.delete(obj.registry_key)
+ obj.remove_instance_variable(:@registry_key)
end
def registered?(key)
registry.key?(key && key.to_sym)
end