bin 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/bin/store.rb CHANGED
@@ -12,6 +12,7 @@ module Bin
12
12
  end
13
13
 
14
14
  def write(key, value, options={})
15
+ key = key.to_s
15
16
  super do
16
17
  expires = Time.now.utc + ((options && options[:expires_in]) || expires_in)
17
18
  raw = !!options[:raw]
@@ -23,7 +24,7 @@ module Bin
23
24
 
24
25
  def read(key, options=nil)
25
26
  super do
26
- if doc = collection.find_one(:_id => key, :expires_at => {'$gt' => Time.now.utc})
27
+ if doc = collection.find_one(:_id => key.to_s, :expires_at => {'$gt' => Time.now.utc})
27
28
  doc['raw'] ? doc['value'] : Marshal.load(doc['value'].to_s)
28
29
  end
29
30
  end
@@ -31,7 +32,7 @@ module Bin
31
32
 
32
33
  def delete(key, options=nil)
33
34
  super do
34
- collection.remove(:_id => key)
35
+ collection.remove(:_id => key.to_s)
35
36
  end
36
37
  end
37
38
 
@@ -69,11 +70,12 @@ module Bin
69
70
 
70
71
  private
71
72
  def counter_key_upsert(key, amount)
73
+ key = key.to_s
72
74
  collection.update(
73
75
  {:_id => key}, {
74
76
  '$inc' => {:value => amount},
75
77
  '$set' => {
76
- :expires_at => Time.now.utc + 1.year,
78
+ :expires_at => Time.now.utc + 1.year,
77
79
  :raw => true
78
80
  },
79
81
  }, :upsert => true)
data/lib/bin/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module Bin
3
- Version = '0.6.2'
3
+ Version = '0.6.3'
4
4
  end
@@ -6,13 +6,10 @@ describe Bin::Store do
6
6
  collection.remove
7
7
  collection.drop_indexes
8
8
  end
9
-
10
- @collection = DB['bin_cache']
11
- @store = Bin::Store.new(@collection)
12
9
  end
13
10
 
14
- let(:store) { @store }
15
- let(:collection) { @collection }
11
+ let(:collection) { DB['bin_cache'] }
12
+ let(:store) { Bin::Store.new(collection) }
16
13
 
17
14
  it "has a collection" do
18
15
  store.collection.should == collection
@@ -23,7 +20,7 @@ describe Bin::Store do
23
20
  end
24
21
 
25
22
  it "can set default expires_in" do
26
- Bin::Store.new(@collection, :expires_in => 5.minutes).expires_in.should == 5.minutes
23
+ Bin::Store.new(collection, :expires_in => 5.minutes).expires_in.should == 5.minutes
27
24
  end
28
25
 
29
26
  describe "#write" do
@@ -59,6 +56,13 @@ describe Bin::Store do
59
56
  store.write('foo', 'bar', :expires_in => 5.seconds)
60
57
  document['expires_at'].to_i.should == (Time.now.utc + 5.seconds).to_i
61
58
  end
59
+
60
+ it "always sets key as string" do
61
+ store.write(:baz, 'wick')
62
+ doc = collection.find_one(:_id => 'baz')
63
+ doc.should_not be_nil
64
+ doc['_id'].should be_instance_of(String)
65
+ end
62
66
  end
63
67
 
64
68
  describe "#read" do
@@ -89,6 +93,10 @@ describe Bin::Store do
89
93
  store.write('foo', 'bar', :expires_in => 20.seconds)
90
94
  store.read('foo').should == 'bar'
91
95
  end
96
+
97
+ it "works with symbol" do
98
+ store.read(:foo).should == 'bar'
99
+ end
92
100
  end
93
101
 
94
102
  describe "#delete" do
@@ -101,6 +109,12 @@ describe Bin::Store do
101
109
  store.delete('foo')
102
110
  store.read('foo').should be_nil
103
111
  end
112
+
113
+ it "works with symbol" do
114
+ store.read(:foo).should_not be_nil
115
+ store.delete(:foo)
116
+ store.read(:foo).should be_nil
117
+ end
104
118
  end
105
119
 
106
120
  describe "#delete_matched" do
@@ -136,6 +150,11 @@ describe Bin::Store do
136
150
  it "returns false if key not found" do
137
151
  store.exist?('not:found:key').should be_false
138
152
  end
153
+
154
+ it "works with symbol" do
155
+ store.exist?(:foo).should be_true
156
+ store.exist?(:notfoundkey).should be_false
157
+ end
139
158
  end
140
159
 
141
160
  describe "#clear" do
@@ -158,6 +177,11 @@ describe Bin::Store do
158
177
  store.increment('views', 2)
159
178
  store.read('views').should == 3
160
179
  end
180
+
181
+ it "works with symbol" do
182
+ store.increment(:views, 2)
183
+ store.read(:views).should == 2
184
+ end
161
185
  end
162
186
 
163
187
  describe "#decrement" do
@@ -168,6 +192,12 @@ describe Bin::Store do
168
192
  store.decrement('views', 2)
169
193
  store.read('views').should == 1
170
194
  end
195
+
196
+ it "works with symbol" do
197
+ store.increment(:views, 2)
198
+ store.decrement(:views, 1)
199
+ store.read(:views).should == 1
200
+ end
171
201
  end
172
202
 
173
203
  describe "#stats" do
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 6
8
- - 2
9
- version: 0.6.2
8
+ - 3
9
+ version: 0.6.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - John Nunemaker
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-02 00:00:00 -04:00
17
+ date: 2010-06-15 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency