rufus-cloche 0.1.3 → 0.1.4

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.4 released 2009/12/14
6
+
7
+ - ArgumentError raised in case of delete(doc) that has no _rev
8
+
9
+
5
10
  == rufus-cloche - 0.1.3 released 2009/12/10
6
11
 
7
12
  - added the :limit option to Cloche#get_many
data/lib/rufus/cloche.rb CHANGED
@@ -57,7 +57,7 @@ module Rufus
57
57
  end
58
58
  end
59
59
 
60
- VERSION = '0.1.3'
60
+ VERSION = '0.1.4'
61
61
 
62
62
  attr_reader :dir
63
63
 
@@ -135,6 +135,10 @@ module Rufus
135
135
  #
136
136
  def delete (doc)
137
137
 
138
+ drev = doc['_rev']
139
+
140
+ raise ArgumentError.new('cannot delete doc without _rev') unless drev
141
+
138
142
  type, key = doc['type'], doc['_id']
139
143
 
140
144
  lock(type, key) do |f|
@@ -142,7 +146,7 @@ module Rufus
142
146
  cur = do_get(f)
143
147
 
144
148
  return nil unless cur
145
- return cur if cur['_rev'] != doc['_rev']
149
+ return cur if cur['_rev'] != drev
146
150
 
147
151
  begin
148
152
  File.delete(f.path)
data/test/test.rb CHANGED
@@ -80,7 +80,7 @@ class ClocheTest < Test::Unit::TestCase
80
80
 
81
81
  def test_delete_missing
82
82
 
83
- r = @c.delete({ '_id' => 'john', 'type' => 'person', 'eyes' => 'green' })
83
+ r = @c.delete({ '_id' => 'john', 'type' => 'person', 'eyes' => 'green', '_rev' => 7 })
84
84
 
85
85
  assert_not_nil r
86
86
  end
@@ -99,11 +99,18 @@ class ClocheTest < Test::Unit::TestCase
99
99
 
100
100
  @c.put({ '_id' => 'john', 'type' => 'person', 'eyes' => 'green' })
101
101
 
102
- r = @c.delete({ '_id' => 'john', 'type' => 'person', 'eyes' => 'green' })
102
+ r = @c.delete({ '_id' => 'john', 'type' => 'person', 'eyes' => 'green', '_rev' => 9 })
103
103
 
104
104
  assert_not_nil r
105
105
  end
106
106
 
107
+ def test_delete_without_rev
108
+
109
+ assert_raise(ArgumentError) do
110
+ @c.delete({ '_id' => 'john', 'type' => 'person' })
111
+ end
112
+ end
113
+
107
114
  def test_get_many
108
115
 
109
116
  load_people
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.3
4
+ version: 0.1.4
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: 2009-12-10 00:00:00 +09:00
12
+ date: 2009-12-14 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15