Revision: 30489
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 15, 2010 10:06 by viatropos
Initial Code
require 'rubygems' require 'active_model' class BaseModel extend ActiveModel::Callbacks define_model_callbacks :save before_save { puts "[save:before]"} after_save { puts "[save:after]"} def do_save; end def save _run_save_callbacks do do_save end end alias_method :superclass_save, :save end class SomeModel < BaseModel def save puts "[saving...]" true end end SomeModel.class_eval do alias_method :subclass_save, :save alias_method :do_save, :subclass_save alias_method :save, :superclass_save end model = SomeModel.new model.save
Initial URL
ruby-metaprogramming-subclass-a-method-with-before-after-callbacks-and-alias-method
Initial Description
Initial Title
Ruby Metaprogramming - Subclass a Method with Before/After Callbacks and alias_method
Initial Tags
ruby
Initial Language
Ruby