julik-rutils 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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