Class: SaveQueue::Queue
- Inherits:
-
Object
show all
- Defined in:
- lib/save_queue/queue.rb
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Queue
Returns a new instance of Queue.
3
4
5
|
# File 'lib/save_queue/queue.rb', line 3
def initialize
@queue = []
end
|
Instance Method Details
#add(object) ⇒ Object
13
14
15
16
|
# File 'lib/save_queue/queue.rb', line 13
def add object
raise ArgumentError, "#{object.inspect} does not include SaveQueue::Object" unless object.class.include? SaveQueue::Object
@queue << object unless @queue.include? object
end
|
#add_all(objects) ⇒ Object
7
8
9
10
11
|
# File 'lib/save_queue/queue.rb', line 7
def add_all objects
Array(objects).each do |object|
add object
end
end
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/save_queue/queue.rb', line 18
def save
saved = []
@queue.each do |object|
if object.has_unsaved_changes?
result = object.save
raise FailedSaveError, {:saved => saved, :failed => object, :pending => @queue - (saved + [object])} if false == result
saved << object
end
end
@queue = []
true
end
|