module ObservableRoles::Publisher

Public Class Methods

included(base) click to toggle source
# File lib/observable_roles.rb, line 50
def self.included(base)
  attr_accessor :role
end

Public Instance Methods

publish_event(event_name, data={}) { |s| ... } click to toggle source
# File lib/observable_roles.rb, line 65
def publish_event(event_name, data={})
  return unless @observing_subscribers
  @observing_subscribers.each do |s|
    if !block_given? || yield(s)
      s.capture_observable_event(role, event_name, data)
    end
  end
end
subscribe(s) click to toggle source
# File lib/observable_roles.rb, line 54
def subscribe(s)
  @observing_subscribers = [] unless @observing_subscribers
  @observing_subscribers << s
end
unsubscribe(s) click to toggle source
# File lib/observable_roles.rb, line 59
def unsubscribe(s)
  unless @observing_subscribers.nil?
    @observing_subscribers.delete(s)
  end
end