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