6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/eve/api/connectivity.rb', line 6
def walk(walk_id, walk_association, options = {}, &block)
raise ArgumentError, "Requires :walk_id" if walk_id.blank?
raise ArgumentError, "Requires :walk_association" if walk_association.blank?
options[walk_id] ||= 0
return_value = yield options
array = return_value.send(walk_association)
if array.size >= MAX_JOURNAL_ENTRIES
begin
min_id = nil
primary_key = array.primary_key
array.each { |txn| min_id = txn.send(primary_key) if min_id.nil? || min_id > txn.send(primary_key) }
array.concat walk(walk_id, options.merge(walk_id => min_id), &block).send(walk_association)
rescue Eve::Errors::UserInputErrors::InvalidBeforeTransID, Eve::Errors::UserInputErrors::InvalidBeforeRefID,
Eve::Errors::UserInputErrors::InvalidBeforeKillID
end
end
return_value
end
|