Sha256: dc6a94bc2a58e130702debf32f071b2fca99258ed4bd4aa02b7e29a2fc555cb4

Contents?: true

Size: 420 Bytes

Versions: 2

Compression:

Stored size: 420 Bytes

Contents

module Bloggit
  class << self
    def listeners
      @listeners ||= {}
    end
    
    def on_event(event, &block)
      listeners[event] ||= []
      listeners[event] << block
    end
    
    def fire_event(event, *args)
      results = {}
      listeners.fetch(event, []).each do |block|
        res = block.call(*args)
        results.merge!(res) if res.is_a?( Hash )
      end
      results
    end    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bloggit-1.0.3 lib/bloggit/hooks.rb
bloggit-1.0.7 lib/bloggit/hooks.rb