Rails custom PORO object callbacks
Rails
callbacks
require 'active_model'
class Aaa
extend ActiveModel::Callbacks
# This will provide all three standard callbacks (before, around and after) for both the :create and :update methods
define_model_callbacks :create # , :update
def create
run_callbacks :create do
puts "Running create action"
end
end
end
class Bbb < Aaa
before_create :foo
after_create :bar
def foo
puts "foo called"
end
def bar
puts "bar called"
end
end
Bbb.new.create
# foo called
# Running create action
# bar called
endMyProcess.new.create # foo called # Running create action # bar called
example 2 - initialization example
class Viki
extend ActiveModel::Callbacks
define_model_callbacks :initialize, only: :after
def initialize
puts "Viki initialized"
run_callbacks :initialize
end
end
Viki.new
# Viki initialized
class Niki < Viki
after_initialize :say_hi
def say_hi
puts "Hi from Niki!"
end
end
Niki.new
# Viki initialized
# Hi from Niki!