hotseat 0.1.1 → 0.1.2

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/hotseat.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{hotseat}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Elad Kehat"]
12
- s.date = %q{2011-08-06}
12
+ s.date = %q{2011-08-17}
13
13
  s.email = %q{eladkehat@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "README.rdoc",
24
24
  "Rakefile",
25
25
  "VERSION",
26
+ "hotseat.gemspec",
26
27
  "lib/hotseat.rb",
27
28
  "lib/hotseat/hotseat.rb",
28
29
  "lib/hotseat/queue.rb",
data/lib/hotseat/queue.rb CHANGED
@@ -54,7 +54,10 @@ module Hotseat
54
54
  end
55
55
 
56
56
  def add(doc_id)
57
- @db.update_doc(doc_id) {|doc| Queue.patch doc }
57
+ @db.update_doc(doc_id) do |doc|
58
+ Queue.patch doc
59
+ yield doc if block_given?
60
+ end
58
61
  end
59
62
 
60
63
  def add_bulk(doc_ids)
@@ -101,6 +104,7 @@ module Hotseat
101
104
  else
102
105
  Queue.mark_done( Queue.remove_lock( doc ) )
103
106
  end
107
+ yield doc if block_given?
104
108
  end
105
109
  end
106
110
 
@@ -154,4 +158,4 @@ module Hotseat
154
158
  end
155
159
 
156
160
  end
157
- end
161
+ end
@@ -53,7 +53,7 @@ module Hotseat
53
53
  doc.should_not have_key(Hotseat.config[:object_name])
54
54
  end
55
55
  end
56
-
56
+
57
57
  describe "#add_lock" do
58
58
  it "should add a lock object on a patched document" do
59
59
  doc = Queue.add_lock( Queue.patch( sample_doc ) )
@@ -72,7 +72,7 @@ module Hotseat
72
72
  @doc.should have_key(Hotseat.config[:object_name])
73
73
  end
74
74
  end
75
-
75
+
76
76
  describe "#locked?" do
77
77
  it "should be true for a locked document" do
78
78
  doc = Queue.add_lock( Queue.patch( sample_doc ) )
@@ -87,7 +87,7 @@ module Hotseat
87
87
  Queue.locked?(doc).should be_false
88
88
  end
89
89
  end
90
-
90
+
91
91
  describe "#mark_done" do
92
92
  before(:each) { @doc = Queue.mark_done( Queue.patch( sample_doc ) ) }
93
93
  it "should leave the queue patch intact" do
@@ -98,13 +98,26 @@ module Hotseat
98
98
  patch.should have_key('done')
99
99
  end
100
100
  end
101
-
101
+
102
102
  describe "#add" do
103
- it "should add a document to the queue, given a doc id" do
103
+ before(:each) do
104
104
  reset_test_queue!
105
- doc_id = DB.save_doc(sample_doc)['id']
106
- @q.add doc_id
107
- DB.get(doc_id).should have_key(Hotseat.config[:object_name])
105
+ @doc_id = DB.save_doc(sample_doc)['id']
106
+ end
107
+
108
+ it "should add a document to the queue, given a doc id" do
109
+ @q.add @doc_id
110
+ DB.get(@doc_id).should have_key(Hotseat.config[:object_name])
111
+ end
112
+
113
+ it "should save changes made in the block" do
114
+ @q.add(@doc_id) do |doc|
115
+ doc['field'] = 'changed value'
116
+ doc['another_field'] = 'another value'
117
+ end
118
+ doc = DB.get(@doc_id)
119
+ doc['field'].should == 'changed value'
120
+ doc['another_field'].should == 'another value'
108
121
  end
109
122
  end
110
123
 
@@ -270,6 +283,16 @@ module Hotseat
270
283
  doc = DB.get(@doc_id)
271
284
  doc.should_not have_key(Hotseat.config[:object_name])
272
285
  end
286
+
287
+ it "should save any changes made in the block" do
288
+ @q.remove(@doc_id) do |doc|
289
+ doc['field'] = 'changed value'
290
+ doc['another_field'] = 'another value'
291
+ end
292
+ doc = DB.get(@doc_id)
293
+ doc['field'].should == 'changed value'
294
+ doc['another_field'].should == 'another value'
295
+ end
273
296
  end
274
297
 
275
298
  describe "#remove_bulk" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotseat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-06 00:00:00.000000000Z
12
+ date: 2011-08-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: couchrest
16
- requirement: &76166650 !ruby/object:Gem::Requirement
16
+ requirement: &75234680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *76166650
24
+ version_requirements: *75234680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &76165700 !ruby/object:Gem::Requirement
27
+ requirement: &75234410 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *76165700
35
+ version_requirements: *75234410
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: yard
38
- requirement: &76165210 !ruby/object:Gem::Requirement
38
+ requirement: &75234140 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *76165210
46
+ version_requirements: *75234140
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &76160770 !ruby/object:Gem::Requirement
49
+ requirement: &75233890 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *76160770
57
+ version_requirements: *75233890
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &76160430 !ruby/object:Gem::Requirement
60
+ requirement: &75233580 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *76160430
68
+ version_requirements: *75233580
69
69
  description:
70
70
  email: eladkehat@gmail.com
71
71
  executables: []
@@ -103,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
103
  version: '0'
104
104
  segments:
105
105
  - 0
106
- hash: -1003361075
106
+ hash: 620751953
107
107
  required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements: