Sha256: 0acd54ba15e145cee83bfdade7d9d0fe733b73d0f6c7ab85099bdf86771f4411

Contents?: true

Size: 672 Bytes

Versions: 3

Compression:

Stored size: 672 Bytes

Contents

require 'active_support/concern'

module Ardm
  module Ar
    module Hooks
      extend ActiveSupport::Concern

      module ClassMethods
        def before(event, meth=nil, &block)
          _ardm_hook(:before, event, meth, &block)
        end

        def after(event, meth=nil, &block)
          _ardm_hook(:after, event, meth, &block)
        end

        def _ardm_hook(order, event, meth=nil, &block)
          if event.to_sym == :valid?
            event = "validation"
          end

          if meth.nil?
            send "#{order}_#{event}", &block
          else
            send "#{order}_#{event}", meth
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ardm-0.3.2 lib/ardm/ar/hooks.rb
ardm-0.3.1 lib/ardm/ar/hooks.rb
ardm-0.3.0 lib/ardm/ar/hooks.rb