rufus-cloche 0.1.17 → 0.1.18
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/CHANGELOG.txt +6 -0
- data/Rakefile +1 -1
- data/lib/rufus/cloche.rb +22 -7
- data/rufus-cloche.gemspec +5 -5
- data/test/test.rb +15 -9
- metadata +5 -5
data/CHANGELOG.txt
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
= rufus-cloche CHANGELOG.txt
|
3
3
|
|
4
4
|
|
5
|
+
== rufus-cloche - 0.1.18 released 2010/08/05
|
6
|
+
|
7
|
+
- get_many(type, regex, :count => true)
|
8
|
+
- get_many(type, regex, :skip => 100, :limit => 25) (added :skip)
|
9
|
+
|
10
|
+
|
5
11
|
== rufus-cloche - 0.1.17 released 2010/05/04
|
6
12
|
|
7
13
|
- for ruote-beanstalk : put/get_many now accept strings or symbols as opts keys
|
data/Rakefile
CHANGED
@@ -40,7 +40,7 @@ Strives to be process-safe and thread-safe.
|
|
40
40
|
|
41
41
|
#gem.add_dependency 'yajl-ruby'
|
42
42
|
#gem.add_dependency 'json'
|
43
|
-
gem.add_dependency 'rufus-json', '>= 0.2.
|
43
|
+
gem.add_dependency 'rufus-json', '>= 0.2.4'
|
44
44
|
gem.add_development_dependency 'rake'
|
45
45
|
gem.add_development_dependency 'yard'
|
46
46
|
gem.add_development_dependency 'jeweler'
|
data/lib/rufus/cloche.rb
CHANGED
@@ -43,7 +43,7 @@ module Rufus
|
|
43
43
|
#
|
44
44
|
class Cloche
|
45
45
|
|
46
|
-
VERSION = '0.1.
|
46
|
+
VERSION = '0.1.18'
|
47
47
|
|
48
48
|
WIN = (RUBY_PLATFORM.match(/mswin|mingw/) != nil)
|
49
49
|
|
@@ -172,8 +172,10 @@ module Rufus
|
|
172
172
|
#
|
173
173
|
# == opts
|
174
174
|
#
|
175
|
-
#
|
176
|
-
#
|
175
|
+
# :skip and :limit are understood (pagination).
|
176
|
+
#
|
177
|
+
# If :count => true, the query will simply return the number of documents
|
178
|
+
# that matched.
|
177
179
|
#
|
178
180
|
def get_many (type, key_match=nil, opts={})
|
179
181
|
|
@@ -184,7 +186,11 @@ module Rufus
|
|
184
186
|
return [] unless File.exist?(d)
|
185
187
|
|
186
188
|
docs = []
|
189
|
+
skipped = 0
|
190
|
+
|
187
191
|
limit = opts['limit']
|
192
|
+
skip = opts['skip']
|
193
|
+
count = opts['count'] ? 0 : nil
|
188
194
|
|
189
195
|
files = Dir[File.join(d, '**', '*.json')].sort { |p0, p1|
|
190
196
|
File.basename(p0) <=> File.basename(p1)
|
@@ -194,12 +200,21 @@ module Rufus
|
|
194
200
|
|
195
201
|
key = File.basename(fn, '.json')
|
196
202
|
|
197
|
-
if (not key_match)
|
203
|
+
if (not key_match) or key.match(key_match)
|
204
|
+
|
205
|
+
skipped = skipped + 1
|
206
|
+
next if skip and skipped <= skip
|
198
207
|
|
199
208
|
doc = get(type, key)
|
200
|
-
|
209
|
+
next unless doc
|
210
|
+
|
211
|
+
if count
|
212
|
+
count = count + 1
|
213
|
+
else
|
214
|
+
docs << doc
|
215
|
+
end
|
201
216
|
|
202
|
-
break if limit
|
217
|
+
break if limit and docs.size >= limit
|
203
218
|
end
|
204
219
|
end
|
205
220
|
|
@@ -209,7 +224,7 @@ module Rufus
|
|
209
224
|
#docs.sort { |doc0, doc1| doc0['_id'] <=> doc1['_id'] }
|
210
225
|
# let's trust filename order
|
211
226
|
|
212
|
-
docs
|
227
|
+
count ? count : docs
|
213
228
|
end
|
214
229
|
|
215
230
|
# Removes entirely documents of a given type.
|
data/rufus-cloche.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rufus-cloche}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.18"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["John Mettraux"]
|
12
|
-
s.date = %q{2010-05
|
12
|
+
s.date = %q{2010-08-05}
|
13
13
|
s.description = %q{
|
14
14
|
A very stupid JSON hash store.
|
15
15
|
|
@@ -53,18 +53,18 @@ Strives to be process-safe and thread-safe.
|
|
53
53
|
s.specification_version = 3
|
54
54
|
|
55
55
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
56
|
-
s.add_runtime_dependency(%q<rufus-json>, [">= 0.2.
|
56
|
+
s.add_runtime_dependency(%q<rufus-json>, [">= 0.2.4"])
|
57
57
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
58
58
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
59
59
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
60
60
|
else
|
61
|
-
s.add_dependency(%q<rufus-json>, [">= 0.2.
|
61
|
+
s.add_dependency(%q<rufus-json>, [">= 0.2.4"])
|
62
62
|
s.add_dependency(%q<rake>, [">= 0"])
|
63
63
|
s.add_dependency(%q<yard>, [">= 0"])
|
64
64
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
65
65
|
end
|
66
66
|
else
|
67
|
-
s.add_dependency(%q<rufus-json>, [">= 0.2.
|
67
|
+
s.add_dependency(%q<rufus-json>, [">= 0.2.4"])
|
68
68
|
s.add_dependency(%q<rake>, [">= 0"])
|
69
69
|
s.add_dependency(%q<yard>, [">= 0"])
|
70
70
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
data/test/test.rb
CHANGED
@@ -169,15 +169,6 @@ class ClocheTest < Test::Unit::TestCase
|
|
169
169
|
@c.get_many('person').collect { |e| e['_id'] })
|
170
170
|
end
|
171
171
|
|
172
|
-
def test_get_many_limit
|
173
|
-
|
174
|
-
load_people
|
175
|
-
|
176
|
-
assert_equal(
|
177
|
-
%w[ hiro jami ],
|
178
|
-
@c.get_many('person', nil, :limit => 2).collect { |e| e['_id'] })
|
179
|
-
end
|
180
|
-
|
181
172
|
def test_dot_id
|
182
173
|
|
183
174
|
@c.put({ '_id' => 'something.0', 'type' => 'nothing', 'color' => 'blue' })
|
@@ -209,6 +200,21 @@ class ClocheTest < Test::Unit::TestCase
|
|
209
200
|
assert_equal %w[ chicko-chan ], @c.real_ids('animal')
|
210
201
|
end
|
211
202
|
|
203
|
+
def test_get_many_options
|
204
|
+
|
205
|
+
load_people
|
206
|
+
|
207
|
+
assert_equal(
|
208
|
+
%w[ hiro jami ],
|
209
|
+
@c.get_many('person', nil, :limit => 2).collect { |e| e['_id'] })
|
210
|
+
assert_equal(
|
211
|
+
%w[ john minehiko ],
|
212
|
+
@c.get_many('person', nil, :skip => 2, :limit => 2).collect { |e| e['_id'] })
|
213
|
+
|
214
|
+
assert_equal(4, @c.get_many('person', nil, :count => true))
|
215
|
+
assert_equal(2, @c.get_many('person', /^j/, :count => true))
|
216
|
+
end
|
217
|
+
|
212
218
|
protected
|
213
219
|
|
214
220
|
def load_people
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 18
|
9
|
+
version: 0.1.18
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- John Mettraux
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05
|
17
|
+
date: 2010-08-05 00:00:00 +09:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -27,8 +27,8 @@ dependencies:
|
|
27
27
|
segments:
|
28
28
|
- 0
|
29
29
|
- 2
|
30
|
-
-
|
31
|
-
version: 0.2.
|
30
|
+
- 4
|
31
|
+
version: 0.2.4
|
32
32
|
type: :runtime
|
33
33
|
version_requirements: *id001
|
34
34
|
- !ruby/object:Gem::Dependency
|