Module: ObservableRoles::Subscriber

Defined in:
lib/observable_roles.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



14
15
16
17
18
# File 'lib/observable_roles.rb', line 14

def self.included(base)
  attr_accessor :subscriber_lock
  attr_reader   :captured_observable_events
  base.extend(ClassMethods)
end

Instance Method Details

#capture_observable_event(role, event_name, data = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/observable_roles.rb', line 20

def capture_observable_event(role, event_name, data={})
  return     if role.nil? || event_name.nil?
  role       = role.to_sym
  event_name = event_name.to_sym
  if self.class.get_observed_publisher_callbacks.nil? || self.class.get_observed_publisher_callbacks[role].nil? || self.class.get_observed_publisher_callbacks[role][event_name].nil?
    return
  end

  @captured_observable_events ||= []
  @captured_observable_events.push({ callback: self.class.get_observed_publisher_callbacks[role][event_name], data: data })
  release_captured_events unless @subscriber_lock
end