Module: DMap::Validations::Core::Numbers

Defined in:
lib/dmap/validations/core.rb

Class Method Summary collapse

Class Method Details

.run(validation) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/dmap/validations/core.rb', line 70

def self.run(validation)
  # 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+$/, '')

  {:cmd => validation, :min => minimum, :max => maximum, :within => within, :equals => equals}
end