julik-rutils 1.0.2

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.
Files changed (43) hide show
  1. data/History.txt +162 -0
  2. data/Manifest.txt +42 -0
  3. data/README.txt +234 -0
  4. data/Rakefile.rb +41 -0
  5. data/TODO.txt +6 -0
  6. data/WHAT_HAS_CHANGED.txt +44 -0
  7. data/bin/gilensize +22 -0
  8. data/bin/rutilize +38 -0
  9. data/init.rb +27 -0
  10. data/lib/countries/countries.rb +1773 -0
  11. data/lib/datetime/datetime.rb +83 -0
  12. data/lib/gilenson/bluecloth_extra.rb +7 -0
  13. data/lib/gilenson/gilenson.rb +665 -0
  14. data/lib/gilenson/helper.rb +34 -0
  15. data/lib/gilenson/maruku_extra.rb +19 -0
  16. data/lib/gilenson/rdiscount_extra.rb +7 -0
  17. data/lib/gilenson/redcloth_extra.rb +42 -0
  18. data/lib/integration/integration.rb +1 -0
  19. data/lib/integration/rails_date_helper_override.rb +127 -0
  20. data/lib/integration/rails_pre_filter.rb +4 -0
  21. data/lib/pluralizer/pluralizer.rb +261 -0
  22. data/lib/rutils.rb +54 -0
  23. data/lib/transliteration/bidi.rb +21 -0
  24. data/lib/transliteration/simple.rb +75 -0
  25. data/lib/transliteration/transliteration.rb +53 -0
  26. data/lib/version.rb +5 -0
  27. data/test/extras/integration_bluecloth.rb +13 -0
  28. data/test/extras/integration_maruku.rb +15 -0
  29. data/test/extras/integration_rails_filter.rb +29 -0
  30. data/test/extras/integration_rails_gilenson_helpers.rb +80 -0
  31. data/test/extras/integration_rails_helpers.rb +85 -0
  32. data/test/extras/integration_rdiscount.rb +15 -0
  33. data/test/extras/integration_redcloth3.rb +18 -0
  34. data/test/extras/integration_redcloth4.rb +19 -0
  35. data/test/run_tests.rb +4 -0
  36. data/test/test_datetime.rb +145 -0
  37. data/test/test_gilenson.rb +396 -0
  38. data/test/test_integration.rb +22 -0
  39. data/test/test_integration_flag.rb +18 -0
  40. data/test/test_pluralize.rb +84 -0
  41. data/test/test_rutils_base.rb +11 -0
  42. data/test/test_transliteration.rb +53 -0
  43. metadata +121 -0
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $KCODE = 'u'
3
+ require 'test/unit'
4
+
5
+ require File.dirname(__FILE__) + '/../lib/rutils'
6
+
7
+ # Load all the prereqs
8
+ integration_tests = ['rubygems', 'multi_rails_init'] + Dir.glob(File.dirname(__FILE__) + '/extras/integration_*.rb')
9
+
10
+ # Specifically for Ruby 1.9.1 (too early at this point)
11
+ if ENV['NO_RAILS'] || RUBY_VERSION =~ /^1\.9/
12
+ STDERR.puts "Skipping Rails tests - NO_RAILS set in ENV or running on Ruby 1.9+"
13
+ integration_tests.reject! {|t| t.include?("rails") }
14
+ end
15
+
16
+ integration_tests.each do | integration_test |
17
+ begin
18
+ require integration_test
19
+ rescue LoadError => e
20
+ STDERR.puts "Skipping integration test #{File.basename(integration_test)} - deps not met (#{e.message})"
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $KCODE = 'u'
3
+ require 'test/unit'
4
+
5
+ require File.dirname(__FILE__) + '/../lib/rutils'
6
+
7
+ class IntegrationFlagTest < Test::Unit::TestCase
8
+ def setup
9
+ RuTils::overrides = true
10
+ end
11
+
12
+ def test_integration_flag
13
+ RuTils::overrides = false
14
+ assert !RuTils::overrides_enabled?
15
+ RuTils::overrides = true
16
+ assert RuTils::overrides_enabled?
17
+ end
18
+ end
@@ -0,0 +1,84 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $KCODE = 'u'
3
+ require 'test/unit'
4
+ require File.dirname(__FILE__) + '/../lib/rutils'
5
+
6
+
7
+ class PropisjuTestCase < Test::Unit::TestCase
8
+ def test_ints
9
+ assert_equal "пятьсот двадцать три", 523.propisju
10
+ assert_equal "шесть тысяч семьсот двадцать семь", 6727.propisju
11
+ assert_equal "восемь миллионов шестьсот пятьдесят два", 8000652.propisju
12
+ assert_equal "восемь миллионов шестьсот пятьдесят две", 8000652.propisju(2)
13
+ assert_equal "восемь миллионов шестьсот пятьдесят два", 8000652.propisju(3)
14
+ assert_equal "сорок пять", 45.propisju
15
+ assert_equal "пять", 5.propisju
16
+ assert_equal "шестьсот двенадцать", 612.propisju
17
+ assert_equal "двадцать пять колес", 25.propisju_items(3, "колесо", "колеса", "колес")
18
+ assert_equal "двадцать одна подстава", 21.propisju_items(2, "подстава", "подставы", "подстав")
19
+ end
20
+
21
+ def test_floats
22
+ assert_equal "шесть целых пять десятых", (6.50).propisju
23
+ assert_equal "триста сорок одна целая девять десятых", (341.9).propisju
24
+ assert_equal "триста сорок одна целая двести сорок пять тысячных", (341.245).propisju
25
+ assert_equal "двести три целых сорок одна сотая", (203.41).propisju
26
+ assert_equal "четыреста сорок две целых пять десятых", (442.50000).propisju
27
+ assert_equal "двести двенадцать целых четыре десятых сволочи", (212.40).propisju_items(2, "сволочь", "сволочи", "сволочей")
28
+ assert_equal "двести двенадцать сволочей", (212.00).propisju_items(2, "сволочь", "сволочи", "сволочей")
29
+ end
30
+
31
+ def test_items
32
+ assert_equal "чемодана", 523.items("чемодан", "чемодана", "чемоданов")
33
+ assert_equal "партий", 6727.items("партия", "партии", "партий")
34
+ assert_equal "козлов", 45.items("козел", "козла", "козлов")
35
+ assert_equal "колес", 260.items("колесо", "колеса", "колес")
36
+ end
37
+
38
+ def test_rublej
39
+ assert_equal "сто двадцать три рубля", 123.rublej
40
+ assert_equal "триста сорок три рубля двадцать копеек", (343.20).rublej
41
+ assert_equal "сорок две копейки", (0.4187).rublej
42
+ assert_equal "триста тридцать два рубля", (331.995).rublej
43
+ assert_equal "один рубль", 1.rubl
44
+ assert_equal "три рубля четырнадцать копеек", (3.14).rublja
45
+ end
46
+
47
+ def test_kopeek
48
+ assert_equal "сто двадцать три рубля", 12300.kopeek
49
+ assert_equal "три рубля четырнадцать копеек", 314.kopeek
50
+ assert_equal "тридцать две копейки", 32.kopeek
51
+ assert_equal "двадцать одна копейка", 21.kopeika
52
+ assert_equal "три копейки", 3.kopeiki
53
+ end
54
+
55
+ def test_kopeek_should_not_be_available_on_floats
56
+ assert_raise(NoMethodError) { (3.3).kopeek }
57
+ end
58
+ end
59
+
60
+ #class PluralizeTestCase < Test::Unit::TestCase
61
+ #
62
+ # def test_males
63
+ # assert_equal "гада", "гад".ru_pluralize(3)
64
+ # assert_equal "враг", "враг".ru_pluralize(1)
65
+ # assert_equal "сцепа", "сцеп".ru_pluralize(2)
66
+ # assert_equal "огня", "огонь".ru_pluralize(2)
67
+ # assert_equal "огней", "огонь".ru_pluralize(6)
68
+ # end
69
+ #
70
+ # def test_females
71
+ # assert_equal "сволочей", "сволочь".ru_pluralize(6)
72
+ # assert_equal "весны", "весна".ru_pluralize(3)
73
+ # assert_equal "чета", "четы".ru_pluralize(2)
74
+ # assert_equal "чета", "чет".ru_pluralize(5)
75
+ # assert_equal "вони", "вонь".ru_pluralize(3)
76
+ # assert_equal "воней", "вонь".ru_pluralize(6)
77
+ # end
78
+ #
79
+ # def test_middles
80
+ # assert_equal "окна", "окно".ru_pluralize(2)
81
+ # assert_equal "колес", "колесо".ru_pluralize(15)
82
+ # assert_equal "насилий", "насилие".ru_pluralize(5)
83
+ # end
84
+ #end
@@ -0,0 +1,11 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $KCODE = 'u'
3
+ require 'test/unit'
4
+ require File.dirname(__FILE__) + '/../lib/rutils'
5
+
6
+ class RutilsBaseTest < Test::Unit::TestCase
7
+ def test_rutils_location
8
+ libdir = File.expand_path(File.dirname(__FILE__) + '/../')
9
+ assert_equal libdir, RuTils::INSTALLATION_DIRECTORY
10
+ end
11
+ end
@@ -0,0 +1,53 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $KCODE = 'u'
3
+ require 'test/unit'
4
+ require File.dirname(__FILE__) + '/../lib/rutils'
5
+
6
+
7
+ class TranslitTest < Test::Unit::TestCase
8
+
9
+ def setup
10
+ @string = "Это кусок строки русских букв v peremeshku s latinizey i амперсандом (pozor!) & something"
11
+ end
12
+
13
+ def test_translify
14
+ assert_equal "sch", 'щ'.translify
15
+ assert_equal "stansyi", "стансы".translify
16
+ assert_equal "upuschenie", 'упущение'.translify
17
+ assert_equal "sh", 'ш'.translify
18
+ assert_equal "SH", 'Ш'.translify
19
+ assert_equal "ts", 'ц'.translify
20
+ assert_equal "Eto kusok stroki russkih bukv v peremeshku s latinizey i ampersandom (pozor!) & something", @string.translify
21
+ assert_equal "Это просто некий текст".translify, "Eto prosto nekiy tekst"
22
+
23
+ assert_equal "NEVEROYATNOE UPUSCHENIE", 'НЕВЕРОЯТНОЕ УПУЩЕНИЕ'.translify
24
+ assert_equal "Neveroyatnoe Upuschenie", 'Невероятное Упущение'.translify
25
+ assert_equal "Sherstyanoy Zayats", 'Шерстяной Заяц'.translify
26
+ assert_equal "N.P. Sherstyakov", 'Н.П. Шерстяков'.translify
27
+ assert_equal "SHAROVARYI", 'ШАРОВАРЫ'.translify
28
+ end
29
+
30
+ # def test_detranslify
31
+ # puts "Шерстяной негодяй"
32
+ # assert_equal "щ", "sch".detranslify
33
+ # assert_equal "Щ", "SCH".detranslify
34
+ # assert_equal "Щ", "Sch".detranslify
35
+ # assert_equal "Щукин", "Schukin".detranslify
36
+ # assert_equal "Шерстяной негодяй", "Scherstyanoy negodyay".detranslify
37
+ # end
38
+
39
+ def test_dirify
40
+ assert_equal "eto-kusok-stroki-russkih-bukv-v-peremeshku-s-latinizey-i-ampersandom-pozor-and-something", @string.dirify
41
+ assert_equal "esche-russkiy-tekst", "Еще РусСКий теКст".dirify
42
+ assert_equal "kooperator-poobedal-offlayn", "кооператор пообедал оффлайн".dirify, "dirify не должен съедать парные буквы"
43
+ end
44
+ end
45
+
46
+
47
+ class BiDiTranslitTest < Test::Unit::TestCase
48
+
49
+ def test_bidi_translify_raises_unsupported
50
+ assert_raise(RuTils::RemovedFeature) { "xxx".bidi_translify }
51
+ assert_raise(RuTils::RemovedFeature) { "xxx".bidi_detranslify }
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: julik-rutils
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Julian 'Julik' Tarkhanov
8
+ - Danil Ivanov
9
+ - Yaroslav Markin
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2009-02-08 00:00:00 -08:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: hoe
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 1.8.3
25
+ version:
26
+ description: Simple processing of russian strings
27
+ email:
28
+ - me@julik.nl
29
+ - yaroslav@markin.net
30
+ executables:
31
+ - gilensize
32
+ - rutilize
33
+ extensions: []
34
+
35
+ extra_rdoc_files:
36
+ - History.txt
37
+ - Manifest.txt
38
+ - README.txt
39
+ - TODO.txt
40
+ - WHAT_HAS_CHANGED.txt
41
+ files:
42
+ - History.txt
43
+ - Manifest.txt
44
+ - README.txt
45
+ - Rakefile.rb
46
+ - TODO.txt
47
+ - WHAT_HAS_CHANGED.txt
48
+ - bin/gilensize
49
+ - bin/rutilize
50
+ - init.rb
51
+ - lib/countries/countries.rb
52
+ - lib/datetime/datetime.rb
53
+ - lib/gilenson/bluecloth_extra.rb
54
+ - lib/gilenson/gilenson.rb
55
+ - lib/gilenson/helper.rb
56
+ - lib/gilenson/maruku_extra.rb
57
+ - lib/gilenson/rdiscount_extra.rb
58
+ - lib/gilenson/redcloth_extra.rb
59
+ - lib/integration/integration.rb
60
+ - lib/integration/rails_date_helper_override.rb
61
+ - lib/integration/rails_pre_filter.rb
62
+ - lib/pluralizer/pluralizer.rb
63
+ - lib/rutils.rb
64
+ - lib/transliteration/bidi.rb
65
+ - lib/transliteration/simple.rb
66
+ - lib/transliteration/transliteration.rb
67
+ - lib/version.rb
68
+ - test/extras/integration_bluecloth.rb
69
+ - test/extras/integration_maruku.rb
70
+ - test/extras/integration_rails_filter.rb
71
+ - test/extras/integration_rails_gilenson_helpers.rb
72
+ - test/extras/integration_rails_helpers.rb
73
+ - test/extras/integration_rdiscount.rb
74
+ - test/extras/integration_redcloth3.rb
75
+ - test/extras/integration_redcloth4.rb
76
+ - test/run_tests.rb
77
+ - test/test_datetime.rb
78
+ - test/test_gilenson.rb
79
+ - test/test_integration.rb
80
+ - test/test_integration_flag.rb
81
+ - test/test_pluralize.rb
82
+ - test/test_rutils_base.rb
83
+ - test/test_transliteration.rb
84
+ has_rdoc: true
85
+ homepage: http://rutils.rubyforge.org
86
+ post_install_message:
87
+ rdoc_options:
88
+ - --main
89
+ - README.txt
90
+ - --charset
91
+ - utf-8
92
+ - --promiscuous
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
100
+ version:
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: "0"
106
+ version:
107
+ requirements: []
108
+
109
+ rubyforge_project: rutils
110
+ rubygems_version: 1.2.0
111
+ signing_key:
112
+ specification_version: 2
113
+ summary: Simple processing of russian strings
114
+ test_files:
115
+ - test/test_datetime.rb
116
+ - test/test_gilenson.rb
117
+ - test/test_integration.rb
118
+ - test/test_integration_flag.rb
119
+ - test/test_pluralize.rb
120
+ - test/test_rutils_base.rb
121
+ - test/test_transliteration.rb