Sha256: 72a97c4f65c9f1e03b3c22175546605d7b3e8757a58450bd3c4b0e5b76ff623f

Contents?: true

Size: 920 Bytes

Versions: 1

Compression:

Stored size: 920 Bytes

Contents

module Queuel
  module IronMq
    class Engine
      IronMqMissingError = Class.new(StandardError)

      def initialize(credentials = {})
        self.credentials = credentials
        self.memoized_queues = {}
      end

      def queue(which_queue)
        memoized_queues[which_queue.to_s] ||= Queue.new(client, which_queue)
      end

      private
      attr_accessor :credentials
      attr_accessor :memoized_queues

      def client
        @client ||= client_proper.new credentials
      end

      def try_typhoeus
        require 'typhoeus'
      rescue LoadError
        false
      end

      def client_proper
        if defined?(::IronMQ::Client)
          try_typhoeus
          ::IronMQ::Client
        else
          begin
            require 'iron_mq'
            ::IronMQ::Client
          rescue LoadError
            raise(IronMqMissingError)
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
queuel-0.0.1 lib/queuel/iron_mq/engine.rb