8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/beta_code.rb', line 8
def self.beta_code_to_greek(beta_code)
beta_code_characters = beta_code.chars
greek_characters = []
start = 0
while start <= beta_code_characters.length
current_character = beta_code_characters[start]
new_start = start + 1
max_length = [beta_code_characters.length, start + max_beta_code_character_length].min
last = new_start
while last <= max_length
slice = beta_code_characters[start...last].join('')
if beta_code_to_unicode_map[slice]
current_character = beta_code_to_unicode_map[slice]
new_start = last
end
last += 1
end
greek_characters << current_character
start = new_start
end
sigma_to_end_of_word_sigma(greek_characters.join(''))
end
|