wywoływanie metod after_save i before_save przy zablokowanym zapisie

Witam, to mój pierwszy post na tym forum więc proszę o wyrozumiałość.

Tworząc pewnego plugina do activerecord, stanąłem przed problemem blokady zapisu rekordu - innymi słowy nie wykonywanie record.save, jednak chciałbym aby wszystkie metody before_save i after_save były wykonywane.
Obecnie próbuje tak:

code

define_method(:save) do

              v_callback(self.class.before_save) unless self.before_save.nil?
              save.bind(self).call unless save_lock
              v_callback(self.class.after_save) unless self.after_save.nil?

end

def v_callback(obj)

          obj.each { |callback| 
                #puts 'metoda na gloda: '+callback.method.to_s
                v_callback(self.class.after_save) unless self.after_save.nil?

          }

end

(…)[/code]
jednak mimo to metody nie są wywoływane. Jak łatwo zauważyć przy save_lock=true ma zrobić wszystko (w tym także obsłużyć wszelkie relacje) poza zapisem (aktulizacją) tego rekordu do bazy.

Edit:
rozwiazanie

zamiast

v_callback(self.class.after_save) unless self.after_save.nil?

musiałem wstawić blok:

[code]self.class.after_save.each { |callback|

                 (callback.options.empty?)? callback.call(self) : callback.call(self, callback.options)

}[/code]
na callbacku wystarczyło wywołać callback.call(self) bądź callback.call(self, callback.options)

Przepraszam za zamieszanie :stuck_out_tongue: