rufus-cloche 0.1.13 → 0.1.14
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 +5 -0
- data/README.rdoc +2 -0
- data/Rakefile +2 -1
- data/lib/rufus/cloche.rb +16 -7
- data/rufus-cloche.gemspec +5 -2
- metadata +12 -2
data/CHANGELOG.txt
CHANGED
data/README.rdoc
CHANGED
@@ -11,6 +11,8 @@ The philosophy here is : every document has a revision number. You have to provi
|
|
11
11
|
|
12
12
|
A cloche assumes your documents have a 'type' and it stores documents in separate dirs, one per type.
|
13
13
|
|
14
|
+
WARNING : this library works on windows but without locking (only thread sync).
|
15
|
+
|
14
16
|
|
15
17
|
== usage
|
16
18
|
|
data/Rakefile
CHANGED
@@ -41,7 +41,8 @@ Strives to be process-safe and thread-safe.
|
|
41
41
|
#gem.add_dependency 'yajl-ruby'
|
42
42
|
#gem.add_dependency 'json'
|
43
43
|
gem.add_dependency 'rufus-json'
|
44
|
-
gem.add_development_dependency 'yard'
|
44
|
+
gem.add_development_dependency 'yard'
|
45
|
+
gem.add_development_dependency 'jeweler'
|
45
46
|
|
46
47
|
# gemspec spec : http://www.rubygems.org/read/chapter/20
|
47
48
|
end
|
data/lib/rufus/cloche.rb
CHANGED
@@ -43,7 +43,9 @@ module Rufus
|
|
43
43
|
#
|
44
44
|
class Cloche
|
45
45
|
|
46
|
-
VERSION = '0.1.
|
46
|
+
VERSION = '0.1.14'
|
47
|
+
|
48
|
+
WIN = RUBY_PLATFORM.index('mswin') != nil
|
47
49
|
|
48
50
|
attr_reader :dir
|
49
51
|
|
@@ -134,9 +136,11 @@ module Rufus
|
|
134
136
|
return cur if cur['_rev'] != drev
|
135
137
|
|
136
138
|
begin
|
139
|
+
f.close
|
137
140
|
File.delete(f.path)
|
138
141
|
nil
|
139
|
-
rescue
|
142
|
+
rescue Exception => e
|
143
|
+
#p e
|
140
144
|
false
|
141
145
|
end
|
142
146
|
end
|
@@ -217,7 +221,7 @@ module Rufus
|
|
217
221
|
def real_ids (type)
|
218
222
|
|
219
223
|
Dir[File.join(dir_for(type), '**', '*.json')].inject([]) { |a, p|
|
220
|
-
doc = do_get(
|
224
|
+
doc = do_get(p)
|
221
225
|
a << doc['_id'] if doc
|
222
226
|
a
|
223
227
|
}.sort
|
@@ -232,7 +236,8 @@ module Rufus
|
|
232
236
|
|
233
237
|
def do_get (file)
|
234
238
|
|
235
|
-
|
239
|
+
s = file.is_a?(File) ? file.read : File.read(file)
|
240
|
+
Rufus::Json.decode(s) rescue nil
|
236
241
|
end
|
237
242
|
|
238
243
|
def dir_for (type)
|
@@ -266,17 +271,21 @@ module Rufus
|
|
266
271
|
|
267
272
|
return false if file.nil?
|
268
273
|
|
269
|
-
file.flock(File::LOCK_EX)
|
274
|
+
file.flock(File::LOCK_EX) unless WIN
|
270
275
|
block.call(file)
|
271
276
|
|
272
277
|
ensure
|
273
278
|
begin
|
274
|
-
file.flock(File::LOCK_UN)
|
279
|
+
file.flock(File::LOCK_UN) unless WIN
|
275
280
|
rescue Exception => e
|
276
281
|
#p [ :lock, @fpath, e ]
|
277
282
|
#e.backtrace.each { |l| puts l }
|
278
283
|
end
|
279
|
-
|
284
|
+
begin
|
285
|
+
file.close if file
|
286
|
+
rescue Exception => e
|
287
|
+
#p [ :close_fail, e ]
|
288
|
+
end
|
280
289
|
end
|
281
290
|
end
|
282
291
|
end
|
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.14"
|
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-
|
12
|
+
s.date = %q{2010-02-13}
|
13
13
|
s.description = %q{
|
14
14
|
A very stupid JSON hash store.
|
15
15
|
|
@@ -55,13 +55,16 @@ Strives to be process-safe and thread-safe.
|
|
55
55
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
56
56
|
s.add_runtime_dependency(%q<rufus-json>, [">= 0"])
|
57
57
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
58
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
58
59
|
else
|
59
60
|
s.add_dependency(%q<rufus-json>, [">= 0"])
|
60
61
|
s.add_dependency(%q<yard>, [">= 0"])
|
62
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
61
63
|
end
|
62
64
|
else
|
63
65
|
s.add_dependency(%q<rufus-json>, [">= 0"])
|
64
66
|
s.add_dependency(%q<yard>, [">= 0"])
|
67
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
65
68
|
end
|
66
69
|
end
|
67
70
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rufus-cloche
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Mettraux
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-02-13 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -32,6 +32,16 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: "0"
|
34
34
|
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: jeweler
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
35
45
|
description: "\n\
|
36
46
|
A very stupid JSON hash store.\n\n\
|
37
47
|
It's built on top of yajl-ruby and File.lock. Defaults to 'json' (or 'json_pure') if yajl-ruby is not present (it's probably just a \"gem install yajl-ruby\" away.\n\n\
|