module Tobopomo

Constants

LAYOUT
TSI
VERSION

Public Instance Methods

normalise(string) click to toggle source
# File lib/tobopomo.rb, line 6
def normalise(string)
  string.gsub(/\s+/, "")
end
tobopomo(input) click to toggle source
# File lib/tobopomo.rb, line 9
def tobopomo(input)
  input = input.chars.map{|x| Tobopomo::LAYOUT[:"#{x.ord.to_s}"]}.join("")
  string = input.split(/(?<=[" "|"ˇ"|"ˋ"|"ˊ"|"˙"])/)
  return string.map{|x| normalise(x)}
end
tokanji(input, limit=5) click to toggle source
# File lib/tobopomo.rb, line 14
def tokanji(input, limit=5)
  if input.is_a? Array
    input = input.map{|x| normalise(x)}
    output = [] 
    last = 0
    input.each_with_index do | x , index|
      string = input[last..index].join("")
      if Tobopomo::TSI[string] && index < (input.length - 1)
        next 
      elsif Tobopomo::TSI[string] && index == (input.length - 1)
        output << Tobopomo::TSI[string][0...limit]
      elsif Tobopomo::TSI[string].nil? &&index == (input.length - 1)
        string = input[last...index].join("")
        output << Tobopomo::TSI[string][0...limit]
        output << Tobopomo::TSI[input[index]][0...limit]
      else
        string = input[last...index].join("")
        output << Tobopomo::TSI[string][0...limit]
        last = index
      end
    end
    return output
  elsif input.is_a? String
    normalise(input)
    return Tobopomo::TSI[input][0...limit]
  end
end