Class: Micon::Metadata
Instance Attribute Summary collapse
-
#after ⇒ Object
Returns the value of attribute after.
-
#before ⇒ Object
Returns the value of attribute before.
-
#initializers ⇒ Object
Returns the value of attribute initializers.
-
#registry ⇒ Object
Returns the value of attribute registry.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Registry.
- #call_after(key, object) ⇒ Object
- #call_after_scope(key) ⇒ Object
- #call_before(key) ⇒ Object
-
#call_before_scope(key) ⇒ Object
Scope callbacks.
- #clear ⇒ Object
- #delete(key) ⇒ Object
-
#include?(key) ⇒ Boolean
def []= key, value @sync.synchronizehref="key">registry = value end.
-
#initialize(registry, sync) ⇒ Metadata
constructor
A new instance of Metadata.
- #register_after(key, &block) ⇒ Object
-
#register_before(key, &block) ⇒ Object
Callbacks.
- #with_scope_callbacks(key, &block) ⇒ Object
Constructor Details
#initialize(registry, sync) ⇒ Metadata
Returns a new instance of Metadata.
8 9 10 11 |
# File 'lib/micon/metadata.rb', line 8 def initialize registry, sync @registry, @sync = registry, sync @before, @after, @initializers = {}, {}, {} end |
Instance Attribute Details
#after ⇒ Object
Returns the value of attribute after.
6 7 8 |
# File 'lib/micon/metadata.rb', line 6 def after @after end |
#before ⇒ Object
Returns the value of attribute before.
6 7 8 |
# File 'lib/micon/metadata.rb', line 6 def before @before end |
#initializers ⇒ Object
Returns the value of attribute initializers.
6 7 8 |
# File 'lib/micon/metadata.rb', line 6 def initializers @initializers end |
#registry ⇒ Object
Returns the value of attribute registry.
6 7 8 |
# File 'lib/micon/metadata.rb', line 6 def registry @registry end |
Instance Method Details
#[](key) ⇒ Object
Registry
35 36 37 |
# File 'lib/micon/metadata.rb', line 35 def [] key @sync.synchronize{@registry[key]} end |
#call_after(key, object) ⇒ Object
69 70 71 72 73 |
# File 'lib/micon/metadata.rb', line 69 def call_after key, object if callbacks = @after[key] callbacks.each{|c| c.call(object)} end end |
#call_after_scope(key) ⇒ Object
85 86 87 88 89 |
# File 'lib/micon/metadata.rb', line 85 def call_after_scope key if callbacks = @after[key] callbacks.each{|c| c.call} end end |
#call_before(key) ⇒ Object
63 64 65 66 67 |
# File 'lib/micon/metadata.rb', line 63 def call_before key if callbacks = @before[key] callbacks.each{|c| c.call} end end |
#call_before_scope(key) ⇒ Object
Scope callbacks
79 80 81 82 83 |
# File 'lib/micon/metadata.rb', line 79 def call_before_scope key if callbacks = @before[key] callbacks.each{|c| c.call} end end |
#clear ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/micon/metadata.rb', line 13 def clear @sync.synchronize do @registry.clear @initializers.clear @before.clear @after.clear end end |
#delete(key) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/micon/metadata.rb', line 22 def delete key @sync.synchronize do @registry.delete key @initializers.delete key @before.delete key @after.delete key end end |
#include?(key) ⇒ Boolean
def []= key, value
@sync.synchronize{@registry[key] = value}
end
43 44 45 |
# File 'lib/micon/metadata.rb', line 43 def include? key @sync.synchronize{@registry.include? key} end |
#register_after(key, &block) ⇒ Object
57 58 59 60 61 |
# File 'lib/micon/metadata.rb', line 57 def register_after key, &block @sync.synchronize do (@after[key] ||= []) << block.must_not_be.nil end end |
#register_before(key, &block) ⇒ Object
Callbacks
51 52 53 54 55 |
# File 'lib/micon/metadata.rb', line 51 def register_before key, &block @sync.synchronize do (@before[key] ||= []) << block.must_not_be.nil end end |
#with_scope_callbacks(key, &block) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/micon/metadata.rb', line 91 def with_scope_callbacks key, &block call_before_scope key result = block.call call_after_scope key result end |