Sha256: 4d77e314782c64b020ae3ba32bcbccb0551aaaaa5490c170c1d4fc89c238c1de
Contents?: true
Size: 747 Bytes
Versions: 2
Compression:
Stored size: 747 Bytes
Contents
module Rein module Constraint # This module contains methods for defining numericality constraints. module Numericality OPERATORS = { greater_than: :>, greater_than_or_equal_to: :>=, equal_to: :"=", not_equal_to: :"!=", less_than: :<, less_than_or_equal_to: :<= }.freeze def add_numericality_constraint(table, attribute, options = {}) name = "#{table}_#{attribute}" conditions = OPERATORS.slice(*options.keys).map do |key, operator| value = options[key] [attribute, operator, value].join(" ") end.join(" AND ") execute("ALTER TABLE #{table} ADD CONSTRAINT #{name} CHECK (#{conditions})") end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rein-1.1.0 | lib/rein/constraint/numericality.rb |
rein-1.0.0 | lib/rein/constraint/numericality.rb |