lib/acfs/request/callbacks.rb in acfs-0.5.1 vs lib/acfs/request/callbacks.rb in acfs-0.6.0
- old
+ new
@@ -19,11 +19,11 @@
# @yield [ Acfs::Response ]
#
# @return [ Acfs::Request ] The request itself.
#
def on_complete(&block)
- callbacks << block if block_given?
+ callbacks.insert 0, block if block_given?
self
end
# Return array of all callbacks.
#
@@ -36,11 +36,16 @@
# Trigger all callback for given response.
#
# @return [ Acfs::Request ] The request itself.
#
def complete!(response)
- callbacks.each { |cb| cb.call response }
+ call_callback response, 0
self
+ end
+
+ private
+ def call_callback(res, index)
+ callbacks[index].call res, proc { |res| call_callback res, index + 1 } if index < callbacks.size
end
end
end
end