class Money
Attributes
amount[RW]
currency[RW]
Public Class Methods
configure() { |configuration| ... }
click to toggle source
# File lib/moneytest.rb, line 10 def configure @@configuration ||= Configuration.new yield(@@configuration) end
new(amount, currency = nil)
click to toggle source
# File lib/moneytest.rb, line 24 def initialize(amount, currency = nil) @@configuration ||= Configuration.new #aplico config self.class.validate_currency(currency) #valido @amount = amount @currency = currency || @@configuration.default_currency #si no hay divisa, se agrega la default end
validate_currency(currency)
click to toggle source
# File lib/moneytest.rb, line 15 def validate_currency(currency) valid_currencies = @@configuration.conversions.keys #busca las keys del bloque valid_currencies += [@@configuration.default_currency] raise CurrencyError.new(currency) if ([currency] & valid_currencies).empty? end
Public Instance Methods
convert(new_currency)
click to toggle source
# File lib/moneytest.rb, line 43 def convert(new_currency) #conversión factor_to = new_currency == @@configuration.default_currency ? 1 : @@configuration.conversions[new_currency].to_f factor_from = @currency == @@configuration.default_currency ? 1 : @@configuration.conversions[@currency].to_f #si es la misma divisa o no Money.new(@amount * factor_to / factor_from, new_currency) #nueva instancia / calculo end
inspect()
click to toggle source
# File lib/moneytest.rb, line 31 def inspect #monto más divisa {amount: @amount, currency: @currency } end