ru_propisju 2.2.3 → 2.3.0

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 CHANGED
@@ -1,3 +1,7 @@
1
+ === 2.3.0
2
+
3
+ * Добавлена поддержка казахстанского тенге - nodkz
4
+
1
5
  === 2.2.3
2
6
 
3
7
  * Более строгое форматирование долей (https://github.com/julik/ru_propisju/pull/12)
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.2.3'
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 = "ru_propisju"
9
- s.version = "2.2.3"
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 = "2014-04-15"
15
- s.email = "me@julik.nl"
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 = "http://github.com/julik/ru_propisju"
26
+ s.homepage = %q{http://github.com/julik/ru_propisju}
29
27
  s.licenses = ["MIT"]
30
- s.rubygems_version = "2.2.2"
31
- s.summary = "C\u{443}\u{43c}\u{43c}\u{430} \u{43f}\u{440}\u{43e}\u{43f}\u{438}\u{441}\u{44c}\u{44e}"
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 = 4
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>, ["~> 2"])
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>, ["~> 2"])
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>, ["~> 2"])
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
@@ -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
- version: 2.2.3
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
- date: 2014-04-15 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: jeweler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2'
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
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2'
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
- version: '0'
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
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
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
- version: '0'
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
- version_requirements: !ruby/object:Gem::Requirement
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
- extra_rdoc_files:
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
- require_paths:
87
+
88
+ require_paths:
76
89
  - lib
77
- required_ruby_version: !ruby/object:Gem::Requirement
78
- requirements:
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
79
93
  - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- required_rubygems_version: !ruby/object:Gem::Requirement
83
- requirements:
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
- version: '0'
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: 2.2.2
111
+ rubygems_version: 1.6.2
90
112
  signing_key:
91
- specification_version: 4
92
- summary: Cумма прописью
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