ru_propisju 2.2.3 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/README.rdoc +2 -0
- data/lib/ru_propisju.rb +95 -2
- data/ru_propisju.gemspec +12 -13
- data/test/test_ru_propisju.rb +112 -3
- metadata +81 -56
- checksums.yaml +0 -7
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -15,6 +15,8 @@
|
|
15
15
|
RuPropisju.rublej(123.78) #=> "сто двадцать три рубля 78 копеек"
|
16
16
|
RuPropisju.propisju_shtuk(212.40, 2, ["сволочь", "сволочи", "сволочей"]) #=> "двести двенадцать целых четыре десятых сволочи"
|
17
17
|
|
18
|
+
'Продается в ' + RuPropisju.propisju_shtuk(147, 1, ["городе", "городах", "городах"], :ru_in) #=> "Продается в ста сорока семи городах"
|
19
|
+
|
18
20
|
== REQUIREMENTS:
|
19
21
|
|
20
22
|
* Прямые руки
|
data/lib/ru_propisju.rb
CHANGED
@@ -6,7 +6,7 @@ $KCODE = 'u' if RUBY_VERSION < '1.9.0'
|
|
6
6
|
# RuPropisju.rublej(123) # "сто двадцать три рубля"
|
7
7
|
module RuPropisju
|
8
8
|
|
9
|
-
VERSION = '2.
|
9
|
+
VERSION = '2.3.0'
|
10
10
|
|
11
11
|
# http://www.xe.com/symbols.php
|
12
12
|
# (лица, приближенные форексам и всяким там валютам и курсам)
|
@@ -17,6 +17,7 @@ module RuPropisju
|
|
17
17
|
"usd" => :dollarov,
|
18
18
|
"uah" => :griven,
|
19
19
|
"eur" => :evro,
|
20
|
+
"kzt" => :tenge,
|
20
21
|
}
|
21
22
|
|
22
23
|
SUPPORTED_CURRENCIES = CURRENCIES.keys.join ','
|
@@ -70,6 +71,8 @@ module RuPropisju
|
|
70
71
|
:rub_fraction => ['копейка', 'копейки', 'копеек'],
|
71
72
|
:uah_integral => ["гривна", "гривны", "гривен"],
|
72
73
|
:uah_fraction => ['копейка', 'копейки', 'копеек'],
|
74
|
+
:kzt_integral => ["тенге", "тенге", "тенге"],
|
75
|
+
:kzt_fraction => ['тиын', 'тиына', 'тиынов'],
|
73
76
|
:eur_integral => ["евро", "евро", "евро"],
|
74
77
|
# по опыту моей прошлой работы в банке
|
75
78
|
# центами называют дробную часть доллара
|
@@ -78,6 +81,64 @@ module RuPropisju
|
|
78
81
|
:usd_integral => ["доллар", "доллара", "долларов"],
|
79
82
|
:usd_fraction => ['цент', 'цента', 'центов'],
|
80
83
|
},
|
84
|
+
'ru_in' => { # Предложный падеж, например в 2 городах, поэтому ru_in - in == 'в' (если нужен будет творительный падеж - делайте ru_from aka из города from == 'из')
|
85
|
+
0 => "",
|
86
|
+
'0' => "нуле",
|
87
|
+
:thousands => ["тысяче", "тысячах", "тысячах"],
|
88
|
+
:millions => ["миллионе", "миллионах", "миллионах"],
|
89
|
+
:billions => ["миллиарде", "миллиардах", "миллиардах"],
|
90
|
+
100 => "ста",
|
91
|
+
200 => "двухстах",
|
92
|
+
300 => "трёхстах",
|
93
|
+
400 => "четырёхстах",
|
94
|
+
500 => "пятистах",
|
95
|
+
600 => "шестистах",
|
96
|
+
700 => "семистах",
|
97
|
+
800 => "восьмистах",
|
98
|
+
900 => "девятистах",
|
99
|
+
|
100
|
+
10 => "десяти",
|
101
|
+
11 => "одиннадцати",
|
102
|
+
12 => "двенадцати",
|
103
|
+
13 => "тринадцати",
|
104
|
+
14 => "четырнадцати",
|
105
|
+
15 => "пятнадцати",
|
106
|
+
16 => "шестнадцати",
|
107
|
+
17 => "семнадцати",
|
108
|
+
18 => "восемнадцати",
|
109
|
+
19 => "девятнадцати",
|
110
|
+
20 => "двадцати",
|
111
|
+
30 => "тридцати",
|
112
|
+
40 => "сорока",
|
113
|
+
50 => "пятьдесяти",
|
114
|
+
60 => "шестьдесяти",
|
115
|
+
70 => "семьдесяти",
|
116
|
+
80 => "восемьдесяти",
|
117
|
+
90 => "девяноста",
|
118
|
+
# единицы, местами - c учетом рода
|
119
|
+
1 => {1 => "одном", 2 => 'одной', 3 => 'одном'},
|
120
|
+
2 => {1 => "двух", 2 => 'двух', 3 => 'двух'},
|
121
|
+
3 => "трёх",
|
122
|
+
4 => "четырёх",
|
123
|
+
5 => "пяти",
|
124
|
+
6 => "шести",
|
125
|
+
7 => "семи",
|
126
|
+
8 => "восьми",
|
127
|
+
9 => "девяти",
|
128
|
+
:rub_integral => ["рубле", "рублях", "рублях"],
|
129
|
+
:rub_fraction => ['копейке', 'копейках', 'копейках'],
|
130
|
+
:uah_integral => ["гривне", "гривнах", "гривнах"],
|
131
|
+
:uah_fraction => ['копейке', 'копейках', 'копейках'],
|
132
|
+
:kzt_integral => ["тенге", "тенге", "тенге"],
|
133
|
+
:kzt_fraction => ['тиыне', 'тиынах', 'тиынах'],
|
134
|
+
:eur_integral => ["евро", "евро", "евро"],
|
135
|
+
# по опыту моей прошлой работы в банке
|
136
|
+
# центами называют дробную часть доллара
|
137
|
+
# а дробную часть евро называют евроцентом
|
138
|
+
:eur_fraction => ["центе", "центах", "центах"],
|
139
|
+
:usd_integral => ["долларе", "долларах", "долларах"],
|
140
|
+
:usd_fraction => ['центе', 'центах', 'центах'],
|
141
|
+
},
|
81
142
|
'ua' => {
|
82
143
|
0 => "",
|
83
144
|
'0' => "нуль",
|
@@ -126,6 +187,8 @@ module RuPropisju
|
|
126
187
|
:rub_fraction => ['копійка', 'копійки', 'копійок'],
|
127
188
|
:uah_integral => ["гривня", "гривні", "гривень"],
|
128
189
|
:uah_fraction => ["копійка", "копійки", "копійок"],
|
190
|
+
:kzt_integral => ["тенге", "тенге", "тенге"],
|
191
|
+
:kzt_fraction => ['тиын', 'тиына', 'тиынов'],
|
129
192
|
:eur_integral => ["євро", "євро", "євро"],
|
130
193
|
:eur_fraction => ["євроцент", "євроцента", "євроцентів"],
|
131
194
|
:usd_integral => ["долар", "долара", "доларів"],
|
@@ -138,10 +201,11 @@ module RuPropisju
|
|
138
201
|
:usd => 1,
|
139
202
|
:uah => 2,
|
140
203
|
:eur => 1,
|
204
|
+
:kzt => 1,
|
141
205
|
}
|
142
206
|
|
143
207
|
|
144
|
-
|
208
|
+
# Кидается при запросе неизвестной валюты
|
145
209
|
class UnknownCurrency < ArgumentError
|
146
210
|
end
|
147
211
|
|
@@ -258,6 +322,17 @@ module RuPropisju
|
|
258
322
|
money(amount, locale, integrals_key, fractions_key, money_gender)
|
259
323
|
end
|
260
324
|
|
325
|
+
# Выводит целое или дробное число как сумму в тенге прописью
|
326
|
+
#
|
327
|
+
# tenge(32) #=> "тридцать два тенге"
|
328
|
+
def tenge(amount, locale = :ru)
|
329
|
+
integrals_key = :kzt_integral
|
330
|
+
fractions_key = :kzt_fraction
|
331
|
+
money_gender = MONEY_GENDERS[:kzt]
|
332
|
+
|
333
|
+
money(amount, locale, integrals_key, fractions_key, money_gender)
|
334
|
+
end
|
335
|
+
|
261
336
|
# Выводит сумму прописью в рублях по количеству копеек
|
262
337
|
#
|
263
338
|
# kopeek(343) #=> "три рубля 43 копейки"
|
@@ -396,6 +471,24 @@ module RuPropisju
|
|
396
471
|
],
|
397
472
|
:prefix => ["ая", 'ых'],
|
398
473
|
},
|
474
|
+
'ru_in' =>{
|
475
|
+
:source_words => [
|
476
|
+
'целой',
|
477
|
+
'десятой',
|
478
|
+
'сотой',
|
479
|
+
'тысячной',
|
480
|
+
'десятитысячной',
|
481
|
+
'стотысячной',
|
482
|
+
'миллионной',
|
483
|
+
'десятимиллионной',
|
484
|
+
'стомиллионной',
|
485
|
+
'миллиардной',
|
486
|
+
'десятимиллиардной',
|
487
|
+
'стомиллиардной',
|
488
|
+
'триллионной'
|
489
|
+
],
|
490
|
+
:prefix => ["ой", 'ых'],
|
491
|
+
},
|
399
492
|
'ua' => {
|
400
493
|
:source_words => [
|
401
494
|
'ціла',
|
data/ru_propisju.gemspec
CHANGED
@@ -2,17 +2,15 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: ru_propisju 2.2.3 ruby lib
|
6
5
|
|
7
6
|
Gem::Specification.new do |s|
|
8
|
-
s.name =
|
9
|
-
s.version = "2.
|
7
|
+
s.name = %q{ru_propisju}
|
8
|
+
s.version = "2.3.0"
|
10
9
|
|
11
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
-
s.require_paths = ["lib"]
|
13
11
|
s.authors = ["Julik Tarkhanov"]
|
14
|
-
s.date =
|
15
|
-
s.email =
|
12
|
+
s.date = %q{2014-10-22}
|
13
|
+
s.email = %q{me@julik.nl}
|
16
14
|
s.extra_rdoc_files = [
|
17
15
|
"README.rdoc"
|
18
16
|
]
|
@@ -25,25 +23,26 @@ Gem::Specification.new do |s|
|
|
25
23
|
"ru_propisju.gemspec",
|
26
24
|
"test/test_ru_propisju.rb"
|
27
25
|
]
|
28
|
-
s.homepage =
|
26
|
+
s.homepage = %q{http://github.com/julik/ru_propisju}
|
29
27
|
s.licenses = ["MIT"]
|
30
|
-
s.
|
31
|
-
s.
|
28
|
+
s.require_paths = ["lib"]
|
29
|
+
s.rubygems_version = %q{1.6.2}
|
30
|
+
s.summary = %q{Cумма прописью}
|
32
31
|
|
33
32
|
if s.respond_to? :specification_version then
|
34
|
-
s.specification_version =
|
33
|
+
s.specification_version = 3
|
35
34
|
|
36
35
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
37
|
-
s.add_development_dependency(%q<jeweler>, ["
|
36
|
+
s.add_development_dependency(%q<jeweler>, ["= 1.8.4"])
|
38
37
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
39
38
|
s.add_development_dependency(%q<test-unit>, [">= 0"])
|
40
39
|
else
|
41
|
-
s.add_dependency(%q<jeweler>, ["
|
40
|
+
s.add_dependency(%q<jeweler>, ["= 1.8.4"])
|
42
41
|
s.add_dependency(%q<rake>, [">= 0"])
|
43
42
|
s.add_dependency(%q<test-unit>, [">= 0"])
|
44
43
|
end
|
45
44
|
else
|
46
|
-
s.add_dependency(%q<jeweler>, ["
|
45
|
+
s.add_dependency(%q<jeweler>, ["= 1.8.4"])
|
47
46
|
s.add_dependency(%q<rake>, [">= 0"])
|
48
47
|
s.add_dependency(%q<test-unit>, [">= 0"])
|
49
48
|
end
|
data/test/test_ru_propisju.rb
CHANGED
@@ -17,9 +17,21 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
17
17
|
assert_equal "сто двадцать три рубля", RuPropisju.amount_in_words(123, "RUR")
|
18
18
|
assert_equal "сто двадцать три рубля", RuPropisju.amount_in_words(123, "rur")
|
19
19
|
assert_equal "сто двадцать три гривны", RuPropisju.amount_in_words(123, "uah")
|
20
|
+
assert_equal "сто двадцать три тенге", RuPropisju.amount_in_words(123, "kzt")
|
20
21
|
assert_equal "сто двадцать три евро", RuPropisju.amount_in_words(123, "eur")
|
21
22
|
assert_equal "сто двадцать три евро четырнадцать центов", RuPropisju.amount_in_words(123.14, "eur")
|
22
23
|
assert_equal "сто двадцать три доллара четырнадцать центов", RuPropisju.amount_in_words(123.14, "usd")
|
24
|
+
|
25
|
+
# russian locale (предложный падеж)
|
26
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, :rur, :ru_in)
|
27
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, :rub, :ru_in)
|
28
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, "RUR", "ru_in")
|
29
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.amount_in_words(123, "rur", "ru_in")
|
30
|
+
assert_equal "ста двадцати трёх гривнах", RuPropisju.amount_in_words(123, "uah", "ru_in")
|
31
|
+
assert_equal "ста двадцати трёх тенге", RuPropisju.amount_in_words(123, "kzt", "ru_in")
|
32
|
+
assert_equal "ста двадцати трёх евро", RuPropisju.amount_in_words(123, "eur", "ru_in")
|
33
|
+
assert_equal "ста двадцати трёх евро четырнадцати центах", RuPropisju.amount_in_words(123.14, "eur", :ru_in)
|
34
|
+
assert_equal "ста двадцати трёх долларах четырнадцати центах", RuPropisju.amount_in_words(123.14, "usd", :ru_in)
|
23
35
|
|
24
36
|
# ua locale
|
25
37
|
assert_equal "сто двадцять три рубля", RuPropisju.amount_in_words(123, :rur, :ua)
|
@@ -27,6 +39,7 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
27
39
|
assert_equal "сто двадцять три рубля", RuPropisju.amount_in_words(123, "RUR", "ua")
|
28
40
|
assert_equal "сто двадцять три рубля", RuPropisju.amount_in_words(123, "rur", "ua")
|
29
41
|
assert_equal "сто двадцять три гривні", RuPropisju.amount_in_words(123, "uah", "ua")
|
42
|
+
assert_equal "сто двадцять три тенге", RuPropisju.amount_in_words(123, "kzt", "ua")
|
30
43
|
assert_equal "сто двадцять три євро", RuPropisju.amount_in_words(123, "eur", "ua")
|
31
44
|
assert_equal "сто двадцять три євро чотирнадцять євроцентів", RuPropisju.amount_in_words(123.14, "eur", :ua)
|
32
45
|
assert_equal "сто двадцять три долара чотирнадцять центів", RuPropisju.amount_in_words(123.14, "usd", :ua)
|
@@ -35,6 +48,7 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
35
48
|
def test_issue_3
|
36
49
|
assert_equal "два миллиона евро", RuPropisju.evro(2000000)
|
37
50
|
assert_equal "два миллиона рублей", RuPropisju.rublej(2000000)
|
51
|
+
assert_equal "два миллиона тенге", RuPropisju.tenge(2000000)
|
38
52
|
assert_equal "два миллиона рублей", RuPropisju.amount_in_words(2000000, :rub)
|
39
53
|
end
|
40
54
|
|
@@ -47,6 +61,11 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
47
61
|
assert_equal "сто двадцать один евро четыре цента", RuPropisju.evro(121.04)
|
48
62
|
assert_equal "сто двадцять один євро чотири євроцента", RuPropisju.evro(121.04, :ua)
|
49
63
|
end
|
64
|
+
|
65
|
+
def test_propisju_tenge
|
66
|
+
assert_equal "сто двадцать один тенге четыре тиына", RuPropisju.tenge(121.04)
|
67
|
+
assert_equal "сто двадцять один тенге чотири тиына", RuPropisju.tenge(121.04, :ua)
|
68
|
+
end
|
50
69
|
|
51
70
|
def test_thousands_and_millions
|
52
71
|
assert_equal "два миллиона сто тысяч рублей", RuPropisju.amount_in_words(2100000, :rur)
|
@@ -66,6 +85,20 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
66
85
|
assert_equal "ноль", RuPropisju.propisju(0, 1)
|
67
86
|
|
68
87
|
|
88
|
+
# предложный падеж для русской локали
|
89
|
+
assert_equal "пятистах двадцати трёх", RuPropisju.propisju(523, 1, :ru_in)
|
90
|
+
assert_equal "шести тысячах семистах двадцати семи", RuPropisju.propisju(6727, 1, :ru_in)
|
91
|
+
assert_equal "одном миллионе одном", RuPropisju.propisju(1_000_001, 1, :ru_in)
|
92
|
+
assert_equal "одном миллионе", RuPropisju.propisju(1_000_000, 1, :ru_in)
|
93
|
+
assert_equal "восьми миллионах шестистах пятьдесяти двух", RuPropisju.propisju(8000652, 1, :ru_in)
|
94
|
+
assert_equal "восьми миллионах шестистах пятьдесяти двух", RuPropisju.propisju(8000652, 2, :ru_in)
|
95
|
+
assert_equal "восьми миллионах шестистах пятьдесяти двух", RuPropisju.propisju(8000652, 3, :ru_in)
|
96
|
+
assert_equal "сорока пяти", RuPropisju.propisju(45, 1, :ru_in)
|
97
|
+
assert_equal "пяти", RuPropisju.propisju(5, 1, :ru_in)
|
98
|
+
assert_equal "шестистах двенадцати", RuPropisju.propisju(612, 1, :ru_in)
|
99
|
+
assert_equal "нуле", RuPropisju.propisju(0, 1, :ru_in)
|
100
|
+
|
101
|
+
|
69
102
|
# ukrainian locale
|
70
103
|
assert_equal "п'ятьсот двадцять три", RuPropisju.propisju(523, 1, :ua)
|
71
104
|
assert_equal "шість тисяч сімсот двадцять сім", RuPropisju.propisju(6727, 1, :ua)
|
@@ -84,11 +117,18 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
84
117
|
assert_equal "двадцать одна подстава", RuPropisju.propisju_shtuk(21, 2, ["подстава", "подставы", "подстав"])
|
85
118
|
assert_equal "двести двенадцать сволочей", RuPropisju.propisju_shtuk(212.00, 2, ["сволочь", "сволочи", "сволочей"])
|
86
119
|
assert_equal "двести двенадцать целых четыре десятых куска", RuPropisju.propisju_shtuk(212.40, 2, ["кусок", "куска", "кусков"])
|
87
|
-
|
120
|
+
|
88
121
|
# GH issue 10
|
89
122
|
# https://github.com/julik/ru_propisju/issues/10
|
90
123
|
assert_equal "одна тысяча сто две целых сорок одна сотая кубометра", RuPropisju.propisju_shtuk( 1102.41, 2, ["кубометр", "кубометра", "кубометров"])
|
91
|
-
|
124
|
+
|
125
|
+
# предложный падеж русской локали
|
126
|
+
assert_equal "шести целых", RuPropisju.propisju_shtuk(6, 2, ["целой", "целых", "целых"], :ru_in)
|
127
|
+
assert_equal "двадцати пяти колесах", RuPropisju.propisju_shtuk(25, 3, ["колесо", "колесах", "колесах"], :ru_in)
|
128
|
+
assert_equal "двадцати одной подставе", RuPropisju.propisju_shtuk(21, 2, ["подставе", "подставах", "подставах"], :ru_in)
|
129
|
+
assert_equal "двухстах двенадцати сволочах", RuPropisju.propisju_shtuk(212.00, 2, ["сволочи", "сволочах", "сволочах"], :ru_in)
|
130
|
+
assert_equal "двухстах двенадцати целых четырёх десятых кусках", RuPropisju.propisju_shtuk(212.40, 2, ["куске", "кусках", "кусках"], :ru_in)
|
131
|
+
|
92
132
|
# ua locale
|
93
133
|
assert_equal "шість цілих", RuPropisju.propisju_shtuk(6, 2, ["ціла", "цілих", "цілих"], :ua)
|
94
134
|
assert_equal "двадцять п'ять колес", RuPropisju.propisju_shtuk(25, 3, ["колесо", "колеса", "колес"], :ua)
|
@@ -107,7 +147,18 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
107
147
|
assert_equal "триста сорок одна целая двести сорок пять тысячных", RuPropisju.propisju(341.245, 1)
|
108
148
|
assert_equal "двести три целых сорок одна сотая", RuPropisju.propisju(203.41, 1)
|
109
149
|
assert_equal "четыреста сорок две целых пять десятых", RuPropisju.propisju(442.50000, 1)
|
110
|
-
|
150
|
+
|
151
|
+
# предложный падеж русской локали
|
152
|
+
assert_equal "шести целых пяти десятых", RuPropisju.propisju(6.50, 1, :ru_in)
|
153
|
+
assert_equal "шести", RuPropisju.propisju(6.0, 1, :ru_in)
|
154
|
+
assert_equal "тридцати миллиардах целых ста одиннадцати тысячных", RuPropisju.propisju(3 * 10**10 + 0.111, 1, :ru_in)
|
155
|
+
assert_equal "тридцати", RuPropisju.propisju(30.0, 1, :ru_in)
|
156
|
+
assert_equal "тридцати целых одной десятой", RuPropisju.propisju(30.1, 1, :ru_in)
|
157
|
+
assert_equal "трёхстах сорока одной целой девяти десятых", RuPropisju.propisju(341.9, 1, :ru_in)
|
158
|
+
assert_equal "трёхстах сорока одной целой двухстах сорока пяти тысячных", RuPropisju.propisju(341.245, 1, :ru_in)
|
159
|
+
assert_equal "двухстах трёх целых сорока одной сотой", RuPropisju.propisju(203.41, 1, :ru_in)
|
160
|
+
assert_equal "четырёхстах сорока двух целых пяти десятых", RuPropisju.propisju(442.50000, 1, :ru_in)
|
161
|
+
|
111
162
|
# ua locale
|
112
163
|
assert_equal "шість цілих п'ять десятих", RuPropisju.propisju(6.50, 1, :ua)
|
113
164
|
assert_equal "триста сорок одна ціла дев'ять десятих", RuPropisju.propisju(341.9, 1, :ua)
|
@@ -147,6 +198,15 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
147
198
|
assert_equal "один рубль", RuPropisju.rubl(1)
|
148
199
|
assert_equal "три рубля 14 копеек", RuPropisju.rublja(3.14)
|
149
200
|
|
201
|
+
# ru locale предложный падеж
|
202
|
+
assert_equal "нуле рублях 0 копейках", RuPropisju.rublej(0, :ru_in)
|
203
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.rublej(123, :ru_in)
|
204
|
+
assert_equal "трёхстах сорока трёх рублях 20 копейках", RuPropisju.rublej(343.20, :ru_in)
|
205
|
+
assert_equal "42 копейках", RuPropisju.rublej(0.4187, :ru_in)
|
206
|
+
assert_equal "трёхстах тридцати двух рублях", RuPropisju.rublej(331.995, :ru_in)
|
207
|
+
assert_equal "одном рубле", RuPropisju.rubl(1, :ru_in)
|
208
|
+
assert_equal "трёх рублях 14 копейках", RuPropisju.rublja(3.14, :ru_in)
|
209
|
+
|
150
210
|
# ua locale
|
151
211
|
assert_equal "сто двадцять три рубля", RuPropisju.rublej(123, :ua)
|
152
212
|
assert_equal "триста сорок три рубля 20 копійок", RuPropisju.rublej(343.20, :ua)
|
@@ -166,6 +226,16 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
166
226
|
assert_equal "три гривны четырнадцать копеек", RuPropisju.grivny(3.14)
|
167
227
|
assert_equal "ноль гривен ноль копеек", RuPropisju.griven(0)
|
168
228
|
|
229
|
+
# ru locale предложный падеж
|
230
|
+
assert_equal "ста двадцати трёх гривнах", RuPropisju.griven(123, :ru_in)
|
231
|
+
assert_equal "ста двадцати четырёх гривнах", RuPropisju.griven(124, :ru_in)
|
232
|
+
assert_equal "трёхстах сорока трёх гривнах двадцати копейках", RuPropisju.griven(343.20, :ru_in)
|
233
|
+
assert_equal "сорока двух копейках", RuPropisju.griven(0.4187, :ru_in)
|
234
|
+
assert_equal "трёхстах тридцати двух гривнах", RuPropisju.griven(331.995, :ru_in)
|
235
|
+
assert_equal "одной гривне", RuPropisju.grivna(1, :ru_in)
|
236
|
+
assert_equal "трёх гривнах четырнадцати копейках", RuPropisju.grivny(3.14, :ru_in)
|
237
|
+
assert_equal "нуле гривнах нуле копейках", RuPropisju.griven(0, :ru_in)
|
238
|
+
|
169
239
|
# ua locale
|
170
240
|
assert_equal "сто двадцять три гривні", RuPropisju.griven(123, :ua)
|
171
241
|
assert_equal "сто двадцять чотири гривні", RuPropisju.griven(124, :ua)
|
@@ -175,7 +245,37 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
175
245
|
assert_equal "одна гривня", RuPropisju.grivna(1, :ua)
|
176
246
|
assert_equal "три гривні чотирнадцять копійок", RuPropisju.grivny(3.14, :ua)
|
177
247
|
assert_equal "нуль гривень нуль копійок", RuPropisju.griven(0, :ua)
|
248
|
+
end
|
178
249
|
|
250
|
+
def test_tenge
|
251
|
+
assert_equal "сто двадцать три тенге", RuPropisju.tenge(123)
|
252
|
+
assert_equal "сто двадцать четыре тенге", RuPropisju.tenge(124)
|
253
|
+
assert_equal "триста сорок три тенге двадцать тиынов", RuPropisju.tenge(343.20)
|
254
|
+
assert_equal "сорок два тиына", RuPropisju.tenge(0.4187)
|
255
|
+
assert_equal "триста тридцать два тенге", RuPropisju.tenge(331.995)
|
256
|
+
assert_equal "триста тридцать один тенге девяносто девять тиынов", RuPropisju.tenge(331.985)
|
257
|
+
assert_equal "один тенге", RuPropisju.tenge(1)
|
258
|
+
assert_equal "три тенге четырнадцать тиынов", RuPropisju.tenge(3.14)
|
259
|
+
assert_equal "ноль тенге ноль тиынов", RuPropisju.tenge(0)
|
260
|
+
|
261
|
+
# ru locale предложный падеж
|
262
|
+
assert_equal "ста двадцати трёх тенге", RuPropisju.tenge(123, :ru_in)
|
263
|
+
assert_equal "ста двадцати четырёх тенге", RuPropisju.tenge(124, :ru_in)
|
264
|
+
assert_equal "трёхстах сорока трёх тенге двадцати тиынах", RuPropisju.tenge(343.20, :ru_in)
|
265
|
+
assert_equal "сорока двух тиынах", RuPropisju.tenge(0.4187, :ru_in)
|
266
|
+
assert_equal "трёхстах тридцати двух тенге", RuPropisju.tenge(331.995, :ru_in)
|
267
|
+
assert_equal "трёхстах тридцати одном тенге девяноста девяти тиынах", RuPropisju.tenge(331.985, :ru_in)
|
268
|
+
assert_equal "одном тенге", RuPropisju.tenge(1, :ru_in)
|
269
|
+
assert_equal "трёх тенге четырнадцати тиынах", RuPropisju.tenge(3.14, :ru_in)
|
270
|
+
assert_equal "нуле тенге нуле тиынах", RuPropisju.tenge(0, :ru_in)
|
271
|
+
|
272
|
+
# ua locale
|
273
|
+
assert_equal "сто двадцять три тенге", RuPropisju.tenge(123, :ua)
|
274
|
+
assert_equal "триста сорок три тенге двадцять тиынов", RuPropisju.tenge(343.20, :ua)
|
275
|
+
assert_equal "сорок два тиына", RuPropisju.tenge(0.4187, :ua)
|
276
|
+
assert_equal "триста тридцять два тенге", RuPropisju.tenge(331.995, :ua)
|
277
|
+
assert_equal "один тенге", RuPropisju.tenge(1, :ua)
|
278
|
+
assert_equal "три тенге чотирнадцять тиынов", RuPropisju.tenge(3.14, :ua)
|
179
279
|
end
|
180
280
|
|
181
281
|
def test_kopeek
|
@@ -185,6 +285,15 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
185
285
|
assert_equal "32 копейки", RuPropisju.kopeek(32)
|
186
286
|
assert_equal "21 копейка", RuPropisju.kopeika(21)
|
187
287
|
assert_equal "3 копейки", RuPropisju.kopeiki(3)
|
288
|
+
|
289
|
+
# ru locale предложный падеж
|
290
|
+
assert_equal "нуле рублях 0 копейках", RuPropisju.kopeek(0, :ru_in)
|
291
|
+
assert_equal "ста двадцати трёх рублях", RuPropisju.kopeek(12300, :ru_in)
|
292
|
+
assert_equal "трёх рублях 14 копейках", RuPropisju.kopeek(314, :ru_in)
|
293
|
+
assert_equal "32 копейках", RuPropisju.kopeek(32, :ru_in)
|
294
|
+
assert_equal "21 копейке", RuPropisju.kopeika(21, :ru_in)
|
295
|
+
assert_equal "3 копейках", RuPropisju.kopeiki(3, :ru_in)
|
296
|
+
|
188
297
|
# ua locale
|
189
298
|
assert_equal "сто двадцять три рубля", RuPropisju.kopeek(12300, :ua)
|
190
299
|
assert_equal "три рубля 14 копійок", RuPropisju.kopeek(314, :ua)
|
metadata
CHANGED
@@ -1,64 +1,76 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ru_propisju
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 2.3.0
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- Julik Tarkhanov
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
|
18
|
+
date: 2014-10-22 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - "="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 63
|
28
|
+
segments:
|
29
|
+
- 1
|
30
|
+
- 8
|
31
|
+
- 4
|
32
|
+
version: 1.8.4
|
20
33
|
type: :development
|
34
|
+
version_requirements: *id001
|
21
35
|
prerelease: false
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
36
|
+
name: jeweler
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
31
41
|
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
34
47
|
type: :development
|
48
|
+
version_requirements: *id002
|
35
49
|
prerelease: false
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: test-unit
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
50
|
+
name: rake
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
45
55
|
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
48
61
|
type: :development
|
62
|
+
version_requirements: *id003
|
49
63
|
prerelease: false
|
50
|
-
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
64
|
+
name: test-unit
|
55
65
|
description:
|
56
66
|
email: me@julik.nl
|
57
67
|
executables: []
|
68
|
+
|
58
69
|
extensions: []
|
59
|
-
|
70
|
+
|
71
|
+
extra_rdoc_files:
|
60
72
|
- README.rdoc
|
61
|
-
files:
|
73
|
+
files:
|
62
74
|
- Gemfile
|
63
75
|
- History.txt
|
64
76
|
- README.rdoc
|
@@ -66,28 +78,41 @@ files:
|
|
66
78
|
- lib/ru_propisju.rb
|
67
79
|
- ru_propisju.gemspec
|
68
80
|
- test/test_ru_propisju.rb
|
81
|
+
has_rdoc: true
|
69
82
|
homepage: http://github.com/julik/ru_propisju
|
70
|
-
licenses:
|
83
|
+
licenses:
|
71
84
|
- MIT
|
72
|
-
metadata: {}
|
73
85
|
post_install_message:
|
74
86
|
rdoc_options: []
|
75
|
-
|
87
|
+
|
88
|
+
require_paths:
|
76
89
|
- lib
|
77
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
-
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
79
93
|
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
|
82
|
-
|
83
|
-
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
hash: 3
|
96
|
+
segments:
|
97
|
+
- 0
|
98
|
+
version: "0"
|
99
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
101
|
+
requirements:
|
84
102
|
- - ">="
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
hash: 3
|
105
|
+
segments:
|
106
|
+
- 0
|
107
|
+
version: "0"
|
87
108
|
requirements: []
|
109
|
+
|
88
110
|
rubyforge_project:
|
89
|
-
rubygems_version:
|
111
|
+
rubygems_version: 1.6.2
|
90
112
|
signing_key:
|
91
|
-
specification_version:
|
92
|
-
summary:
|
113
|
+
specification_version: 3
|
114
|
+
summary: !binary |
|
115
|
+
Q9GD0LzQvNCwINC/0YDQvtC/0LjRgdGM0Y4=
|
116
|
+
|
93
117
|
test_files: []
|
118
|
+
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 3dc29699dc852feead63990d7aac25f924e0c770
|
4
|
-
data.tar.gz: 7b48a7806d522d0464f901cce53c7b6bfcc6a483
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 7174d7a50f43ceacfa80481fb27472e0aac36653d5bf5f205693861df17a11d2be01a108c662eafd8f04146eae0c3d1d1eee6c776666e93ba1afd266f7755ca2
|
7
|
-
data.tar.gz: af5f85e2de1222014234ca9df3a0c0058eed691ab13b52bcb812619999539a702a7e5550f9509662c7756bab7e9fe5d8bb63842ac64c47331732c377c8bdf2c2
|