class StrongerParameters::DecimalConstraint

Public Class Methods

new(precision, scale) click to toggle source
# File lib/stronger_parameters/constraints/decimal_constraint.rb, line 6
def initialize(precision, scale)
  @precision = precision
  @scale = scale
  @regex = /\A-?\d{1,#{precision - scale}}#{"(\\.\\d{1,#{scale}})?" if scale > 0}\Z/
end

Public Instance Methods

value(v) click to toggle source
# File lib/stronger_parameters/constraints/decimal_constraint.rb, line 12
def value(v)
  match = v.to_s
  if match =~ @regex
    BigDecimal(match)
  else
    StrongerParameters::InvalidValue.new(v, "must be a decimal with precision #{@precision} and scale #{@scale}")
  end
end