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