Sha256: 324a4de877560bc99c65ae366e246b925935679eaed675a9296ed6c27bf6803b

Contents?: true

Size: 737 Bytes

Versions: 5

Compression:

Stored size: 737 Bytes

Contents

module DeliveryBoy

  # A fake implementation that is useful for testing.
  class Fake
    FakeMessage = Struct.new(:value, :topic, :key, :partition, :partition_key)

    def initialize
      @messages = Hash.new {|h, k| h[k] = [] }
    end

    def deliver(value, topic:, key: nil, partition: nil, partition_key: nil)
      message = FakeMessage.new(value, topic, key, partition, partition_key)
      @messages[topic] << message

      nil
    end

    alias deliver_async! deliver

    def shutdown
      clear
    end

    # Clear all messages stored in memory.
    def clear
      @messages.clear
    end

    # Return all messages written to the specified topic.
    def messages_for(topic)
      @messages[topic]
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
delivery_boy-0.2.4 lib/delivery_boy/fake.rb
delivery_boy-0.2.3 lib/delivery_boy/fake.rb
delivery_boy-0.2.2 lib/delivery_boy/fake.rb
delivery_boy-0.2.1 lib/delivery_boy/fake.rb
delivery_boy-0.2.0 lib/delivery_boy/fake.rb