rufus-cloche 0.1.15 → 0.1.16

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.16 released 2010/03/14
6
+
7
+ - :nolock option for JRuby 1.4.0 on Ubuntu
8
+
9
+
5
10
  == rufus-cloche - 0.1.15 released 2010/02/14
6
11
 
7
12
  - windows : mswin|mingw
data/Rakefile CHANGED
@@ -41,6 +41,7 @@ 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', '>= 0.2.0'
44
+ gem.add_development_dependency 'rake'
44
45
  gem.add_development_dependency 'yard'
45
46
  gem.add_development_dependency 'jeweler'
46
47
 
data/lib/rufus/cloche.rb CHANGED
@@ -43,18 +43,30 @@ module Rufus
43
43
  #
44
44
  class Cloche
45
45
 
46
- VERSION = '0.1.15'
46
+ VERSION = '0.1.16'
47
47
 
48
- WIN = RUBY_PLATFORM.match(/mswin|mingw/) != nil
48
+ WIN = (RUBY_PLATFORM.match(/mswin|mingw/) != nil)
49
49
 
50
50
  attr_reader :dir
51
51
 
52
- # Currently, the only known option is :dir
52
+ # Creates a new 'cloche'.
53
+ #
54
+ # There are 2 options :
55
+ #
56
+ # * :dir : to specify the directory into which the cloche data is store
57
+ # * :nolock : when set to true, no flock is used
58
+ #
59
+ # On the Windows platform, :nolock is set to true automatically.
60
+ #
61
+ # With JRuby 1.4.0, :nolock=true seems necessary on Ubuntu. While
62
+ # flock seems to work on MacOSX Snow Leopard.
53
63
  #
54
64
  def initialize (opts={})
55
65
 
56
66
  @dir = File.expand_path(opts[:dir] || 'cloche')
57
67
  @mutex = Mutex.new
68
+
69
+ @nolock = WIN || opts[:nolock]
58
70
  end
59
71
 
60
72
  # Puts a document (Hash) under the cloche.
@@ -271,12 +283,12 @@ module Rufus
271
283
 
272
284
  return false if file.nil?
273
285
 
274
- file.flock(File::LOCK_EX) unless WIN
286
+ file.flock(File::LOCK_EX) unless @nolock
275
287
  block.call(file)
276
288
 
277
289
  ensure
278
290
  begin
279
- file.flock(File::LOCK_UN) unless WIN
291
+ file.flock(File::LOCK_UN) unless @nolock
280
292
  rescue Exception => e
281
293
  #p [ :lock, @fpath, e ]
282
294
  #e.backtrace.each { |l| puts l }
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.15"
8
+ s.version = "0.1.16"
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-02-13}
12
+ s.date = %q{2010-03-14}
13
13
  s.description = %q{
14
14
  A very stupid JSON hash store.
15
15
 
@@ -42,7 +42,7 @@ Strives to be process-safe and thread-safe.
42
42
  s.rdoc_options = ["--charset=UTF-8"]
43
43
  s.require_paths = ["lib"]
44
44
  s.rubyforge_project = %q{rufus}
45
- s.rubygems_version = %q{1.3.5}
45
+ s.rubygems_version = %q{1.3.6}
46
46
  s.summary = %q{a very stupid JSON hash store}
47
47
  s.test_files = [
48
48
  "test/test.rb"
@@ -54,15 +54,18 @@ Strives to be process-safe and thread-safe.
54
54
 
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.2.0"])
57
+ s.add_development_dependency(%q<rake>, [">= 0"])
57
58
  s.add_development_dependency(%q<yard>, [">= 0"])
58
59
  s.add_development_dependency(%q<jeweler>, [">= 0"])
59
60
  else
60
61
  s.add_dependency(%q<rufus-json>, [">= 0.2.0"])
62
+ s.add_dependency(%q<rake>, [">= 0"])
61
63
  s.add_dependency(%q<yard>, [">= 0"])
62
64
  s.add_dependency(%q<jeweler>, [">= 0"])
63
65
  end
64
66
  else
65
67
  s.add_dependency(%q<rufus-json>, [">= 0.2.0"])
68
+ s.add_dependency(%q<rake>, [">= 0"])
66
69
  s.add_dependency(%q<yard>, [">= 0"])
67
70
  s.add_dependency(%q<jeweler>, [">= 0"])
68
71
  end
data/test/test.rb CHANGED
@@ -28,7 +28,8 @@ class ClocheTest < Test::Unit::TestCase
28
28
 
29
29
  FileUtils.rm_rf(@c_dir) rescue nil
30
30
 
31
- @c = Rufus::Cloche.new(:dir => @c_dir)
31
+ @c = Rufus::Cloche.new(
32
+ :dir => @c_dir, :nolock => (RUBY_PLATFORM.match('java') != nil))
32
33
  end
33
34
  #def teardown
34
35
  #end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rufus-cloche
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 16
9
+ version: 0.1.16
5
10
  platform: ruby
6
11
  authors:
7
12
  - John Mettraux
@@ -9,39 +14,59 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-13 00:00:00 +09:00
17
+ date: 2010-03-14 00:00:00 +09:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: rufus-json
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 2
30
+ - 0
23
31
  version: 0.2.0
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
- name: yard
35
+ name: rake
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ version: "0"
27
44
  type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
45
+ version_requirements: *id002
46
+ - !ruby/object:Gem::Dependency
47
+ name: yard
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
30
50
  requirements:
31
51
  - - ">="
32
52
  - !ruby/object:Gem::Version
53
+ segments:
54
+ - 0
33
55
  version: "0"
34
- version:
56
+ type: :development
57
+ version_requirements: *id003
35
58
  - !ruby/object:Gem::Dependency
36
59
  name: jeweler
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
60
+ prerelease: false
61
+ requirement: &id004 !ruby/object:Gem::Requirement
40
62
  requirements:
41
63
  - - ">="
42
64
  - !ruby/object:Gem::Version
65
+ segments:
66
+ - 0
43
67
  version: "0"
44
- version:
68
+ type: :development
69
+ version_requirements: *id004
45
70
  description: "\n\
46
71
  A very stupid JSON hash store.\n\n\
47
72
  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\
@@ -82,18 +107,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
107
  requirements:
83
108
  - - ">="
84
109
  - !ruby/object:Gem::Version
110
+ segments:
111
+ - 0
85
112
  version: "0"
86
- version:
87
113
  required_rubygems_version: !ruby/object:Gem::Requirement
88
114
  requirements:
89
115
  - - ">="
90
116
  - !ruby/object:Gem::Version
117
+ segments:
118
+ - 0
91
119
  version: "0"
92
- version:
93
120
  requirements: []
94
121
 
95
122
  rubyforge_project: rufus
96
- rubygems_version: 1.3.5
123
+ rubygems_version: 1.3.6
97
124
  signing_key:
98
125
  specification_version: 3
99
126
  summary: a very stupid JSON hash store