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 CHANGED
@@ -2,6 +2,11 @@
2
2
  = rufus-cloche CHANGELOG.txt
3
3
 
4
4
 
5
+ == rufus-cloche - 0.1.14 released 2010/02/13
6
+
7
+ - made sure it works on windows (XP)
8
+
9
+
5
10
  == rufus-cloche - 0.1.13 released 2010/01/07
6
11
 
7
12
  - implemented Cloche#ids(type) and Cloche#real_ids(type)
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', '>= 0'
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.13'
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(File.new(p))
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
- Rufus::Json.decode(file.read) rescue nil
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
- file.close rescue nil
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.13"
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-01-07}
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.13
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-01-07 00:00:00 +09:00
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\