rufus-cloche 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
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\