class FrOData::Properties::Decimal
Public Instance Methods
type()
click to toggle source
The FrOData
type name
# File lib/frodata/properties/decimal.rb, line 23 def type 'Edm.Decimal' end
url_value()
click to toggle source
Value to be used in URLs. @return [String]
# File lib/frodata/properties/decimal.rb, line 29 def url_value "#{value.to_f}" end
value()
click to toggle source
Returns the property value, properly typecast @return [BigDecimal,nil]
# File lib/frodata/properties/decimal.rb, line 7 def value if (@value.nil? || @value.empty?) && (strict? && allows_nil?) nil else BigDecimal(@value) end end
value=(new_value)
click to toggle source
Sets the property value @params new_value something BigDecimal() can parse
# File lib/frodata/properties/decimal.rb, line 17 def value=(new_value) validate(BigDecimal(new_value.to_s)) @value = new_value.to_s end
Private Instance Methods
max_value()
click to toggle source
# File lib/frodata/properties/decimal.rb, line 45 def max_value @max ||= BigDecimal(7.9 * (10**28), 2) end
min_value()
click to toggle source
# File lib/frodata/properties/decimal.rb, line 41 def min_value @min ||= BigDecimal(-7.9 * (10**28), 2) end
validate(value)
click to toggle source
# File lib/frodata/properties/decimal.rb, line 35 def validate(value) if value > max_value || value < min_value || value.precs.first > 29 validation_error "Value is outside accepted range: #{min_value} to #{max_value}, or has more than 29 significant digits" end end