silver 0.2.1 → 0.2.3
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.
- data/VERSION +1 -1
- data/lib/silver/cache.rb +15 -2
- data/silver.gemspec +2 -2
- metadata +60 -60
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
data/lib/silver/cache.rb
CHANGED
@@ -123,8 +123,11 @@ module Silver
|
|
123
123
|
#
|
124
124
|
# length is the number of entries to reduce the redis to
|
125
125
|
|
126
|
-
def cull(length)
|
127
|
-
|
126
|
+
def cull(length,unique_key=nil)
|
127
|
+
|
128
|
+
if unique_key
|
129
|
+
cull_dupes_by(unique_key)
|
130
|
+
end
|
128
131
|
@r.ltrim(@key,0,length-1)
|
129
132
|
|
130
133
|
end
|
@@ -136,6 +139,16 @@ module Silver
|
|
136
139
|
# Also turns every result hash into JSON before writing because Redis is string based.
|
137
140
|
# Find will automatically parse these JSON strings upon retrieval.
|
138
141
|
|
142
|
+
def cull_dupes_by(unique_key)
|
143
|
+
dup_indices = []
|
144
|
+
results = @r.lrange(@key,0,-1)
|
145
|
+
keyed_results = results.map{|q| JSON.parse(q)[unique_key]}
|
146
|
+
elems = keyed_results.inject([]){|memo,obj| memo.include?(obj) ? memo << "dup" : memo << obj }
|
147
|
+
elems.each_with_index{|obj,i| dup_indices << i if obj == "dup"}
|
148
|
+
dup_indices.each{|i| @r.lset(@key,i,"dup")}
|
149
|
+
@r.lrem(@key,0,"dup")
|
150
|
+
end
|
151
|
+
|
139
152
|
def write_new(results)
|
140
153
|
|
141
154
|
new_date = results[0][@time_field].to_s
|
data/silver.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{silver}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Erik Hin-tone"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-05-17}
|
13
13
|
s.description = %q{A lightweight, Redis-backed cacher and indexer for databases, REST API's, really anything you can query.}
|
14
14
|
s.email = %q{hinton.erik@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: silver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Erik Hin-tone
|
@@ -15,13 +15,13 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-17 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
22
|
+
type: :development
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
@@ -32,12 +32,12 @@ dependencies:
|
|
32
32
|
- 3
|
33
33
|
- 0
|
34
34
|
version: 2.3.0
|
35
|
-
|
36
|
-
|
35
|
+
name: rspec
|
36
|
+
requirement: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
|
38
|
+
type: :development
|
39
39
|
prerelease: false
|
40
|
-
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
@@ -48,12 +48,12 @@ dependencies:
|
|
48
48
|
- 0
|
49
49
|
- 0
|
50
50
|
version: 1.0.0
|
51
|
-
|
52
|
-
|
51
|
+
name: bundler
|
52
|
+
requirement: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
-
|
54
|
+
type: :development
|
55
55
|
prerelease: false
|
56
|
-
|
56
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
@@ -64,12 +64,12 @@ dependencies:
|
|
64
64
|
- 5
|
65
65
|
- 2
|
66
66
|
version: 1.5.2
|
67
|
-
|
68
|
-
|
67
|
+
name: jeweler
|
68
|
+
requirement: *id003
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
|
70
|
+
type: :development
|
71
71
|
prerelease: false
|
72
|
-
|
72
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ">="
|
@@ -78,12 +78,12 @@ dependencies:
|
|
78
78
|
segments:
|
79
79
|
- 0
|
80
80
|
version: "0"
|
81
|
-
|
82
|
-
|
81
|
+
name: rcov
|
82
|
+
requirement: *id004
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
|
84
|
+
type: :development
|
85
85
|
prerelease: false
|
86
|
-
|
86
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
87
87
|
none: false
|
88
88
|
requirements:
|
89
89
|
- - ~>
|
@@ -94,12 +94,12 @@ dependencies:
|
|
94
94
|
- 1
|
95
95
|
- 1
|
96
96
|
version: 2.1.1
|
97
|
-
|
98
|
-
|
97
|
+
name: redis
|
98
|
+
requirement: *id005
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
|
-
|
100
|
+
type: :development
|
101
101
|
prerelease: false
|
102
|
-
|
102
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
103
103
|
none: false
|
104
104
|
requirements:
|
105
105
|
- - ">="
|
@@ -110,12 +110,12 @@ dependencies:
|
|
110
110
|
- 7
|
111
111
|
- 7
|
112
112
|
version: 0.7.7
|
113
|
-
|
114
|
-
|
113
|
+
name: yajl-ruby
|
114
|
+
requirement: *id006
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
|
-
|
116
|
+
type: :development
|
117
117
|
prerelease: false
|
118
|
-
|
118
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
119
119
|
none: false
|
120
120
|
requirements:
|
121
121
|
- - ~>
|
@@ -126,12 +126,12 @@ dependencies:
|
|
126
126
|
- 2
|
127
127
|
- 0
|
128
128
|
version: 0.2.0
|
129
|
-
|
130
|
-
|
129
|
+
name: text
|
130
|
+
requirement: *id007
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
|
-
|
132
|
+
type: :development
|
133
133
|
prerelease: false
|
134
|
-
|
134
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
135
135
|
none: false
|
136
136
|
requirements:
|
137
137
|
- - ~>
|
@@ -142,12 +142,12 @@ dependencies:
|
|
142
142
|
- 0
|
143
143
|
- 0
|
144
144
|
version: 1.0.0
|
145
|
-
|
146
|
-
|
145
|
+
name: dm-core
|
146
|
+
requirement: *id008
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
|
-
|
148
|
+
type: :development
|
149
149
|
prerelease: false
|
150
|
-
|
150
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
151
151
|
none: false
|
152
152
|
requirements:
|
153
153
|
- - ~>
|
@@ -158,12 +158,12 @@ dependencies:
|
|
158
158
|
- 0
|
159
159
|
- 0
|
160
160
|
version: 1.0.0
|
161
|
-
|
162
|
-
|
161
|
+
name: dm-sqlite-adapter
|
162
|
+
requirement: *id009
|
163
163
|
- !ruby/object:Gem::Dependency
|
164
|
-
|
164
|
+
type: :runtime
|
165
165
|
prerelease: false
|
166
|
-
|
166
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
167
167
|
none: false
|
168
168
|
requirements:
|
169
169
|
- - ~>
|
@@ -174,12 +174,12 @@ dependencies:
|
|
174
174
|
- 1
|
175
175
|
- 1
|
176
176
|
version: 2.1.1
|
177
|
-
|
178
|
-
|
177
|
+
name: redis
|
178
|
+
requirement: *id010
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
|
-
|
180
|
+
type: :runtime
|
181
181
|
prerelease: false
|
182
|
-
|
182
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
183
183
|
none: false
|
184
184
|
requirements:
|
185
185
|
- - ">="
|
@@ -190,12 +190,12 @@ dependencies:
|
|
190
190
|
- 7
|
191
191
|
- 7
|
192
192
|
version: 0.7.7
|
193
|
-
|
194
|
-
|
193
|
+
name: yajl-ruby
|
194
|
+
requirement: *id011
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
|
-
|
196
|
+
type: :runtime
|
197
197
|
prerelease: false
|
198
|
-
|
198
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
199
199
|
none: false
|
200
200
|
requirements:
|
201
201
|
- - ~>
|
@@ -206,12 +206,12 @@ dependencies:
|
|
206
206
|
- 2
|
207
207
|
- 0
|
208
208
|
version: 0.2.0
|
209
|
-
|
210
|
-
|
209
|
+
name: text
|
210
|
+
requirement: *id012
|
211
211
|
- !ruby/object:Gem::Dependency
|
212
|
-
|
212
|
+
type: :development
|
213
213
|
prerelease: false
|
214
|
-
|
214
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
215
215
|
none: false
|
216
216
|
requirements:
|
217
217
|
- - ~>
|
@@ -222,12 +222,12 @@ dependencies:
|
|
222
222
|
- 0
|
223
223
|
- 0
|
224
224
|
version: 1.0.0
|
225
|
-
|
226
|
-
|
225
|
+
name: dm-core
|
226
|
+
requirement: *id013
|
227
227
|
- !ruby/object:Gem::Dependency
|
228
|
-
|
228
|
+
type: :development
|
229
229
|
prerelease: false
|
230
|
-
|
230
|
+
version_requirements: &id014 !ruby/object:Gem::Requirement
|
231
231
|
none: false
|
232
232
|
requirements:
|
233
233
|
- - ~>
|
@@ -238,8 +238,8 @@ dependencies:
|
|
238
238
|
- 0
|
239
239
|
- 0
|
240
240
|
version: 1.0.0
|
241
|
-
|
242
|
-
|
241
|
+
name: dm-sqlite-adapter
|
242
|
+
requirement: *id014
|
243
243
|
description: A lightweight, Redis-backed cacher and indexer for databases, REST API's, really anything you can query.
|
244
244
|
email: hinton.erik@gmail.com
|
245
245
|
executables: []
|