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

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

Class Method Summary collapse

Class Method Details

.run(valid) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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