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 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