Class: SaveQueue::ObjectQueue
- Inherits:
-
UniqQueue
show all
- Includes:
- Hooks
- Defined in:
- lib/save_queue/object_queue.rb
Constant Summary
Constants inherited
from UniqQueue
UniqQueue::DELEGATED_METHODS
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from UniqQueue
#<<, #add_all, #push
Constructor Details
Returns a new instance of ObjectQueue.
25
26
27
28
|
# File 'lib/save_queue/object_queue.rb', line 25
def initialize(*args)
super
@errors = {}
end
|
Instance Attribute Details
#errors ⇒ Hash
23
24
25
|
# File 'lib/save_queue/object_queue.rb', line 23
def errors
@errors
end
|
Instance Method Details
#add(object) ⇒ Object
30
31
32
33
34
35
36
37
38
|
# File 'lib/save_queue/object_queue.rb', line 30
def add object
run_hook :before_add, object
result = super object
run_hook :after_add, result, object
result
end
|
40
41
42
43
44
45
|
# File 'lib/save_queue/object_queue.rb', line 40
def save
save!
true
rescue SaveQueue::Error
false
end
|
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/save_queue/object_queue.rb', line 47
def save!
run_hook :before_save
@errors = {}
saved = []
@queue.each do |object|
if false == object.save
@errors[:save] = {:saved => saved, :failed => object, :pending => @queue - (saved + [object])}
raise FailedSaveError, errors[:save]
end
saved << object
end
clear
run_hook :after_save
true
end
|