Class: Datev::IntegerField

Inherits:
Field
  • Object
show all
Defined in:
lib/datev/field/integer_field.rb

Instance Attribute Summary

Attributes inherited from Field

#block, #name, #options

Instance Method Summary collapse

Methods inherited from Field

#initialize, #required?

Constructor Details

This class inherits a constructor from Datev::Field

Instance Method Details

#limitObject



3
4
5
# File 'lib/datev/field/integer_field.rb', line 3

def limit
  options[:limit]
end

#maximumObject



7
8
9
# File 'lib/datev/field/integer_field.rb', line 7

def maximum
  options[:maximum]
end

#minimumObject



11
12
13
# File 'lib/datev/field/integer_field.rb', line 11

def minimum
  options[:minimum]
end

#output(value, _context = nil) ⇒ Object



26
27
28
# File 'lib/datev/field/integer_field.rb', line 26

def output(value, _context=nil)
  value.to_s if value
end

#validate!(value) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/datev/field/integer_field.rb', line 15

def validate!(value)
  super

  if value
    raise ArgumentError.new("Value given for field '#{name}' is not an Integer") unless value.is_a?(Integer)
    raise ArgumentError.new("Value '#{value}' for field '#{name}' is too long") if limit && value.to_s.length > limit
    raise ArgumentError.new("Value '#{value}' for field '#{name}' is too large") if maximum && value > maximum
    raise ArgumentError.new("Value '#{value}' for field '#{name}' is too small") if minimum && value < minimum
  end
end