lib/copyable/model_hooks.rb in copyable-0.1.0 vs lib/copyable/model_hooks.rb in copyable-0.1.1

- old
+ new

@@ -14,10 +14,13 @@ private def self.disable_all_callbacks(klass) klass.class_eval do + # Don't do it if it was already done + return if self.method_defined? :__disabled__run_callbacks + alias_method :__disabled__run_callbacks, :run_callbacks # We are violently duck-punching ActiveRecord because ActiveRecord # gives us no way to turn off callbacks. My apologies to the # squeamish. def run_callbacks(kind, *args, &block) @@ -30,10 +33,14 @@ end end def self.reenable_all_callbacks(klass) klass.class_eval do + # Only do it if the disabled callbacks are defined + return unless self.method_defined? :__disabled__run_callbacks + alias_method :run_callbacks, :__disabled__run_callbacks + remove_method :__disabled__run_callbacks end end end end