module Slacks::Observer
Public Instance Methods
on(event, &block)
click to toggle source
# File lib/slacks/observer.rb, line 7 def on(event, &block) observers_of(event).push(block) end
Protected Instance Methods
observers()
click to toggle source
# File lib/slacks/observer.rb, line 24 def observers return @observers if defined?(@observers) @observers = Concurrent::Hash.new { |hash, key| hash[key] = Concurrent::Array.new } end
observers_of(event)
click to toggle source
# File lib/slacks/observer.rb, line 20 def observers_of(event) observers[event.to_sym] end
trigger(event, *args)
click to toggle source
# File lib/slacks/observer.rb, line 13 def trigger(event, *args) raise ArgumentError, "Must specify an event to trigger" unless event observers_of(event).each do |block| block.call(*args) end end