Sha256: a2da3a7ce94294b2f5291729dc253b19134c7fb83dc0cdeee33e0510800f3fdb

Contents?: true

Size: 850 Bytes

Versions: 8

Compression:

Stored size: 850 Bytes

Contents

module Queuel
  module Base
    class Engine
      extend Introspect
      def self.inherited(klass)
        klass.class_eval do
          def queue_klass
            self.class.const_with_nesting "Queue"
          end
        end
      end

      def initialize(credentials = {})
        self.credentials = credentials
        self.bucket_name = credentials[:bucket_name]
        self.memoized_queues = {}
      end

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

      private
      attr_accessor :credentials
      attr_accessor :bucket_name
      attr_accessor :memoized_queues

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

      def client_klass
        raise NotImplementedError, "Must define a Queue class"
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
queuel-0.4.8 lib/queuel/base/engine.rb
queuel-0.4.6 lib/queuel/base/engine.rb
queuel-0.4.5 lib/queuel/base/engine.rb
queuel-0.4.4 lib/queuel/base/engine.rb
queuel-0.4.3 lib/queuel/base/engine.rb
queuel-0.4.2 lib/queuel/base/engine.rb
queuel-0.4.1 lib/queuel/base/engine.rb
queuel-0.4.0 lib/queuel/base/engine.rb