Class: Texol

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

Overview

Funkcja zamiana() odpowiada na co zamienić literę. Na początku przekazu należy zresetować transmisję.

Constant Summary collapse

VERSION =
"0.1.3"
ZNAKI_DODATKOWE_PLUSMINUS =
[ '-3', '-2', '-1', '0', '+1', '+2', '+3',
'd-3', 'd-2', 'd-1', 'd0', 'd+1', 'd+2', 'd+3' ]
ZNAKI_DODATKOWE_UNICODE =

57344 to numer wolnej przestrzeni na prywatne glify dla -3 -2 -1 i dalej …

[ '', '', '', '', '', '', '',
'', '', '', '', '', '', '' ]
ZNAKI_DODATKOWE_KLAWIATURA =
[ '6', '5', '4', '0', '1', '2', '3',
'}', ']', '9', '7', '8', '[', '{' ]

Instance Method Summary collapse

Constructor Details

#initialize(jak = "plusminus") ⇒ Texol

Inicjując podajemy jak domyślnie określamy dodatkowe litery



21
22
23
24
25
26
27
# File 'lib/texol.rb', line 21

def initialize(jak="plusminus")
 @poprzedni = nil  #Tu przechowujemy grupę do jakiej należy poprzedni znak lub nil jeśli nie było poprzedniej grupy
 @d = ZNAKI_DODATKOWE_PLUSMINUS * 5
 if jak == 'unicode' then @d = ZNAKI_DODATKOWE_UNICODE * 5 end
 if jak == 'klawiatura' then @d = ZNAKI_DODATKOWE_KLAWIATURA * 5 end
 #jeśli jak jest inne to kodowanie jest domyślne
end

Instance Method Details

#napis(n) ⇒ Object

zwracamy gotowy napis zamieniony już jak trzeba



67
68
69
70
# File 'lib/texol.rb', line 67

def napis(n)
 self.start()
 n.split(//).map{|e| self.znak(e)}.join
end

#startObject



29
30
31
# File 'lib/texol.rb', line 29

def start()
 @poprzedni = nil
end

#tablica(n) ⇒ Object



72
73
74
75
# File 'lib/texol.rb', line 72

def tablica(n)
 self.start()
 n.split(//).map{|e| self.znak(e)}
end

#znak(znakutf8) ⇒ Object

d-1 to znak -1 ale z kreską, duża litera



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/texol.rb', line 34

def znak(znakutf8)
 g = ['m', 'j', 'a', 't', 'w', 'u', 'k',
      'M', 'J', 'A', 'T', 'W', 'U', 'K',
      's', 'n', 'z', 'e', 'c', 'i', 'h',
      'S', 'N', 'Z', 'E', 'C', 'I', 'H',
      'ś', 'v', 'ź', 'x', 'ń', 'ć', 'q',
      'Ś', 'V', 'Ź', 'X', 'Ń', 'Ć', 'Q',
      'y', 'b', 'r', 'o', 'd', 'p', 'ł',
      'Y', 'B', 'R', 'O', 'D', 'P', 'Ł',
      'ę', 'ó', 'f', 'l', 'ż', 'ą', 'g',
      'Ę', 'Ó', 'F', 'L', 'Ż', 'Ą', 'G']
 s = ["t", "t", "t", "t", "t", "t", "t", "t", "t", "t", "t", "t", "t", "t",
      "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e",
      "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x",
      "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o",
      "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l"]

 g.each_with_index{|z,i|
  if znakutf8 == z then
   if @poprzedni == s[i] then
    return @d[i]
   else
    @poprzedni = s[i];  return znakutf8
   end
  end
  }

 #inne znaki
 start()
 return znakutf8
end