redqueen 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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