spymemcached 0.1.2-java → 0.2.0-java
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/active_support/cache/spymemcached_store.rb +2 -2
- data/lib/spymemcached.rb +14 -8
- data/spec/spymemcached_spec.rb +30 -15
- data/spec/spymemcached_store_spec.rb +8 -8
- data/spymemcached.gemspec +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
@@ -15,7 +15,7 @@ module ActiveSupport
|
|
15
15
|
|
16
16
|
def read(key, options = nil)
|
17
17
|
super
|
18
|
-
@cache.get(key)
|
18
|
+
@cache.get(key, !(options && options[:raw]))
|
19
19
|
end
|
20
20
|
|
21
21
|
# Set the key to the given value. Pass :unless_exist => true if you want to
|
@@ -23,7 +23,7 @@ module ActiveSupport
|
|
23
23
|
def write(key, value, options = nil)
|
24
24
|
super
|
25
25
|
method = unless_exist?(options) ? :add : :set
|
26
|
-
@cache.send(method, key, value, expiry(options).to_i)
|
26
|
+
@cache.send(method, key, value, expiry(options).to_i, !(options && options[:raw]))
|
27
27
|
end
|
28
28
|
|
29
29
|
def delete(key, options = nil)
|
data/lib/spymemcached.rb
CHANGED
@@ -12,12 +12,13 @@ class Spymemcached
|
|
12
12
|
end)
|
13
13
|
end
|
14
14
|
|
15
|
-
def set(key, value, expiration = 0)
|
16
|
-
@client.set(key, expiration, value)
|
15
|
+
def set(key, value, expiration = 0, marshal = true)
|
16
|
+
@client.set(key, expiration, marshal(value, marshal))
|
17
17
|
end
|
18
18
|
|
19
|
-
def get(key)
|
20
|
-
@client.get(key)
|
19
|
+
def get(key, marshal = true)
|
20
|
+
value = @client.get(key)
|
21
|
+
marshal && value ? Marshal.load(value) : value
|
21
22
|
end
|
22
23
|
|
23
24
|
def incr(key, by = 1)
|
@@ -36,12 +37,12 @@ class Spymemcached
|
|
36
37
|
@client.prepend(0, key, value).get
|
37
38
|
end
|
38
39
|
|
39
|
-
def multiget(
|
40
|
-
Hash[*@client.getBulk(*keys).map { |k,v| [k,v] }.flatten]
|
40
|
+
def multiget(keys, marshal = true)
|
41
|
+
Hash[*@client.getBulk(*keys).map { |k,v| [k, marshal ? Marshal.load(v) : v] }.flatten]
|
41
42
|
end
|
42
43
|
|
43
|
-
def add(key, value, expiration = 0)
|
44
|
-
@client.add(key, expiration, value).get
|
44
|
+
def add(key, value, expiration = 0, marshal = true)
|
45
|
+
@client.add(key, expiration, marshal(value, marshal)).get
|
45
46
|
end
|
46
47
|
|
47
48
|
def del(key)
|
@@ -51,4 +52,9 @@ class Spymemcached
|
|
51
52
|
def flush
|
52
53
|
@client.flush
|
53
54
|
end
|
55
|
+
|
56
|
+
private
|
57
|
+
def marshal(value, marshal)
|
58
|
+
marshal ? Marshal.dump(value) : value.to_s
|
59
|
+
end
|
54
60
|
end
|
data/spec/spymemcached_spec.rb
CHANGED
@@ -22,48 +22,48 @@ describe Spymemcached do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "increments keys" do
|
25
|
-
@cache.set("number", "1")
|
25
|
+
@cache.set("number", "1", 0, false)
|
26
26
|
@cache.incr("number")
|
27
|
-
@cache.get("number").should == "2"
|
27
|
+
@cache.get("number", false).should == "2"
|
28
28
|
end
|
29
29
|
|
30
30
|
it "increments keys by a set amount" do
|
31
|
-
@cache.set("number", "1")
|
31
|
+
@cache.set("number", "1", 0, false)
|
32
32
|
@cache.incr("number", 2)
|
33
|
-
@cache.get("number").should == "3"
|
33
|
+
@cache.get("number", false).should == "3"
|
34
34
|
end
|
35
35
|
|
36
36
|
it "decrements keys" do
|
37
|
-
@cache.set("number", "2")
|
37
|
+
@cache.set("number", "2", 0, false)
|
38
38
|
@cache.decr("number")
|
39
|
-
@cache.get("number").should == "1"
|
39
|
+
@cache.get("number", false).should == "1"
|
40
40
|
end
|
41
41
|
|
42
42
|
it "decrements keys by a set amount" do
|
43
|
-
@cache.set("number", "2")
|
43
|
+
@cache.set("number", "2", 0, false)
|
44
44
|
@cache.decr("number", 2)
|
45
|
-
@cache.get("number").should == "0"
|
45
|
+
@cache.get("number", false).should == "0"
|
46
46
|
end
|
47
47
|
|
48
48
|
it "appends to keys" do
|
49
|
-
@cache.set("appendtome", "a")
|
49
|
+
@cache.set("appendtome", "a", 0, false)
|
50
50
|
@cache.append("appendtome", "b")
|
51
|
-
@cache.get("appendtome").should == "ab"
|
51
|
+
@cache.get("appendtome", false).should == "ab"
|
52
52
|
end
|
53
53
|
|
54
54
|
it "prepends to keys" do
|
55
|
-
@cache.set("prependtome", "b")
|
55
|
+
@cache.set("prependtome", "b", 0, false)
|
56
56
|
@cache.prepend("prependtome", "a")
|
57
|
-
@cache.get("prependtome").should == "ab"
|
57
|
+
@cache.get("prependtome", false).should == "ab"
|
58
58
|
end
|
59
59
|
|
60
60
|
it "returns boolean for prepend" do
|
61
|
-
@cache.set("prependtome", "b")
|
61
|
+
@cache.set("prependtome", "b", 0, false)
|
62
62
|
@cache.prepend("prependtome", "a").should == true
|
63
63
|
end
|
64
64
|
|
65
65
|
it "returns boolean for append" do
|
66
|
-
@cache.set("appendtome", "b")
|
66
|
+
@cache.set("appendtome", "b", 0, false)
|
67
67
|
@cache.append("appendtome", "a").should == true
|
68
68
|
end
|
69
69
|
|
@@ -71,7 +71,7 @@ describe Spymemcached do
|
|
71
71
|
@cache.set("a", "b")
|
72
72
|
@cache.set("b", "c")
|
73
73
|
@cache.set("c", "d")
|
74
|
-
@cache.multiget("a", "b", "c").should == {
|
74
|
+
@cache.multiget(["a", "b", "c"]).should == {
|
75
75
|
"a" => "b",
|
76
76
|
"b" => "c",
|
77
77
|
"c" => "d"
|
@@ -100,4 +100,19 @@ describe Spymemcached do
|
|
100
100
|
@cache.set("a", "b")
|
101
101
|
@cache.del("a").should == true
|
102
102
|
end
|
103
|
+
|
104
|
+
it "correctly marshals and unmarshals objects" do
|
105
|
+
@cache.set("a", {:a => "b"})
|
106
|
+
@cache.get("a").should == {:a => "b"}
|
107
|
+
end
|
108
|
+
|
109
|
+
it "supports setting and getting keys without marshalling the data" do
|
110
|
+
@cache.set("a", {:a => "b"}, 0, false)
|
111
|
+
@cache.get("a", false).should == {:a => "b"}.to_s
|
112
|
+
end
|
113
|
+
|
114
|
+
it "supports adding keys without marshalling the data" do
|
115
|
+
@cache.add("a", {:a => "b"}, 0, false)
|
116
|
+
@cache.get("a", false).should == {:a => "b"}.to_s
|
117
|
+
end
|
103
118
|
end
|
@@ -37,27 +37,27 @@ describe "SpymemcachedStore" do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "supports increment" do
|
40
|
-
@cache.write("a", "1")
|
40
|
+
@cache.write("a", "1", :raw => true)
|
41
41
|
@cache.increment("a")
|
42
|
-
@cache.read("a").should == "2"
|
42
|
+
@cache.read("a", :raw => true).should == "2"
|
43
43
|
end
|
44
44
|
|
45
45
|
it "supports incrementing by a specific amount" do
|
46
|
-
@cache.write("a", "1")
|
46
|
+
@cache.write("a", "1", :raw => true)
|
47
47
|
@cache.increment("a", 2)
|
48
|
-
@cache.read("a").should == "3"
|
48
|
+
@cache.read("a", :raw => true).should == "3"
|
49
49
|
end
|
50
50
|
|
51
51
|
it "supports decrement" do
|
52
|
-
@cache.write("a", "1")
|
52
|
+
@cache.write("a", "1", :raw => true)
|
53
53
|
@cache.decrement("a")
|
54
|
-
@cache.read("a").should == "0"
|
54
|
+
@cache.read("a", :raw => true).should == "0"
|
55
55
|
end
|
56
56
|
|
57
57
|
it "supports decrementing by a specific amount" do
|
58
|
-
@cache.write("a", "2")
|
58
|
+
@cache.write("a", "2", :raw => true)
|
59
59
|
@cache.decrement("a", 2)
|
60
|
-
@cache.read("a").should == "0"
|
60
|
+
@cache.read("a", :raw => true).should == "0"
|
61
61
|
end
|
62
62
|
|
63
63
|
it "supports :expires_in with a duration argument" do
|
data/spymemcached.gemspec
CHANGED