class DndTreasureCalc::Coins

Attributes

amount[RW]
type[R]

Public Class Methods

new(amount, type) click to toggle source
# File lib/dnd_treasure_calc/coins.rb, line 10
def initialize(amount, type)
  raise RuntimeError, "#{type} is not a valid coin type" unless COINS.include?(type)
  @amount = amount
  @type = type
end

Public Instance Methods

+(coins) click to toggle source
# File lib/dnd_treasure_calc/coins.rb, line 16
def +(coins)
  raise RuntimeError, "#{coins} is not an instance of Coins" unless coins.is_a?(Coins)
  coins.convert_to(@type) ? 0 : convert_to(coins.type)
  Coins.new(@amount + coins.amount, @type)
end
convert_to(type) click to toggle source

Converts this coin to the type provided

# File lib/dnd_treasure_calc/coins.rb, line 23
def convert_to(type)
  return false if @@conversions[@type].nil? || @@conversions[@type][type].nil?
  return true if @type == type
  @amount *= @@conversions[@type][type]
  @type = type
end