class DataMapper::Property::Numeric
Constants
- DEFAULT_NUMERIC_MAX
- DEFAULT_NUMERIC_MIN
Attributes
max[R]
min[R]
precision[R]
scale[R]
Public Class Methods
new(model, name, options = {})
click to toggle source
Calls superclass method
# File lib/dm-core/property/numeric.rb, line 15 def initialize(model, name, options = {}) super if @primitive == BigDecimal || @primitive == ::Float @precision = @options.fetch(:precision) @scale = @options.fetch(:scale) unless @precision > 0 raise ArgumentError, "precision must be greater than 0, but was #{@precision.inspect}" end end if @options.key?(:min) || @options.key?(:max) @min = @options.fetch(:min, self.class::DEFAULT_NUMERIC_MIN) @max = @options.fetch(:max, self.class::DEFAULT_NUMERIC_MAX) if @max < DEFAULT_NUMERIC_MIN && !@options.key?(:min) raise ArgumentError, "min should be specified when the max is less than #{DEFAULT_NUMERIC_MIN}" elsif @max < @min raise ArgumentError, "max must be less than the min, but was #{@max} while the min was #{@min}" end end end