class RpgTools::Dice::Utils::Parser

Attributes

dice[R]

Public Class Methods

new(dice) click to toggle source
# File lib/rpg_tools/dice/utils/parser.rb, line 7
def initialize(dice)
  @dice = dice.upcase.match(/^(\d+)([A-Z%]+)(\d*)(.*)$/)

  quantity_error! if @dice.nil?
end

Public Instance Methods

handle() click to toggle source
# File lib/rpg_tools/dice/utils/parser.rb, line 13
def handle
  {
    quantity: quantity,
    type: type,
    sides: sides,
    modifiers: modifiers
  }
end

Private Instance Methods

modifiers() click to toggle source
# File lib/rpg_tools/dice/utils/parser.rb, line 36
def modifiers
  @dice[4]
end
quantity() click to toggle source
# File lib/rpg_tools/dice/utils/parser.rb, line 24
def quantity
  @dice[1].to_i
end
quantity_error!() click to toggle source
# File lib/rpg_tools/dice/utils/parser.rb, line 40
def quantity_error!
  raise ArgumentError, 'You must specify a dice quantity.'
end
sides() click to toggle source
# File lib/rpg_tools/dice/utils/parser.rb, line 32
def sides
  @dice[3].to_i
end
type() click to toggle source
# File lib/rpg_tools/dice/utils/parser.rb, line 28
def type
  @dice[2]
end