Class: Micro::Observers::Set
- Inherits:
-
Object
- Object
- Micro::Observers::Set
- Defined in:
- lib/micro/observers/set.rb
Class Method Summary collapse
Instance Method Summary collapse
- #attach(*args) ⇒ Object
- #call(*events, data: nil) ⇒ Object
- #call!(*events, data: nil) ⇒ Object
- #count ⇒ Object
- #detach(*args) ⇒ Object
- #include?(observer) ⇒ Boolean (also: #included?)
-
#initialize(subject, subscribers: nil) ⇒ Set
constructor
A new instance of Set.
- #inspect ⇒ Object
- #none? ⇒ Boolean
- #notify(*events, data: nil) ⇒ Object
- #notify!(*events, data: nil) ⇒ Object
- #off(*args) ⇒ Object
- #on(options = Utils::EMPTY_HASH) ⇒ Object
- #once(options = Utils::EMPTY_HASH) ⇒ Object
- #some? ⇒ Boolean
- #subject_changed(state) ⇒ Object
- #subject_changed! ⇒ Object
- #subject_changed? ⇒ Boolean
Constructor Details
#initialize(subject, subscribers: nil) ⇒ Set
Returns a new instance of Set.
11 12 13 14 15 |
# File 'lib/micro/observers/set.rb', line 11 def initialize(subject, subscribers: nil) @subject = subject @subject_changed = false @subscribers = Subscribers.new(subscribers) end |
Class Method Details
.for(subject) ⇒ Object
7 8 9 |
# File 'lib/micro/observers/set.rb', line 7 def self.for(subject) new(subject) end |
Instance Method Details
#attach(*args) ⇒ Object
42 |
# File 'lib/micro/observers/set.rb', line 42 def attach(*args); @subscribers.attach(args) and self; end |
#call(*events, data: nil) ⇒ Object
62 63 64 |
# File 'lib/micro/observers/set.rb', line 62 def call(*events, data: nil) broadcast_if_subject_changed(Event::Names[events, default: CALL_EVENT], data) end |
#call!(*events, data: nil) ⇒ Object
66 67 68 |
# File 'lib/micro/observers/set.rb', line 66 def call!(*events, data: nil) broadcast(Event::Names[events, default: CALL_EVENT], data) end |
#count ⇒ Object
17 |
# File 'lib/micro/observers/set.rb', line 17 def count; @subscribers.count; end |
#detach(*args) ⇒ Object
43 |
# File 'lib/micro/observers/set.rb', line 43 def detach(*args); @subscribers.detach(args) and self; end |
#include?(observer) ⇒ Boolean Also known as: included?
37 38 39 |
# File 'lib/micro/observers/set.rb', line 37 def include?(observer) @subscribers.include?(observer) end |
#inspect ⇒ Object
70 71 72 73 74 |
# File 'lib/micro/observers/set.rb', line 70 def inspect subs = @subscribers.to_inspect '#<%s @subject=%s @subject_changed=%p @subscribers=%p>' % [self.class, @subject, @subject_changed, subs] end |
#none? ⇒ Boolean
18 |
# File 'lib/micro/observers/set.rb', line 18 def none?; @subscribers.none?; end |
#notify(*events, data: nil) ⇒ Object
52 53 54 |
# File 'lib/micro/observers/set.rb', line 52 def notify(*events, data: nil) broadcast_if_subject_changed(Event::Names.fetch(events), data) end |
#notify!(*events, data: nil) ⇒ Object
56 57 58 |
# File 'lib/micro/observers/set.rb', line 56 def notify!(*events, data: nil) broadcast(Event::Names.fetch(events), data) end |
#off(*args) ⇒ Object
48 49 50 |
# File 'lib/micro/observers/set.rb', line 48 def off(*args) @subscribers.off(args) and self end |
#on(options = Utils::EMPTY_HASH) ⇒ Object
45 |
# File 'lib/micro/observers/set.rb', line 45 def on( = Utils::EMPTY_HASH); @subscribers.on() and self; end |
#once(options = Utils::EMPTY_HASH) ⇒ Object
46 |
# File 'lib/micro/observers/set.rb', line 46 def once( = Utils::EMPTY_HASH); @subscribers.once() and self; end |
#some? ⇒ Boolean
19 |
# File 'lib/micro/observers/set.rb', line 19 def some?; !none?; end |
#subject_changed(state) ⇒ Object
27 28 29 30 31 |
# File 'lib/micro/observers/set.rb', line 27 def subject_changed(state) return @subject_changed = state if state == true || state == false raise ArgumentError, INVALID_BOOLEAN_MSG end |
#subject_changed! ⇒ Object
33 34 35 |
# File 'lib/micro/observers/set.rb', line 33 def subject_changed! subject_changed(true) end |
#subject_changed? ⇒ Boolean
21 22 23 |
# File 'lib/micro/observers/set.rb', line 21 def subject_changed? @subject_changed end |