Sha256: 0ac74f8b1e526496ec545ca08be4dc9c163436c857c04e5a824ff3d852100473

Contents?: true

Size: 693 Bytes

Versions: 17

Compression:

Stored size: 693 Bytes

Contents

module Kestrel
  class Client
    class Namespace < Proxy
      def initialize(namespace, client)
        @namespace = namespace
        @matcher = /\A#{Regexp.escape(@namespace)}:(.+)/
        super(client)
      end

      %w(set get delete flush stat).each do |method|
        class_eval "def #{method}(key, *args); client.#{method}(namespace(key), *args) end", __FILE__, __LINE__
      end

      def available_queues
        client.available_queues.map {|q| in_namespace(q) }.compact
      end

      def in_namespace(key)
        if match = @matcher.match(key)
          match[1]
        end
      end

      def namespace(key)
        "#{@namespace}:#{key}"
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
kestrel-client-0.7.2 lib/kestrel/client/namespace.rb
kestrel-client-0.6.5 lib/kestrel/client/namespace.rb
kestrel-client-0.6.4 lib/kestrel/client/namespace.rb
kestrel-client-0.7.1 lib/kestrel/client/namespace.rb
kestrel-client-0.7.0 lib/kestrel/client/namespace.rb
kestrel-client-0.6.1 lib/kestrel/client/namespace.rb
kestrel-client-0.6.0 lib/kestrel/client/namespace.rb
kestrel-client-0.5.8 lib/kestrel/client/namespace.rb
kestrel-client-0.5.7 lib/kestrel/client/namespace.rb
kestrel-client-0.5.3 lib/kestrel/client/namespace.rb
kestrel-client-0.5.2 lib/kestrel/client/namespace.rb
kestrel-client-0.5.1 lib/kestrel/client/namespace.rb
kestrel-client-0.5.0 lib/kestrel/client/namespace.rb
kestrel-client-0.4.1 lib/kestrel/client/namespace.rb
kestrel-client-0.4.0 lib/kestrel/client/namespace.rb
kestrel-client-0.3.1 lib/kestrel/client/namespace.rb
kestrel-client-0.3.0 lib/kestrel/client/namespace.rb