Sha256: da7a3a1200cd77a22dd04ff274f7dd6161d2a81c993315fd8d5b0f53098aa98d

Contents?: true

Size: 816 Bytes

Versions: 2

Compression:

Stored size: 816 Bytes

Contents

module DrNicMagicModels
  module Validations
    def self.append_features(base)
      super
      base.extend(ClassMethods)
      base.generate_validations
        
      # Currently only invoked on generated classes
      # How to include and invoke on all ARs? - hook into class loading??
    end
      
    module ClassMethods
      def generate_validations
        unless @@generated_validations ||= false
          @@generated_validations = true
          column_names = self.columns.select {|column| !column.null and !column.primary}.map {|column| column.name.to_sym}
          add_validation :validates_presence_of, column_names
        end
      end
        
      def add_validation(validation, column_names)
        self.send validation, *column_names
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dr_nic_magic_models-0.7.1 lib/dr_nic_magic_models/validations.rb
dr_nic_magic_models-0.7.0 lib/dr_nic_magic_models/validations.rb