rufus-cloche 0.1.15 → 0.1.16

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.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