lib/laminar/callbacks.rb in laminar-0.5.1 vs lib/laminar/callbacks.rb in laminar-0.6.0
- old
+ new
@@ -22,17 +22,26 @@
after_list.concat(args)
after_list << block if block
end
alias after_call after
+ def finalize(*args, &block)
+ final_list.concat(args)
+ final_list << block if block
+ end
+
def before_list
@before_list ||= []
end
def after_list
@after_list ||= []
end
+
+ def final_list
+ @final_list ||= []
+ end
end
# Additional instance methods
module InstanceMethods
private
@@ -41,9 +50,13 @@
run_callbacks(self.class.before_list)
end
def run_after_callbacks
run_callbacks(self.class.after_list)
+ end
+
+ def run_final_callbacks
+ run_callbacks(self.class.final_list)
end
def run_callbacks(list)
list.each { |cb| cb.is_a?(Symbol) ? send(cb) : instance_exec(&cb) }
end