Sha256: e9c06ecbf2bafbc8ac660e53c71344f0c29927c7d92a9c82d720ed3c35f6e658

Contents?: true

Size: 727 Bytes

Versions: 1

Compression:

Stored size: 727 Bytes

Contents

require 'data_mapper/callbacks'

module DataMapper
  module Extensions
    
    module CallbackHelpers
    
      def self.included(base)
        base.extend(ClassMethods)
        
        # declare helpers for the standard callbacks
        Callbacks::EVENTS.each do |name|
          base.class_eval <<-EOS
            def self.#{name}(string = nil, &block)
              if string.nil?
                callbacks.add(:#{name}, &block)
              else
                callbacks.add(:#{name}, string)
              end
            end
          EOS
        end
      end
      
      module ClassMethods
        
        def callbacks
          @callbacks ||= Callbacks.new
        end
      end
      
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
datamapper-0.1.0 lib/data_mapper/extensions/callback_helpers.rb