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