Sha256: df82dd5ff78cd6331ea0a3f2b539e564c2c5db723d6daf63931d65d97d9514c8

Contents?: true

Size: 868 Bytes

Versions: 27

Compression:

Stored size: 868 Bytes

Contents

module DispatchRider
  class Publisher::Base

    class << self

      def subject(subject)
        @subject = subject
      end

      def destinations(destinations)
        @destinations = Array(destinations)
      end

      def default_publisher
        @@default_publisher ||= DispatchRider::Publisher.new
      end

      def publish(*args, &block)
        raise NotImplementedError
      end

    end

    def initialize(publisher = nil)
      @publisher = publisher
    end

    def publish(body)
      publisher.publish(destinations: destinations, message: { subject: subject, body: body })
    end

    private

    def publisher
      @publisher || self.class.default_publisher
    end

    def destinations
      self.class.instance_variable_get(:@destinations)
    end

    def subject
      self.class.instance_variable_get(:@subject)
    end

  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
dispatch-rider-1.2.10 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.9 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.8 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.7 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.6 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.5 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.4 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.3 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.2 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.1 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.2.0 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.1.7 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.1.6 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.1.5 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.1.4 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.0.3 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.0.2 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.0.1 lib/dispatch-rider/publisher/base.rb
dispatch-rider-1.0.0 lib/dispatch-rider/publisher/base.rb
dispatch-rider-0.2.7 lib/dispatch-rider/publisher/base.rb