translit 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +2 -2
- data/lib/translit.rb +14 -4
- metadata +1 -1
data/README.markdown
CHANGED
@@ -12,12 +12,12 @@ Or you can translit stdin now via just: <code>translit</code>. To stop stdin inp
|
|
12
12
|
|
13
13
|
## Русский ##
|
14
14
|
|
15
|
-
|
15
|
+
Эта простая и элегантная программа позволит вам проводить транслитерацию между кирилицей и латиницей. Ее легко использовать как в командной строке так и в вашем коде.
|
16
16
|
|
17
17
|
Устанавливается она просто: <code>gem install translit</code>
|
18
18
|
|
19
19
|
### Использование ###
|
20
20
|
|
21
|
-
Для использования translit в командной строке просто напишите <code>translit [your_input_here]</code> где ваш текст может быть написан
|
21
|
+
Для использования translit в командной строке просто напишите <code>translit [your_input_here]</code> где ваш текст может быть написан используя русскую клавиатуру либо латинскую
|
22
22
|
|
23
23
|
Либо вы можете просто вызвать программу и передавать текст в потоке чтения данных <code>translit</code>. Чтобы прервать поток используется стандарная система .\n (напишите . и нажмите enter на чистой строке)
|
data/lib/translit.rb
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
module Translit
|
4
4
|
def self.convert(text, enforce_language = nil)
|
5
|
-
language =
|
6
|
-
|
7
|
-
|
5
|
+
language = if enforce_language
|
6
|
+
enforce_input_language(enforce_language)
|
7
|
+
else
|
8
|
+
detect_input_language(text.split(/\s+/).first)
|
9
|
+
end
|
8
10
|
|
9
11
|
map = self.send(language.to_s).sort_by {|k,v| v.length <=> k.length}
|
10
12
|
map.each do |translit_key, translit_value|
|
@@ -29,6 +31,14 @@ private
|
|
29
31
|
text.scan(/\w+/).empty? ? :russian : :english
|
30
32
|
end
|
31
33
|
|
34
|
+
def self.enforce_input_language(language)
|
35
|
+
if language == :english
|
36
|
+
:russian
|
37
|
+
else
|
38
|
+
:english
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
32
42
|
def self.english
|
33
43
|
{ "a"=>["А","а"], "b"=>["Б","б"], "v"=>["В","в"], "g"=>["Г","г"], "d"=>["Д","д"], "e"=>["Е","е"], "jo"=>["Ё","ё"], "yo"=>["Ё","ё"], "ö"=>["Ё","ё"], "zh"=>["Ж","ж"],
|
34
44
|
"z"=>["З","з"], "i"=>["И","и"], "j"=>["Й","й"], "k"=>["К","к"], "l"=>["Л","л"], "m"=>["М","м"], "n"=>["Н","н"], "o"=>["О","о"], "p"=>["П","п"], "r"=>["Р","р"],
|
@@ -40,4 +50,4 @@ private
|
|
40
50
|
def self.russian
|
41
51
|
@russian ||= create_russian_map
|
42
52
|
end
|
43
|
-
end
|
53
|
+
end
|