Sha256: f9390d65cb4618b2ca2c4b602c2ac90074d6da645eef799d20b15cc2bed9a49f

Contents?: true

Size: 653 Bytes

Versions: 1

Compression:

Stored size: 653 Bytes

Contents

module SubPub
  class Subscriber
    attr_reader :options
    alias :payload :options

    def initialize(options)
      @options = options
    end

    def self.subscribe_to(topic_name)
      klass = self

      @subscription = SubPub.subscribe(topic_name) do |topic, options|
        publish(klass.new(options))
      end
    end

    def self.publish(subscription)
      subscription.on_publish
    end

    def self.subscription
      @subscription
    end

    def self.topic
      @subscription.instance_variable_get("@pattern")
    end

    def on_publish
      raise "Please define an on_publish method for #{self.class.name}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sub_pub-0.0.3 lib/sub_pub/subscriber.rb