Sha256: e249a2f81215887a18c0f11855e89b1ba02971ba6ac6c0130f3b8213283da05c

Contents?: true

Size: 783 Bytes

Versions: 1

Compression:

Stored size: 783 Bytes

Contents

require 'powcloud/insurance/comm/amqp_broadcast_channel'

module Powcloud
  module Insurance
    module AgentCommunications
      module ClassMethods
        def communications(&blk)
          self.send :class_variable_set, :@@communications_block, blk
        end
      end

      # Non-blocking.
      def start_communications
        if self.class.class_variable_defined? :@@communications_block
          block = self.class.send(:class_variable_get, :@@communications_block)
          instance_eval(&block) if block # TODO: class eval?
        end  
      end

      def connect_broadcast(channel_name, type = Comm::AmqpBroadcastChannel)
        type.new channel_name, logger
      end

      def connect_direct
        raise 'Not implemented yet:('
      end
    end
  end
end  

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
powcloud-insurance-0.1.0 lib/powcloud/insurance/agent_communications.rb