rutils 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +45 -0
- data/README +97 -36
- data/TODO +1 -16
- data/bin/gilensize +1 -1
- data/lib/countries/countries.rb +1772 -0
- data/lib/datetime/datetime.rb +60 -43
- data/lib/gilenson/gilenson.rb +594 -249
- data/lib/gilenson/gilenson_port.rb +287 -307
- data/lib/integration/rails_date_helper_override.rb +9 -31
- data/lib/integration/red_cloth_override.rb +2 -1
- data/lib/pluralizer/pluralizer.rb +213 -192
- data/lib/rutils.rb +23 -11
- data/lib/transliteration/transliteration.rb +148 -148
- data/test/run_tests.rb +2 -2
- data/test/t_datetime.rb +32 -6
- data/test/t_gilenson.rb +291 -29
- data/test/t_integration.rb +33 -33
- data/test/t_pluralize.rb +56 -49
- data/test/t_transliteration.rb +68 -68
- data/test/t_typografica.rb +46 -46
- metadata +5 -4
- data/test/t_binaries.rb +0 -26
data/test/t_transliteration.rb
CHANGED
@@ -9,82 +9,82 @@ class TranslitTest < Test::Unit::TestCase
|
|
9
9
|
@string = "Это кусок строки русских букв v peremshku s latinizey i амперсандом (pozor!) & something"
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
def test_translify
|
13
|
+
assert_equal "sch", 'щ'.translify
|
14
|
+
assert_equal "upuschenie", 'упущение'.translify
|
15
|
+
assert_equal "sh", 'ш'.translify
|
16
|
+
assert_equal "ts", 'ц'.translify
|
17
|
+
assert_equal "Eto kusok stroki russkih bukv v peremshku s latinizey i ampersandom (pozor!) & something", @string.translify
|
18
|
+
assert_equal "Это просто некий текст".translify, "Eto prosto nekiy tekst"
|
19
|
+
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
def test_dirify
|
22
|
+
assert_equal "eto-kusok-stroki-ruskih-bukv-v-peremshku-s-latinizey-i-ampersandom-pozor-and-something", @string.dirify
|
23
|
+
assert_equal "esche-ruskiy-tekst", "Еще РусСКий теКст".dirify
|
24
|
+
end
|
25
25
|
end
|
26
26
|
|
27
27
|
|
28
28
|
class BiDiTranslitTest < Test::Unit::TestCase
|
29
29
|
|
30
30
|
def setup
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
31
|
+
@strings_all_with_slash = {
|
32
|
+
"ThisIsРусскийName/ДляВас/ДемонстрацияOfSwitching" => "ThisIs+Russkijj+Name/+DljaVas+/+Demonstracija+OfSwitching",
|
33
|
+
"Андрэ Нортон Зачумлённый корабльzip" => "+Andreh__Norton__Zachumljonnyjj__korabl'+zip",
|
34
|
+
"Эй Эгегей" => "+EHjj__EHgegejj",
|
35
|
+
"эй-эй" => "+ehjj+-+ehjj",
|
36
|
+
"WebРазработка/Скрипты" => "Web+Razrabotka+/+Skripty",
|
37
|
+
"Смотрите зайцы -- нас много" => "+Smotrite__zajjcy__+--+__nas__mnogo",
|
38
|
+
"Привет Родина" => "+Privet__Rodina",
|
39
|
+
"ЙухХа" => "+JJukhKHa",
|
40
|
+
"Ыхыхых Its English text" => "+Ykhykhykh__+Its+__+English+__+text",
|
41
|
+
"Пьянь" => "+P'jan'",
|
42
|
+
"----____" => "----____",
|
43
|
+
"Madonna - Свежия Песенки" => "Madonna+__+-+__Svezhija__Pesenki",
|
44
|
+
"58-49" => "58-49",
|
45
|
+
"Въезд ГЛЯНЬ ВЪЕЗД" => "+V~ezd__GLJAN_'__V_~EZD",
|
46
|
+
"----____" => "----____",
|
47
|
+
"Въезд ГЛЯНь ВЪЕЗД" => "+V~ezd__GLJAN'__V_~EZD",
|
48
|
+
"Установка mod_perl" => "+Ustanovka__+mod_perl",
|
49
|
+
"Проверка__двери неразумной" => "+Proverka+__+dveri__nerazumnojj",
|
50
|
+
"Проверка_ дверцы" => "+Proverka+_+__dvercy",
|
51
|
+
"Кровать устала _ь" => "+Krovat'__ustala__+_+'",
|
52
|
+
"test__bed" => "test__bed",
|
53
|
+
"test_ bed" => "test_+__+bed",
|
54
|
+
"test__ __bed" => "test__+__+__bed",
|
55
|
+
"a_-_b-_-c" => "a_-_b-_-c",
|
56
|
+
"a - b _ c" => "a+__+-+__+b+__+_+__+c",
|
57
|
+
}
|
58
|
+
|
59
|
+
@strings_tran_without_slash = {
|
60
|
+
"Андрэ/ Н/о/ртон /Зачум//лённый корабль/z/ip" => "+Andreh__Norton__Zachumljonnyjj__korabl'+zip",
|
61
|
+
"WebРазработка/Мимо" => "Web+RazrabotkaMimo",
|
62
|
+
"test_/_bed" => "test__bed",
|
63
|
+
}
|
64
|
+
|
65
|
+
@strings_detran_without_slash = {
|
66
|
+
"Webds" => "/We/bds/",
|
67
|
+
"WebРазработкаМимо" => "Web/+Razrabotka+/+Mimo",
|
68
|
+
"WebСкрипты" => "Web/+Skripty",
|
69
|
+
"ПХПScripts" => "+PKHP+/Scripts",
|
70
|
+
}
|
71
71
|
end
|
72
72
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
73
|
+
def test_bidi_translify
|
74
|
+
@strings_all_with_slash.each do |strFrom, strTo|
|
75
|
+
assert_equal strTo, strFrom.bidi_translify
|
76
|
+
end
|
77
|
+
@strings_tran_without_slash.each do |strFrom, strTo|
|
78
|
+
assert_equal strTo, strFrom.bidi_translify(false)
|
79
|
+
end
|
80
|
+
end
|
81
81
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
82
|
+
def test_bidi_detranslify
|
83
|
+
@strings_all_with_slash.each do |strTo, strFrom|
|
84
|
+
assert_equal strTo, strFrom.bidi_detranslify
|
85
|
+
end
|
86
|
+
@strings_detran_without_slash.each do |strTo, strFrom|
|
87
|
+
assert_equal strTo, strFrom.bidi_detranslify(false)
|
88
|
+
end
|
89
|
+
end
|
90
90
|
end
|
data/test/t_typografica.rb
CHANGED
@@ -4,54 +4,54 @@ require File.dirname(__FILE__) + '/../lib/rutils'
|
|
4
4
|
|
5
5
|
# Тесты Гиленсона - обычный набор тестов к Тыпографице с сайта pixel-apes. Все "наши" тесты Гиленсона идут в другой test case!
|
6
6
|
class TypograficaComplianceTest < Test::Unit::TestCase
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
|
8
|
+
def test_phones
|
9
|
+
assert_equal '<nobr>3–12–30</nobr>', '3-12-30'.o_gilensize
|
10
|
+
assert_equal '<nobr>12–34–56</nobr>', '12-34-56'.o_gilensize
|
11
|
+
assert_equal '<nobr>88–25–04</nobr>', '88-25-04'.o_gilensize
|
12
|
+
assert_equal '+7 <nobr>(99284) 65–818</nobr>', '+7 (99284) 65-818'.o_gilensize
|
13
|
+
assert_equal '<nobr>725–01–10</nobr>', '725-01-10'.o_gilensize
|
14
|
+
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
def test_address
|
17
|
+
assert_equal 'табл. 2, рис. 2.10', 'табл. 2, рис. 2.10'.o_gilensize
|
18
|
+
assert_equal 'офис 415, оф.340, д.5, ул. Народной Воли, пл. Малышева', 'офис 415, оф.340, д.5, ул. Народной Воли, пл. Малышева'.o_gilensize
|
19
|
+
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
def test_specials
|
22
|
+
assert_equal '© 2002, © 2003, © 2004, © 2005 — тоже без пробелов: ©2002, ©Кукуц. однако: варианты (а) и (с)', '(с) 2002, (С) 2003, (c) 2004, (C) 2005 -- тоже без пробелов: (с)2002, (c)Кукуц. однако: варианты (а) и (с)'.o_gilensize
|
23
|
+
assert_equal '+5°С, +7°C, –5°F', '+5^С, +17^C, -275^F'.o_gilensize
|
24
|
+
assert_equal 'об этом подробнее — читай §25', 'об этом подробнее -- читай (p)25'.o_gilensize
|
25
|
+
assert_equal 'один же минус – краткое тире', 'один же минус - краткое тире'.o_gilensize
|
26
|
+
assert_equal 'Sharpdesign™, Microsoft<sup>®</sup>', 'Sharpdesign(tm), Microsoft(r)'.o_gilensize
|
27
|
+
end
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
29
|
+
def test_breaking
|
30
|
+
assert_equal 'скажи, мне, ведь не даром! Москва, клеймённая пожаром. Французу отдана', 'скажи ,мне, ведь не даром !Москва, клеймённая пожаром .Французу отдана'.o_gilensize
|
31
|
+
assert_equal 'so be it, my liege. Tiny dwellers roam thru midnight! Hell raised, the Balrog is hiding in your backyard!', 'so be it ,my liege .Tiny dwellers roam thru midnight !Hell raised, the Balrog is hiding in your backyard!'.o_gilensize
|
32
|
+
assert_equal 'при установке командой строки в ?page=help <nobr>бла-бла-бла-бла</nobr>', 'при установке командой строки в ?page=help бла-бла-бла-бла'.o_gilensize
|
33
|
+
assert_equal 'как интересно будет переноситься со строки на строку <nobr>что-то</nobr> разделённое дефисом, ведь дефис тот тоже ведь из наших. <nobr>Какие-то</nobr> браузеры думают, что следует переносить и его...', 'как интересно будет переноситься со строки на строку что-то разделённое дефисом, ведь дефис тот тоже ведь из наших. Какие-то браузеры думают, что следует переносить и его...'.o_gilensize
|
34
|
+
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
#
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
36
|
+
def test_quotes
|
37
|
+
assert_equal 'english “quotes” should be quite like this', 'english "quotes" should be quite like this'.o_gilensize
|
38
|
+
assert_equal 'русские же «оформляются» подобным образом', 'русские же "оформляются" подобным образом'.o_gilensize
|
39
|
+
assert_equal 'кавычки «расставлены» “in a chaotic order”', 'кавычки "расставлены" "in a chaotic order"'.o_gilensize
|
40
|
+
assert_equal 'диагональ моего монитора — 17", а размер пениса — 1,5"', 'диагональ моего монитора -- 17", а размер пениса -- 1,5"'.o_gilensize
|
41
|
+
assert_equal 'в толщину, «вложенные “quotes” вот так», “or it «будет вложено» elsewhere”', 'в толщину, "вложенные "quotes" вот так", "or it "будет вложено" elsewhere"'.o_gilensize
|
42
|
+
assert_equal '“complicated «кавычки», «странные “includements” кавычек»', '"complicated "кавычки", "странные "includements" кавычек"'.o_gilensize
|
43
|
+
assert_equal '“double “quotes”', '"double "quotes"'.o_gilensize
|
44
|
+
assert_equal '«дважды вложенные «кавычки»', '"дважды вложенные "кавычки"'.o_gilensize
|
45
|
+
assert_equal '«01/02/03», дискеты в 5.25"', '"01/02/03", дискеты в 5.25"'.o_gilensize
|
46
|
+
assert_equal 'после троеточия правая кавычка — «Вот...»', 'после троеточия правая кавычка -- "Вот..."'.o_gilensize
|
47
|
+
assert_equal 'setlocale(LC_ALL, “ru_RU.UTF8”);', 'setlocale(LC_ALL, "ru_RU.UTF8");'.o_gilensize
|
48
|
+
assert_equal '“read, write, delete” с флагом “only_mine”', '"read, write, delete" с флагом "only_mine"'.o_gilensize
|
49
|
+
assert_equal '«Двоеточие:», «такую умную тему должен писать чувак умеющий скрипты скриптить.»', '"Двоеточие:", "такую умную тему должен писать чувак умеющий скрипты скриптить."'.o_gilensize
|
50
|
+
assert_equal '(«Вики != HTML» — «Вики != HTML» — («всякая чушь»))', '("Вики != HTML" -- "Вики != HTML" -- ("всякая чушь"))'.o_gilensize
|
51
|
+
assert_equal '«фигня123», “fignya123”', '"фигня123", "fignya123"'.o_gilensize
|
52
|
+
# assert_equal '«сбалансированные «кавычки<!--notypo--><!--/notypo--> (четыре в конце) — связано с синтаксисом ваки', '"сбалансированные "кавычки"""" (четыре в конце) -- связано с синтаксисом ваки'.o_gilensize
|
53
|
+
assert_equal '«несбалансированные «кавычки""" (три в конце) — связано с синтаксисом ваки', '"несбалансированные "кавычки""" (три в конце) -- связано с синтаксисом ваки'.o_gilensize
|
54
|
+
assert_equal '«разноязыкие quotes»', '"разноязыкие quotes"'.o_gilensize
|
55
|
+
assert_equal '«multilanguage кавычки»', '"multilanguage кавычки"'.o_gilensize
|
56
|
+
end
|
57
57
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rutils
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2005-11-
|
6
|
+
version: 0.1.3
|
7
|
+
date: 2005-11-15 00:00:00 +01:00
|
8
8
|
summary: Simple processing of russian strings
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -33,7 +33,6 @@ files:
|
|
33
33
|
- bin/gilensize
|
34
34
|
- bin/rutilize
|
35
35
|
- test/run_tests.rb
|
36
|
-
- test/t_binaries.rb
|
37
36
|
- test/t_datetime.rb
|
38
37
|
- test/t_gilenson.rb
|
39
38
|
- test/t_integration.rb
|
@@ -41,12 +40,14 @@ files:
|
|
41
40
|
- test/t_rutils_base.rb
|
42
41
|
- test/t_transliteration.rb
|
43
42
|
- test/t_typografica.rb
|
43
|
+
- lib/countries
|
44
44
|
- lib/datetime
|
45
45
|
- lib/gilenson
|
46
46
|
- lib/integration
|
47
47
|
- lib/pluralizer
|
48
48
|
- lib/rutils.rb
|
49
49
|
- lib/transliteration
|
50
|
+
- lib/countries/countries.rb
|
50
51
|
- lib/datetime/datetime.rb
|
51
52
|
- lib/gilenson/gilenson.rb
|
52
53
|
- lib/gilenson/gilenson_port.rb
|
@@ -64,7 +65,7 @@ test_files:
|
|
64
65
|
rdoc_options:
|
65
66
|
- "--main=README"
|
66
67
|
- "--line-numbers"
|
67
|
-
- "--webcvs
|
68
|
+
- "--webcvs=http://rubyforge.org/cgi-bin/viewcvs.cgi/rutils/%s?cvsroot=rutils"
|
68
69
|
- "--charset=utf-8"
|
69
70
|
- "--promiscuous"
|
70
71
|
extra_rdoc_files:
|
data/test/t_binaries.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
$KCODE = 'u'
|
2
|
-
require 'test/unit'
|
3
|
-
require File.dirname(__FILE__) + '/../lib/rutils'
|
4
|
-
|
5
|
-
|
6
|
-
class RutilizeTest < Test::Unit::TestCase
|
7
|
-
def setup
|
8
|
-
@dirs = [
|
9
|
-
'/tmp/app',
|
10
|
-
'/tmp/notapp',
|
11
|
-
'/tmp/app/vendor',
|
12
|
-
]
|
13
|
-
@dirs.each{|dir| Dir::mkdir(dir) }
|
14
|
-
@rutilize = File.dirname(__FILE__) + '/../bin/rutilize'
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_rutilize_app
|
18
|
-
`#{@rutilize} #{@dirs[0]}`
|
19
|
-
assert File.exist?(@dirs[0] + '/vendor/plugins/rutils')
|
20
|
-
assert File.exist?(@dirs[0] + '/vendor/plugins/rutils/lib/rutils.rb')
|
21
|
-
end
|
22
|
-
|
23
|
-
def teardown
|
24
|
-
@dirs.each {|dir| `rm -rf #{dir}` }
|
25
|
-
end
|
26
|
-
end
|