Sha256: 537d9e888b7716b846e158ced0a6141dc6549231f18db59dda907e8f47f88dc6
Contents?: true
Size: 591 Bytes
Versions: 2
Compression:
Stored size: 591 Bytes
Contents
require 'active_support/core_ext/object/blank' module Slatan ## class to Event Dispatching for concerns module Ear @concerns = [] class << self ## register subscriber # @param concern subscriber # @param block<option> condition for dispatching event def register(concern, &block) @concerns << [concern, block] end ## publish to subscribers def hear(msg) @concerns.each do |concern, block| if block.blank? || block.call(msg) concern.hear(msg) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
slatan-0.2.2 | lib/slatan/ear.rb |
slatan-0.2.0 | lib/slatan/ear.rb |