rufus-cloche 0.1.17 → 0.1.18
Sign up to get free protection for your applications and to get access to all the features.
- 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
|