module CanCan::PubSub
Public Instance Methods
subscribe(event, target = nil, &block)
click to toggle source
# File lib/cancan/pub_sub.rb, line 7 def subscribe(event, target = nil, &block) events[event] ||= [] if target events[event] << target elsif block events[event] << block else raise ArgumentError end self end
Private Instance Methods
events()
click to toggle source
# File lib/cancan/pub_sub.rb, line 21 def events @events ||= {}.with_indifferent_access end
publish(event)
click to toggle source
# File lib/cancan/pub_sub.rb, line 25 def publish(event) return if events[event].nil? events[event].each do |handler| if handler.is_a? Symbol send(handler, event, self) else handler.call(event, self) end end end