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.
- data/History.txt +162 -0
- data/Manifest.txt +42 -0
- data/README.txt +234 -0
- data/Rakefile.rb +41 -0
- data/TODO.txt +6 -0
- data/WHAT_HAS_CHANGED.txt +44 -0
- data/bin/gilensize +22 -0
- data/bin/rutilize +38 -0
- data/init.rb +27 -0
- data/lib/countries/countries.rb +1773 -0
- data/lib/datetime/datetime.rb +83 -0
- data/lib/gilenson/bluecloth_extra.rb +7 -0
- data/lib/gilenson/gilenson.rb +665 -0
- data/lib/gilenson/helper.rb +34 -0
- data/lib/gilenson/maruku_extra.rb +19 -0
- data/lib/gilenson/rdiscount_extra.rb +7 -0
- data/lib/gilenson/redcloth_extra.rb +42 -0
- data/lib/integration/integration.rb +1 -0
- data/lib/integration/rails_date_helper_override.rb +127 -0
- data/lib/integration/rails_pre_filter.rb +4 -0
- data/lib/pluralizer/pluralizer.rb +261 -0
- data/lib/rutils.rb +54 -0
- data/lib/transliteration/bidi.rb +21 -0
- data/lib/transliteration/simple.rb +75 -0
- data/lib/transliteration/transliteration.rb +53 -0
- data/lib/version.rb +5 -0
- data/test/extras/integration_bluecloth.rb +13 -0
- data/test/extras/integration_maruku.rb +15 -0
- data/test/extras/integration_rails_filter.rb +29 -0
- data/test/extras/integration_rails_gilenson_helpers.rb +80 -0
- data/test/extras/integration_rails_helpers.rb +85 -0
- data/test/extras/integration_rdiscount.rb +15 -0
- data/test/extras/integration_redcloth3.rb +18 -0
- data/test/extras/integration_redcloth4.rb +19 -0
- data/test/run_tests.rb +4 -0
- data/test/test_datetime.rb +145 -0
- data/test/test_gilenson.rb +396 -0
- data/test/test_integration.rb +22 -0
- data/test/test_integration_flag.rb +18 -0
- data/test/test_pluralize.rb +84 -0
- data/test/test_rutils_base.rb +11 -0
- data/test/test_transliteration.rb +53 -0
- 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
|