Sha256: bc5ff28ae02e0bf07dca556bd53470cf1daf59d3cc5c56df1dc2829da0cc8a00

Contents?: true

Size: 802 Bytes

Versions: 1

Compression:

Stored size: 802 Bytes

Contents

require 'synapses/contract'
require 'active_support/concern'

module Synapses
  class Contract
    # @author Alexander Semyonov <al@semyonov.us>
    module Definitions
      extend ActiveSupport::Concern

      included do
        # @return [String]
        class_attribute :exchange_name
        self.exchange_name = ''

        # @return [Synapses::Contract]
        class_attribute :contract
      end

      module ClassMethods
        # @param [String] name
        # @param [Synapses::Contract] contract
        def exchange(name, contract=Synapses.default_contract)
          self.exchange_name = name
          self.contract = contract
        end
      end

      # @return [AMQP::Exchange]
      def exchange
        @exchange ||= contract.exchange(exchange_name)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
synapses-0.0.1 lib/synapses/contract/definitions.rb