vendor/plugins/enum-column/lib/enum/validations.rb
def validates_columns(*column_names)
        begin
          cols = columns_hash
          column_names.each do |name|
            col = cols[name.to_s]
            raise ArgumentError, "Cannot find column #{name}" unless col
            
            # test for nullability
            validates_presence_of(name) if !col.null
            
            # Test various known types.
            case col.type
            when :enum
              validates_inclusion_of name, :in => col.values, :allow_nil => true
              
            when :integer, :float
              validates_numericality_of name, :allow_nil => true
              
            when :string
              if col.limit
                validates_length_of name, :maximum => col.limit, :allow_nil => true
              end
            end
          end
        rescue ActiveRecord::StatementInvalid=>e
          raise e unless e.message.include?("42S02") # swallow the exception if its for a missing table
        end
      end
# Automatically validates the column against the schema definition
# for nullability, format, and enumerations. Handles integers, floats,
# enumerations, and string limits.
#
# Usage: validates_columns :severity, :name
Automatically validates the column against the schema definition
for nullability, format, and enumerations. Handles integers, floats,
enumerations, and string limits.


Automatically validates the column against the schema definition for nullability format and enumerations . Handles integers floats enumerations and string limits .
def validates_columns(*column_names)
        begin
          cols = columns_hash
          column_names.each do |name|
            col = cols[name.to_s]
            raise ArgumentError, "Cannot find column #{name}" unless col
            validates_presence_of(name) if !col.null
            case col.type
            when :enum
              validates_inclusion_of name, :in => col.values, :allow_nil => true
            when :integer, :float
              validates_numericality_of name, :allow_nil => true
            when :string
              if col.limit
                validates_length_of name, :maximum => col.limit, :allow_nil => true
              end
            end
          end
        rescue ActiveRecord::StatementInvalid=>e
          raise e unless e.message.include?("42S02") 
        end
      end
def validates_columns ( * column_names ) begin cols = columns_hash column_names . each do | name | col = cols [ name . to_s ] raise ArgumentError , "Cannot find column #{name}" unless col validates_presence_of ( name ) if ! col . null case col . type when :enum validates_inclusion_of name , :in => col . values , :allow_nil => true when :integer , :float validates_numericality_of name , :allow_nil => true when :string if col . limit validates_length_of name , :maximum => col . limit , :allow_nil => true end end end rescue ActiveRecord :: StatementInvalid => e raise e unless e . message . include? ( "42S02" ) end end
Automatically validates the column against the schema definition
for nullability, format, and enumerations.
Automatically validates the column against the schema definition for nullability format and enumerations .
# test for nullability # Test various known types. # swallow the exception if its for a missing table
column_names