class Money
Attributes
amount[R]
currency[R]
Public Class Methods
configure()
click to toggle source
# File lib/money.rb, line 120 def self.configure @@configure end
new(value, name)
click to toggle source
# File lib/money.rb, line 15 def initialize(value, name) if value.is_a? Numeric @amount = value else raise "No es posible instanciar el objeto, #{value} es un #{value.class}, debe ser un numero Ej: 50 , 5.05" end if name.is_a? String @@configure.each do |config| next unless config.default_currency == name @currency = name return end raise "El parametro #{name} no se encuentra en la configuracion" else raise "No es posible instanciar el objeto, #{name} es un #{name.class}, debe ser un string Ej: \"EUR\" , \"USD\", \"Bitcoin\"" end end
Public Instance Methods
*(x)
click to toggle source
# File lib/money.rb, line 86 def *(x) return "#{@amount * x} #{@currency}" end
+(x)
click to toggle source
# File lib/money.rb, line 56 def +(x) unless x.currency == @currency @@configure.each do |config| if config.default_currency == x.currency aux = ( (@amount + config.conversions[@currency] * x.amount) * 100).round/100.0 return "#{aux} #{@currency}" end end end aux = ((@amount + x.amount) * 100).round/100.0 return "#{aux} #{@currency}" end
-(x)
click to toggle source
# File lib/money.rb, line 69 def -(x) unless x.currency == @currency @@configure.each do |config| if config.default_currency == x.currency aux = ((@amount - config.conversions[@currency] * x.amount) * 100).round/100.0 return "#{aux} #{@currency}" end end end aux = ((@amount - x.amount) * 100).round/100.0 return "#{aux} #{@currency}" end
/(x)
click to toggle source
# File lib/money.rb, line 82 def /(x) return "#{@amount / x} #{@currency}" end
<(x)
click to toggle source
# File lib/money.rb, line 110 def <(x) if not x.currency == @currency @@configure.each do |config| return ( config.default_currency == x.currency and @amount < (x.amount * config.conversions[@currency]) ) end end return ( @amount < x.amount ) end
==(x)
click to toggle source
# File lib/money.rb, line 90 def ==(x) if not x.currency == @currency @@configure.each do |config| return ( config.default_currency == x.currency and @amount == (x.amount * config.conversions[@currency]) ) end end return ( x.amount == @amount ) end
>(x)
click to toggle source
# File lib/money.rb, line 100 def >(x) if not x.currency == @currency @@configure.each do |config| return ( config.default_currency == x.currency and @amount > (x.amount * config.conversions[@currency]) ) end end return ( @amount > x.amount ) end
convert_to(name)
click to toggle source
# File lib/money.rb, line 39 def convert_to(name) if name.is_a? String @@configure.each do |config| next unless config.default_currency == currency @amount = (config.conversions[name] * @amount *100).round/100.0 @currency = name return self end raise "El parametro #{name} no se encuentra en la configuracion" else raise "No es posible realizar la conversion de #{@currency} a #{name} este no se encuentra en la configuracion Ej: \"EUR\" , \"USD\", \"Bitcoin\"" end end
inspect()
click to toggle source
# File lib/money.rb, line 35 def inspect "#{@amount} #{@currency}" end