rotuka-rutils 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,69 @@
1
+ $KCODE = 'u'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/rutils'
4
+
5
+
6
+ class PropisjuTestCase < Test::Unit::TestCase
7
+ def test_ints
8
+ assert_equal "пятьсот двадцать три", 523.propisju
9
+ assert_equal "шесть тысяч семьсот двадцать семь", 6727.propisju
10
+ assert_equal "восемь миллионов шестьсот пятьдесят два", 8000652.propisju
11
+ assert_equal "восемь миллионов шестьсот пятьдесят две", 8000652.propisju(2)
12
+ assert_equal "восемь миллионов шестьсот пятьдесят два", 8000652.propisju(3)
13
+ assert_equal "сорок пять", 45.propisju
14
+ assert_equal "пять", 5.propisju
15
+ assert_equal "шестьсот двенадцать", 612.propisju
16
+ assert_equal "двадцать пять колес", 25.propisju_items(3, "колесо", "колеса", "колес")
17
+ assert_equal "двадцать одна подстава", 21.propisju_items(2, "подстава", "подставы", "подстав")
18
+ end
19
+
20
+ def test_floats
21
+ assert_equal "шесть целых пять десятых", (6.50).propisju
22
+ assert_equal "триста сорок одна целая девять десятых", (341.9).propisju
23
+ assert_equal "триста сорок одна целая двести сорок пять тысячных", (341.245).propisju
24
+ assert_equal "двести три целых сорок одна сотая", (203.41).propisju
25
+ assert_equal "четыреста сорок две целых пять десятых", (442.50000).propisju
26
+ assert_equal "двести двенадцать целых четыре десятых сволочи", (212.40).propisju_items(2, "сволочь", "сволочи", "сволочей")
27
+ assert_equal "двести двенадцать сволочей", (212.00).propisju_items(2, "сволочь", "сволочи", "сволочей")
28
+ end
29
+
30
+ def test_items
31
+ assert_equal "чемодана", 523.items("чемодан", "чемодана", "чемоданов")
32
+ assert_equal "партий", 6727.items("партия", "партии", "партий")
33
+ assert_equal "козлов", 45.items("козел", "козла", "козлов")
34
+ assert_equal "колес", 260.items("колесо", "колеса", "колес")
35
+ end
36
+
37
+ def test_money
38
+ assert_equal "сто двадцать три рубля", 123.rublej
39
+ assert_equal "триста сорок три рубля двадцать копеек", (343.20).rublej
40
+ assert_equal "сорок две копейки", (0.4187).rublej
41
+ assert_equal "триста тридцать два рубля", (331.995).rublej
42
+ end
43
+ end
44
+
45
+ #class PluralizeTestCase < Test::Unit::TestCase
46
+ #
47
+ # def test_males
48
+ # assert_equal "гада", "гад".ru_pluralize(3)
49
+ # assert_equal "враг", "враг".ru_pluralize(1)
50
+ # assert_equal "сцепа", "сцеп".ru_pluralize(2)
51
+ # assert_equal "огня", "огонь".ru_pluralize(2)
52
+ # assert_equal "огней", "огонь".ru_pluralize(6)
53
+ # end
54
+ #
55
+ # def test_females
56
+ # assert_equal "сволочей", "сволочь".ru_pluralize(6)
57
+ # assert_equal "весны", "весна".ru_pluralize(3)
58
+ # assert_equal "чета", "четы".ru_pluralize(2)
59
+ # assert_equal "чета", "чет".ru_pluralize(5)
60
+ # assert_equal "вони", "вонь".ru_pluralize(3)
61
+ # assert_equal "воней", "вонь".ru_pluralize(6)
62
+ # end
63
+ #
64
+ # def test_middles
65
+ # assert_equal "окна", "окно".ru_pluralize(2)
66
+ # assert_equal "колес", "колесо".ru_pluralize(15)
67
+ # assert_equal "насилий", "насилие".ru_pluralize(5)
68
+ # end
69
+ #end
@@ -0,0 +1,10 @@
1
+ $KCODE = 'u'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/rutils'
4
+
5
+ class RutilsBaseTest < Test::Unit::TestCase
6
+ def test_rutils_location
7
+ libdir = File.expand_path(File.dirname(__FILE__) + '/../')
8
+ assert_equal libdir, RuTils::INSTALLATION_DIRECTORY
9
+ end
10
+ end
@@ -0,0 +1,109 @@
1
+ $KCODE = 'u'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/rutils'
4
+
5
+
6
+ class TranslitTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @string = "Это кусок строки русских букв v peremeshku s latinizey i амперсандом (pozor!) & something"
10
+ end
11
+
12
+ def test_translify
13
+ assert_equal "sch", 'щ'.translify
14
+ assert_equal "stansyi", "стансы".translify
15
+ assert_equal "upuschenie", 'упущение'.translify
16
+ assert_equal "sh", 'ш'.translify
17
+ assert_equal "SH", 'Ш'.translify
18
+ assert_equal "ts", 'ц'.translify
19
+ assert_equal "Eto kusok stroki russkih bukv v peremeshku s latinizey i ampersandom (pozor!) & something", @string.translify
20
+ assert_equal "Это просто некий текст".translify, "Eto prosto nekiy tekst"
21
+
22
+ assert_equal "NEVEROYATNOE UPUSCHENIE", 'НЕВЕРОЯТНОЕ УПУЩЕНИЕ'.translify
23
+ assert_equal "Neveroyatnoe Upuschenie", 'Невероятное Упущение'.translify
24
+ assert_equal "Sherstyanoy Zayats", 'Шерстяной Заяц'.translify
25
+ assert_equal "N.P. Sherstyakov", 'Н.П. Шерстяков'.translify
26
+ assert_equal "SHAROVARYI", 'ШАРОВАРЫ'.translify
27
+ end
28
+
29
+ # def test_detranslify
30
+ # puts "Шерстяной негодяй"
31
+ # assert_equal "щ", "sch".detranslify
32
+ # assert_equal "Щ", "SCH".detranslify
33
+ # assert_equal "Щ", "Sch".detranslify
34
+ # assert_equal "Щукин", "Schukin".detranslify
35
+ # assert_equal "Шерстяной негодяй", "Scherstyanoy negodyay".detranslify
36
+ # end
37
+
38
+ def test_dirify
39
+ assert_equal "eto-kusok-stroki-russkih-bukv-v-peremeshku-s-latinizey-i-ampersandom-pozor-and-something", @string.dirify
40
+ assert_equal "esche-russkiy-tekst", "Еще РусСКий теКст".dirify
41
+ # dirify не должен съедать парные буквы
42
+ assert_equal "kooperator-poobedal-offlayn", "кооператор пообедал оффлайн".dirify
43
+ end
44
+ end
45
+
46
+
47
+ class BiDiTranslitTest < Test::Unit::TestCase
48
+
49
+ def setup
50
+ @strings_all_with_slash = {
51
+ "ThisIsРусскийName/ДляВас/ДемонстрацияOfSwitching" => "ThisIs+Russkijj+Name/+DljaVas+/+Demonstracija+OfSwitching",
52
+ "Андрэ Нортон Зачумлённый корабльzip" => "+Andreh__Norton__Zachumljonnyjj__korabl'+zip",
53
+ "Эй Эгегей" => "+EHjj__EHgegejj",
54
+ "эй-эй" => "+ehjj+-+ehjj",
55
+ "WebРазработка/Скрипты" => "Web+Razrabotka+/+Skripty",
56
+ "Смотрите зайцы -- нас много" => "+Smotrite__zajjcy__+--+__nas__mnogo",
57
+ "Привет Родина" => "+Privet__Rodina",
58
+ "ЙухХа" => "+JJukhKHa",
59
+ "Ыхыхых Its English text" => "+Ykhykhykh__+Its+__+English+__+text",
60
+ "Пьянь" => "+P'jan'",
61
+ "----____" => "----____",
62
+ "Madonna - Свежия Песенки" => "Madonna+__+-+__Svezhija__Pesenki",
63
+ "58-49" => "58-49",
64
+ "Въезд ГЛЯНЬ ВЪЕЗД" => "+V~ezd__GLJAN_'__V_~EZD",
65
+ "----____" => "----____",
66
+ "Въезд ГЛЯНь ВЪЕЗД" => "+V~ezd__GLJAN'__V_~EZD",
67
+ "Установка mod_perl" => "+Ustanovka__+mod_perl",
68
+ "Проверка__двери неразумной" => "+Proverka+__+dveri__nerazumnojj",
69
+ "Проверка_ дверцы" => "+Proverka+_+__dvercy",
70
+ "Кровать устала _ь" => "+Krovat'__ustala__+_+'",
71
+ "test__bed" => "test__bed",
72
+ "test_ bed" => "test_+__+bed",
73
+ "test__ __bed" => "test__+__+__bed",
74
+ "a_-_b-_-c" => "a_-_b-_-c",
75
+ "a - b _ c" => "a+__+-+__+b+__+_+__+c",
76
+ }
77
+
78
+ @strings_tran_without_slash = {
79
+ "Андрэ/ Н/о/ртон /Зачум//лённый корабль/z/ip" => "+Andreh__Norton__Zachumljonnyjj__korabl'+zip",
80
+ "WebРазработка/Мимо" => "Web+RazrabotkaMimo",
81
+ "test_/_bed" => "test__bed",
82
+ }
83
+
84
+ @strings_detran_without_slash = {
85
+ "Webds" => "/We/bds/",
86
+ "WebРазработкаМимо" => "Web/+Razrabotka+/+Mimo",
87
+ "WebСкрипты" => "Web/+Skripty",
88
+ "ПХПScripts" => "+PKHP+/Scripts",
89
+ }
90
+ end
91
+
92
+ def test_bidi_translify
93
+ @strings_all_with_slash.each do |strFrom, strTo|
94
+ assert_equal strTo, strFrom.bidi_translify
95
+ end
96
+ @strings_tran_without_slash.each do |strFrom, strTo|
97
+ assert_equal strTo, strFrom.bidi_translify(false)
98
+ end
99
+ end
100
+
101
+ def test_bidi_detranslify
102
+ @strings_all_with_slash.each do |strTo, strFrom|
103
+ assert_equal strTo, strFrom.bidi_detranslify
104
+ end
105
+ @strings_detran_without_slash.each do |strTo, strFrom|
106
+ assert_equal strTo, strFrom.bidi_detranslify(false)
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,57 @@
1
+ $KCODE = 'u'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/rutils'
4
+
5
+ # Тесты Гиленсона - обычный набор тестов к Тыпографице с сайта pixel-apes. Все "наши" тесты Гиленсона идут в другой test case!
6
+ class TypograficaComplianceTest < Test::Unit::TestCase
7
+
8
+ def test_phones
9
+ assert_equal '<nobr>3&ndash;12&ndash;30</nobr>', '3-12-30'.o_gilensize
10
+ assert_equal '<nobr>12&ndash;34&ndash;56</nobr>', '12-34-56'.o_gilensize
11
+ assert_equal '<nobr>88&ndash;25&ndash;04</nobr>', '88-25-04'.o_gilensize
12
+ assert_equal '+7 <nobr>(99284)&nbsp;65&ndash;818</nobr>', '+7 (99284) 65-818'.o_gilensize
13
+ assert_equal '<nobr>725&ndash;01&ndash;10</nobr>', '725-01-10'.o_gilensize
14
+ end
15
+
16
+ def test_address
17
+ assert_equal 'табл.&nbsp;2, рис.&nbsp;2.10', 'табл. 2, рис. 2.10'.o_gilensize
18
+ assert_equal 'офис&nbsp;415, оф.340, д.5, ул.&nbsp;Народной Воли, пл. Малышева', 'офис 415, оф.340, д.5, ул. Народной Воли, пл. Малышева'.o_gilensize
19
+ end
20
+
21
+ def test_specials
22
+ assert_equal '&copy; 2002, &copy; 2003, &copy; 2004, &copy; 2005 &mdash; тоже без&nbsp;пробелов: &copy;2002, &copy;Кукуц. однако: варианты (а) и&nbsp;(с)', '(с) 2002, (С) 2003, (c) 2004, (C) 2005 -- тоже без пробелов: (с)2002, (c)Кукуц. однако: варианты (а) и (с)'.o_gilensize
23
+ assert_equal '+5&#176;С, +7&#176;C, &ndash;5&#176;F', '+5^С, +17^C, -275^F'.o_gilensize
24
+ assert_equal 'об&nbsp;этом подробнее &mdash; читай &#167;25', 'об этом подробнее -- читай (p)25'.o_gilensize
25
+ assert_equal 'один же&nbsp;минус &ndash; краткое тире', 'один же минус - краткое тире'.o_gilensize
26
+ assert_equal 'Sharpdesign&#153;, Microsoft<sup>&#174;</sup>', 'Sharpdesign(tm), Microsoft(r)'.o_gilensize
27
+ end
28
+
29
+ def test_breaking
30
+ assert_equal 'скажи, мне, ведь не&nbsp;даром! Москва, клеймённая пожаром. Французу отдана', 'скажи ,мне, ведь не даром !Москва, клеймённая пожаром .Французу отдана'.o_gilensize
31
+ assert_equal 'so&nbsp;be it, my&nbsp;liege. Tiny dwellers roam thru midnight! Hell raised, the&nbsp;Balrog is&nbsp;hiding in&nbsp;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 'при&nbsp;установке командой строки в&nbsp;?page=help <nobr>бла-бла-бла-бла</nobr>', 'при установке командой строки в ?page=help бла-бла-бла-бла'.o_gilensize
33
+ assert_equal 'как&nbsp;интересно будет переноситься со&nbsp;строки на&nbsp;строку <nobr>что-то</nobr> разделённое дефисом, ведь дефис тот&nbsp;тоже ведь из&nbsp;наших. <nobr>Какие-то</nobr> браузеры думают, что&nbsp;следует переносить и&nbsp;его...', 'как интересно будет переноситься со строки на строку что-то разделённое дефисом, ведь дефис тот тоже ведь из наших. Какие-то браузеры думают, что следует переносить и его...'.o_gilensize
34
+ end
35
+
36
+ def test_quotes
37
+ assert_equal 'english &#147;quotes&#148; should be&nbsp;quite like this', 'english "quotes" should be quite like this'.o_gilensize
38
+ assert_equal 'русские же&nbsp;&laquo;оформляются&raquo; подобным образом', 'русские же "оформляются" подобным образом'.o_gilensize
39
+ assert_equal 'кавычки &laquo;расставлены&raquo; &#147;in a&nbsp;chaotic order&#148;', 'кавычки "расставлены" "in a chaotic order"'.o_gilensize
40
+ assert_equal 'диагональ моего монитора &mdash; 17&quot;, а&nbsp;размер пениса &mdash; 1,5&quot;', 'диагональ моего монитора -- 17", а размер пениса -- 1,5"'.o_gilensize
41
+ assert_equal 'в&nbsp;толщину, &laquo;вложенные &#147;quotes&#148; вот&nbsp;так&raquo;, &#147;or it&nbsp;&laquo;будет вложено&raquo; elsewhere&#148;', 'в толщину, "вложенные "quotes" вот так", "or it "будет вложено" elsewhere"'.o_gilensize
42
+ assert_equal '&#147;complicated &laquo;кавычки&raquo;, &laquo;странные &#147;includements&#148; кавычек&raquo;', '"complicated "кавычки", "странные "includements" кавычек"'.o_gilensize
43
+ assert_equal '&#147;double &#147;quotes&#148;', '"double "quotes"'.o_gilensize
44
+ assert_equal '&laquo;дважды вложенные &laquo;кавычки&raquo;', '"дважды вложенные "кавычки"'.o_gilensize
45
+ assert_equal '&laquo;01/02/03&raquo;, дискеты в&nbsp;5.25&quot;', '"01/02/03", дискеты в 5.25"'.o_gilensize
46
+ assert_equal 'после троеточия правая кавычка &mdash; &laquo;Вот...&raquo;', 'после троеточия правая кавычка -- "Вот..."'.o_gilensize
47
+ assert_equal 'setlocale(LC_ALL, &#147;ru_RU.UTF8&#148;);', 'setlocale(LC_ALL, "ru_RU.UTF8");'.o_gilensize
48
+ assert_equal '&#147;read, write, delete&#148; с&nbsp;флагом &#147;only_mine&#148;', '"read, write, delete" с флагом "only_mine"'.o_gilensize
49
+ assert_equal '&laquo;Двоеточие:&raquo;, &laquo;такую умную тему должен писать чувак умеющий скрипты скриптить.&raquo;', '"Двоеточие:", "такую умную тему должен писать чувак умеющий скрипты скриптить."'.o_gilensize
50
+ assert_equal '(&laquo;Вики != HTML&raquo; &mdash; &laquo;Вики != HTML&raquo; &mdash; (&laquo;всякая чушь&raquo;))', '("Вики != HTML" -- "Вики != HTML" -- ("всякая чушь"))'.o_gilensize
51
+ assert_equal '&laquo;фигня123&raquo;, &#147;fignya123&#148;', '"фигня123", "fignya123"'.o_gilensize
52
+ # assert_equal '&laquo;сбалансированные &laquo;кавычки<!--notypo--><!--/notypo--> (четыре в&nbsp;конце) &mdash; связано с&nbsp;синтаксисом ваки', '"сбалансированные "кавычки"""" (четыре в конце) -- связано с синтаксисом ваки'.o_gilensize
53
+ assert_equal '&laquo;несбалансированные &laquo;кавычки&quot;&quot;" (три в&nbsp;конце) &mdash; связано с&nbsp;синтаксисом ваки', '"несбалансированные "кавычки""" (три в конце) -- связано с синтаксисом ваки'.o_gilensize
54
+ assert_equal '&laquo;разноязыкие quotes&raquo;', '"разноязыкие quotes"'.o_gilensize
55
+ assert_equal '&laquo;multilanguage кавычки&raquo;', '"multilanguage кавычки"'.o_gilensize
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rotuka-rutils
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
+ platform: ruby
6
+ authors:
7
+ - Julian "Julik" Tarkhanov
8
+ autorequire: rutils
9
+ bindir: bin
10
+ cert_chain:
11
+ date: 2007-09-27 00:00:00 -07:00
12
+ default_executable:
13
+ dependencies: []
14
+
15
+ description: Allows simple processing of russian strings - transliteration, numerals as text and HTML beautification
16
+ email: me@julik.nl
17
+ executables:
18
+ - gilensize
19
+ - rutilize
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ - TODO
25
+ - CHANGELOG
26
+ files:
27
+ - bin/gilensize
28
+ - bin/rutilize
29
+ - test/run_tests.rb
30
+ - test/t_datetime.rb
31
+ - test/t_gilenson.rb
32
+ - test/t_integration.rb
33
+ - test/t_pluralize.rb
34
+ - test/t_rutils_base.rb
35
+ - test/t_transliteration.rb
36
+ - test/t_typografica.rb
37
+ - lib/countries
38
+ - lib/countries/countries.rb
39
+ - lib/datetime
40
+ - lib/datetime/datetime.rb
41
+ - lib/gilenson
42
+ - lib/gilenson/gilenson.rb
43
+ - lib/gilenson/gilenson_port.rb
44
+ - lib/integration
45
+ - lib/integration/blue_cloth_override.rb
46
+ - lib/integration/integration.rb
47
+ - lib/integration/rails_date_helper_override.rb
48
+ - lib/integration/red_cloth_override.rb
49
+ - lib/pluralizer
50
+ - lib/pluralizer/pluralizer.rb
51
+ - lib/rutils.rb
52
+ - lib/transliteration
53
+ - lib/transliteration/bidi.rb
54
+ - lib/transliteration/simple.rb
55
+ - lib/transliteration/transliteration.rb
56
+ - CHANGELOG
57
+ - init.rb
58
+ - Rakefile.rb
59
+ - README
60
+ - TODO
61
+ has_rdoc: true
62
+ homepage: http://rubyforge.org/projects/rutils
63
+ post_install_message:
64
+ rdoc_options:
65
+ - --main=README
66
+ - --line-numbers
67
+ - --webcvs=http://github.com/rotuka/rutils
68
+ - --charset=utf-8
69
+ - --promiscuous
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">"
75
+ - !ruby/object:Gem::Version
76
+ version: 0.0.0
77
+ version:
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ version:
84
+ requirements: []
85
+
86
+ rubyforge_project: rutils
87
+ rubygems_version: 1.2.0
88
+ signing_key:
89
+ specification_version: 1
90
+ summary: Simple processing of russian strings
91
+ test_files:
92
+ - test/run_tests.rb