Sha256: df58945894f27b8b0b3809d04d7dbd844431f8a93e7ddfcf1d10520b416e4e93
Contents?: true
Size: 732 Bytes
Versions: 12
Compression:
Stored size: 732 Bytes
Contents
# frozen_string_literal: true class MoneyType < ActiveRecord::Type::Value def cast(value) convert_to_money(value) end def deserialize(value) super(convert_to_money(value)) end def serialize(value) new_val = convert_to_money(value) super(new_val ? new_val.value : nil) end private def convert_to_money(value) return nil unless value if (!value.kind_of?(Numeric)) begin dollars_to_cents = (value.gsub(/\$/, '').presence || 0).to_d * 100 StoreAsInt.money(dollars_to_cents.to_i) rescue StoreAsInt::Money.new end else StoreAsInt.money(value) end end end ActiveRecord::Type.register(:money_column, MoneyType)
Version data entries
12 entries across 12 versions & 1 rubygems