class Okao::Parser

Public Class Methods

to_okao(text) click to toggle source
# File lib/okao/parser.rb, line 4
def to_okao(text)
  lines = text.split("\n")
  lines.reduce('') do |acc, cur|
    points = cur.codepoints.map { |c| c.to_s(8).to_i }
    okaos = points.map do |point|
      face_list = format('%06d', point.to_s).split('').map do |i|
        Okao::Emoticon.send("face#{i}")
      end

      face_list.join
    end

    "#{acc}#{okaos.join}\n"
  end
end
to_text(okao_line) click to toggle source
# File lib/okao/parser.rb, line 20
def to_text(okao_line)
  okao_hash = Okao::Emoticon.to_h.invert
  numbers = okao_line.gsub(/\(.*?\)/) do |m|
    var_name = okao_hash[m]
    var_name.slice(/\d/)
  end
  
  normal_text = numbers.gsub(/\d{6}/) do |n|
    n.to_i(8).chr('UTF-8')
  end

  "#{normal_text}\n"
end