module DMap::Validations::Core::Numbers

Public Class Methods

run(valid) click to toggle source
# File lib/dmap/validations/core.rb, line 33
def self.run(valid)
  validation = valid
  # Let's get the minimum/maximum numbers e.g. 20min50max
  minimum = validation[/(\d+)min/, 1] # fetch min
  unless minimum.nil? # take it out
    validation.sub!(/\d+min/i, '')
  end

  maximum = validation[/(\d+)max/, 1]
  unless maximum.nil? # take it out
    validation.sub!(/\d+max/i, '')
  end

  # Now for the min..max e.g. 20..50
  within = validation[/(\d+\.\.\d+)/, 1] unless minimum or maximum
  validation.sub!(/\d+\.\.\d+/, '')

  # Just equals? e.g. length_of=5
  equals = validation[/^(\d+)$/, 1] unless minimum or maximum
  validation.sub!(/^\d+$/, '')

  Hash[:cmd => validation, :min => minimum, :max => maximum, :within => within, :equals => equals]
end