class NumberMuncher::Parser
Attributes
value[R]
Public Class Methods
new(value)
click to toggle source
# File lib/number_muncher/parser.rb, line 3 def initialize(value) @value = value end
Public Instance Methods
call()
click to toggle source
# File lib/number_muncher/parser.rb, line 7 def call return Numeric.new(value) unless value.is_a?(String) return nil if tokens.empty? raise InvalidParseExpression, 'parse requires a single number' unless tokens.size == 1 tokens.first.value rescue ArgumentError, ZeroDivisionError raise InvalidNumber, "#{value} is not valid input to parse." end
Private Instance Methods
tokens()
click to toggle source
# File lib/number_muncher/parser.rb, line 22 def tokens NumberMuncher::Tokenizer.new(value).call(raise: true) end