Sha256: 974929e89ccbe3006027186b65ecf0df8c96154fcf3348b639f492a41e1e9acb

Contents?: true

Size: 401 Bytes

Versions: 4

Compression:

Stored size: 401 Bytes

Contents

module Noam
  class MessageFilter
    def initialize
      @hears = {}
    end

    def hear(event_name, &block)
      @hears[event_name] ||= []
      @hears[event_name] << block
    end

    def receive(message)
      blocks = @hears[message.event] || []
      blocks.each do |block|
        block.call(message)
      end
      message
    end

    def hears
      @hears.keys.uniq
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
noam_lemma-0.2.1.3 lib/noam_lemma/message_filter.rb
noam_lemma-0.2.1.2 lib/noam_lemma/message_filter.rb
noam_lemma-0.2.1.1 lib/noam_lemma/message_filter.rb
noam_lemma-0.2.1 lib/noam_lemma/message_filter.rb