class JapaneseNumbers::Parser

Constants

DELIMITERS

Public Class Methods

parse(str) click to toggle source
# File lib/japanese_numbers/parser.rb, line 9
def self.parse(str)
  self.new.parse(str)
end

Public Instance Methods

parse(str) click to toggle source
# File lib/japanese_numbers/parser.rb, line 13
def parse(str)
  parts = split_to_parts(str)
  res = parts.inject(0) do |sum, part|
    sum + part[0].to_f * (DELIMITERS[part[1]] || 1)
  end
  res.to_i
end
split_to_parts(str) click to toggle source
# File lib/japanese_numbers/parser.rb, line 21
def split_to_parts(str)
  parts = []
  loop do
    coefficient, unit, remains = str.partition(Regexp.union(DELIMITERS.keys))
    parts.push([coefficient, unit])
    str = remains
    break if str == ""
  end
  parts
end