Class: Okao::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/okao/parser.rb

Class Method Summary collapse

Class Method Details

.to_okao(text) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 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) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# 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