Module: ObservableRoles::Publisher

Defined in:
lib/observable_roles.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



50
51
52
# File 'lib/observable_roles.rb', line 50

def self.included(base)
  attr_accessor :role
end

Instance Method Details

#publish_event(event_name, data = {}) ⇒ Object



65
66
67
68
69
70
71
72
# File 'lib/observable_roles.rb', line 65

def publish_event(event_name, data={})
  return unless @observing_subscriber
  @observing_subscriber.each do |s|
    if !block_given? || yield(s)
      s.capture_observable_event(role, event_name, data)
    end
  end
end

#subscribe(s) ⇒ Object



54
55
56
57
# File 'lib/observable_roles.rb', line 54

def subscribe(s)
  @observing_subscriber = [] unless @observing_subscriber
  @observing_subscriber << s
end

#unsubscribe(s) ⇒ Object



59
60
61
62
63
# File 'lib/observable_roles.rb', line 59

def unsubscribe(s)
  unless @observing_subscriber.blank?
    @observing_subscriber.delete(s)
  end
end