Sha256: 032f9ca3829fde1ec3e1cb8647a771c6931e4f2f6193dce5b14d84112f20c4c2

Contents?: true

Size: 774 Bytes

Versions: 13

Compression:

Stored size: 774 Bytes

Contents

$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)

require 'bundler'
Bundler.setup(:default, :test)

require "lolitra"

class TestBus
  def initialize
    @handlers = {}
    @unmarshallers = {}
  end

  def publish_directly(message_key, message_payload)
    publish(@unmarshallers[message_key].unmarshall(message_payload))
  end

  def publish(message)
    @handlers[message.class.name].each do |handler|
      handler.handle(message)
    end
  end

  def pull_subscribe(message_class, handler_class)
    subscribe(message_class, handler_class)
  end
  
  def subscribe(message_class, handler_class)
    @unmarshallers[message_class.message_key] = message_class
    @handlers[message_class.name] ||= []
    @handlers[message_class.name] << handler_class
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
lolitra-0.2.4 spec/spec_helper.rb
lolitra-0.2.3 spec/spec_helper.rb
lolitra-0.2.2 spec/spec_helper.rb
lolitra-0.2.1 spec/spec_helper.rb
lolitra-0.2.0 spec/spec_helper.rb
lolitra-0.1.0c spec/spec_helper.rb
lolitra-0.1.0b spec/spec_helper.rb
lolitra-0.1.3 spec/spec_helper.rb
lolitra-0.1.2 spec/spec_helper.rb
lolitra-0.1.1 spec/spec_helper.rb
lolitra-0.1.0 spec/spec_helper.rb
lolitra-0.0.5 spec/spec_helper.rb
lolitra-0.0.4 spec/spec_helper.rb