iron_cache 1.2.3 → 1.3.0

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- iron_cache (1.2.1)
4
+ iron_cache (1.2.3)
5
5
  iron_core (>= 0.4.2)
6
6
 
7
7
  GEM
@@ -12,7 +12,7 @@ GEM
12
12
  memcache-client (1.8.5)
13
13
  mime-types (1.19)
14
14
  minitest (4.1.0)
15
- net-http-persistent (2.7)
15
+ net-http-persistent (2.8)
16
16
  rake (0.9.2.2)
17
17
  rest (2.0.4)
18
18
  net-http-persistent
@@ -76,6 +76,7 @@ module ActiveSupport
76
76
 
77
77
  def deserialize_entry(raw_value)
78
78
  if raw_value
79
+ raw_value = ::Base64.decode64(raw_value) rescue raw_value
79
80
  entry = Marshal.load(raw_value) rescue raw_value
80
81
  entry.is_a?(ActiveSupport::Cache::Entry) ? entry : ActiveSupport::Cache::Entry.new(entry)
81
82
  else
@@ -93,7 +94,7 @@ module ActiveSupport
93
94
  value = entry.to_s
94
95
  end
95
96
  else
96
- value = Marshal.dump(entry)
97
+ value = ::Base64.encode64 Marshal.dump(entry)
97
98
  end
98
99
  end
99
100
  end
@@ -1,4 +1,4 @@
1
- require 'uri'
1
+ require 'cgi'
2
2
 
3
3
  module IronCache
4
4
  class Caches
@@ -12,7 +12,7 @@ module IronCache
12
12
  def path(options={})
13
13
  path = "projects/#{@client.project_id}/caches"
14
14
  if options[:name]
15
- path << "/#{URI.escape(options[:name])}"
15
+ path << "/#{CGI::escape(options[:name])}"
16
16
  end
17
17
  path
18
18
  end
@@ -38,10 +38,17 @@ module IronCache
38
38
  options = {:name=>options}
39
39
  end
40
40
  options[:name] ||= @client.cache_name
41
- res = @client.parse_response(@client.get("#{path(options)}"))
41
+ res = @client.parse_response(@client.get(path(options)))
42
42
  Cache.new(@client, res)
43
43
  end
44
44
 
45
+ def clear(options={})
46
+ res = @client.post(path(options) + "/clear")
47
+ json = @client.parse_response(res, true)
48
+ #return Message.new(self, res)
49
+ return ResponseBase.new(json)
50
+ end
51
+
45
52
 
46
53
  end
47
54
 
@@ -108,6 +115,10 @@ module IronCache
108
115
  @client.items.increment(k, amount, options.merge(:cache_name=>name))
109
116
  end
110
117
 
118
+ def clear(options={})
119
+ @client.caches.clear(options.merge(:name=>name))
120
+ end
121
+
111
122
  end
112
123
 
113
124
  end
@@ -1,4 +1,4 @@
1
- require 'uri'
1
+ require 'cgi'
2
2
 
3
3
  module IronCache
4
4
  class Items
@@ -1,3 +1,3 @@
1
1
  module IronCache
2
- VERSION = "1.2.3"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -177,5 +177,38 @@ class IronCacheTests < TestBase
177
177
  end
178
178
 
179
179
 
180
+ def test_keys
181
+ @client.cache_name = 'test_keys'
182
+ clear_queue
183
+
184
+ k = "word_count_[EBook"
185
+ v = "hello world!"
186
+ res = @client.items.put(k, v)
187
+ # another naming option we could try:
188
+ #res = @client.cache('test_basics').items.put("key1", "hello world!")
189
+ p res
190
+ assert res.msg
191
+
192
+ end
193
+
194
+
195
+ def test_clear
196
+ cache = @client.cache("test_clear")
197
+ num_items = 50
198
+
199
+ num_items.times do |i|
200
+ res = cache.put("key-#{i}", "value")
201
+ end
202
+
203
+ tkey = "key-0"
204
+ assert_equal "value", cache.get(tkey).value
205
+ puts "cache.size: #{cache.size}"
206
+ assert_equal num_items, cache.size
207
+
208
+ p cache.clear
209
+ assert_nil cache.get(tkey)
210
+ assert_equal 0, cache.reload.size
211
+ end
212
+
180
213
  end
181
214
 
@@ -8,18 +8,23 @@ class IronCacheTests < TestBase
8
8
  super
9
9
  end
10
10
 
11
- def test_keys
12
- @client.cache_name = 'test_keys'
13
- clear_queue
14
-
15
- k = "word_count_[EBook"
16
- v = "hello world!"
17
- res = @client.items.put(k, v)
18
- # another naming option we could try:
19
- #res = @client.cache('test_basics').items.put("key1", "hello world!")
20
- p res
21
- assert res.msg
22
11
 
12
+ def test_clear
13
+ cache = @client.cache("test_clear")
14
+ num_items = 50
15
+
16
+ num_items.times do |i|
17
+ res = cache.put("key-#{i}", "value")
18
+ end
19
+
20
+ tkey = "key-0"
21
+ assert_equal "value", cache.get(tkey).value
22
+ puts "cache.size: #{cache.size}"
23
+ assert_equal num_items, cache.size
24
+
25
+ p cache.clear
26
+ assert_nil cache.get(tkey)
27
+ assert_equal 0, cache.reload.size
23
28
  end
24
29
 
25
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-17 00:00:00.000000000 Z
12
+ date: 2012-10-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: iron_core