1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-24 07:39:39 +02:00
Maybe/app/models/money.rb
Zach Gollwitzer 0fe9b6d34a
Add Money and Money Series (#505)
* Add Money class

* Standardize creation of money series

* Formatting

* Fix test
2024-03-01 17:17:34 -05:00

32 lines
800 B
Ruby

class Money
attr_reader :amount, :currency
def self.from_amount(amount, currency = "USD")
Money.new(amount, currency)
end
def initialize(amount, currency = :USD)
@amount = amount
@currency = currency
end
def cents(precision: nil)
_precision = precision || CURRENCY_OPTIONS[@currency.to_sym][:precision]
return "" unless _precision.positive?
fractional_part = @amount.to_s.split(".")[1] || ""
fractional_part = fractional_part[0, _precision].ljust(_precision, "0")
end
def symbol
CURRENCY_OPTIONS[@currency.to_sym][:symbol]
end
def separator
CURRENCY_OPTIONS[@currency.to_sym][:separator]
end
def precision
CURRENCY_OPTIONS[@currency.to_sym][:precision]
end
end