Module: Opium::Model::Callbacks::ClassMethods

Defined in:
lib/opium/model/callbacks.rb

Instance Method Summary collapse

Instance Method Details

#wrap_callbacks_around(*methods) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/opium/model/callbacks.rb', line 22

def wrap_callbacks_around( *methods )
  options = methods.last.is_a?(::Hash) ? methods.pop : {}
  methods.each do |method|
    callback_name = method.to_s.gsub(/\A_/, '').to_sym
    class_eval do
      define_method method do |*args|
        run_callbacks( callback_name ) do
          super( *args )
        end
      end
      send( :private, method ) if options[:private]
    end
  end
end