redqueen 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9cdfc29b46a60107905a56c6a3254b6702cda6e1
4
- data.tar.gz: 39b6c165bb252ce13a31021bfaf816f34b074c6c
3
+ metadata.gz: cf853c37d98501c9ba437f10f1e97a1be014b328
4
+ data.tar.gz: b5885feb9955ec1b984c43f36c6327606545e5db
5
5
  SHA512:
6
- metadata.gz: ad5bde98655bfcee8add57898036b6a597c391b995044847f42db1f43fccb00de61cb50a8e918a08e9b7e5aca0fdf9ae35dac72ed46982f450b89e41493924f8
7
- data.tar.gz: 17bfe44cfee285bd21be1ed445b2a5f12f8f938dd9c984692943b2bf497c141335d9628c4da1505d957854be69b813da7863ebdb8ecfff5475e8a1fcdcdd91c3
6
+ metadata.gz: 5414cfeb3b0892ec9dbb3d208460e006a348410a6232ddb65d2a9ead4488a4b4d1aa95f7236dd684731b6b25c106789e456b7fbf52a7a896bef74459d25e954a
7
+ data.tar.gz: 51bf45cc66ffd9f427f03bcdcecbf1fa954fa944107a215627a13f74d7eefb360145edd35ab621b7b85322c53b2495397e64a6a6a878c1efeb86bdc1ca9feaac
@@ -9,10 +9,19 @@ module RedQueen
9
9
  unpack @client.get prefix(key)
10
10
  end
11
11
 
12
+ def mget keys
13
+ return [] if keys.nil? or keys.empty?
14
+ @client.mget(keys.map{|k| prefix(k)}).map{|v| unpack(v)}
15
+ end
16
+
12
17
  def set key, value
13
18
  @client.set prefix(key), value.to_msgpack
14
19
  end
15
20
 
21
+ def mset hash
22
+ @client.mset hash.flat_map{|k, v| [prefix(k), v.to_msgpack]}
23
+ end
24
+
16
25
  def select index
17
26
  @client.select index
18
27
  end
@@ -1,3 +1,3 @@
1
1
  module Redqueen
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/redqueen.rb CHANGED
@@ -7,7 +7,7 @@ require 'active_support/all'
7
7
  module RedQueen
8
8
  class Queen
9
9
  attr_reader :clients
10
- delegate :get, :set, to: :client
10
+ delegate :get, :set, :mget, :mset, to: :client
11
11
 
12
12
  def initialize servers
13
13
  @clients = [servers].reject{|s| s.blank?}.flatten.map do |server|
@@ -20,4 +20,25 @@ describe RedQueen::Client do
20
20
  @rq.set ['key2'], {hello: 'world2'}
21
21
  MessagePack.unpack(@redis.get('TestApp:testenv:key2')).should == {"hello" => "world2"}
22
22
  end
23
+
24
+ it 'should mget' do
25
+ @rq.set 'key1', "abc"
26
+ @rq.set ['mod1','key1'], "def"
27
+ @rq.set ['key2'], {hello: 'world2'}
28
+ @rq.mget(['key1', ['mod1','key1']]).should == ["abc", "def"]
29
+ @rq.mget(['key1', 'key2']).should == ["abc", {"hello" => "world2"}]
30
+ @rq.mget(['key1', ['key2']]).should == ["abc", {"hello" => "world2"}]
31
+ @rq.mget(['key1', 'non_existent_key', ['key2']]).should == ["abc", nil, {"hello" => "world2"}]
32
+ @rq.mget([nil, 'non_existent_key', ['key2']]).should == [nil, nil, {"hello" => "world2"}]
33
+ @rq.mget([nil]).should == [nil]
34
+ @rq.mget([]).should == []
35
+ @rq.mget(nil).should == []
36
+ end
37
+
38
+ it 'should mset' do
39
+ @rq.mset hello: 'world', inty: 'minty'
40
+ @rq.mget(['hello', 'inty']).should == ['world', 'minty']
41
+ @rq.mset({['m1', 'k1'] => 'a1', "k2" => 'a2', 24 => 42})
42
+ @rq.mget([['m1', 'k1'], 'k2', '24']).should == ['a1', 'a2', 42]
43
+ end
23
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redqueen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sudhir Jonathan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-03 00:00:00.000000000 Z
11
+ date: 2013-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis