ru_propisju 2.4.0 → 2.5.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 +4 -0
- data/README.rdoc +1 -0
- data/lib/ru_propisju.rb +176 -49
- data/ru_propisju.gemspec +7 -7
- data/test/test_ru_propisju.rb +134 -3
- metadata +62 -76
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
|
15
15
|
RuPropisju.rublej(123.78) #=> "сто двадцать три рубля 78 копеек"
|
16
16
|
RuPropisju.propisju_shtuk(212.40, 2, ["сволочь", "сволочи", "сволочей"]) #=> "двести двенадцать целых четыре десятых сволочи"
|
17
|
+
RuPropisju.rublej_extended_format(1000, :ru, fraction_formatter: '%02d', integrals_formatter: '+ %d', integrals_delimiter: ' ', always_show_fraction: true) #=> "+ 1 000 рублей 00 копеек (одна тысяча рублей 00 копеек)"
|
17
18
|
|
18
19
|
'Продается в ' + RuPropisju.propisju_shtuk(147, 1, ["городе", "городах", "городах"], :ru_in) #=> "Продается в ста сорока семи городах"
|
19
20
|
|
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.5.0'
|
10
10
|
|
11
11
|
# http://www.xe.com/symbols.php
|
12
12
|
# (лица, приближенные форексам и всяким там валютам и курсам)
|
@@ -81,7 +81,7 @@ module RuPropisju
|
|
81
81
|
:usd_integral => ["доллар", "доллара", "долларов"],
|
82
82
|
:usd_fraction => ['цент', 'цента', 'центов'],
|
83
83
|
},
|
84
|
-
'ru_in' => { # Предложный падеж, например в 2
|
84
|
+
'ru_in' => { # Предложный падеж, например в 2 городах
|
85
85
|
0 => "",
|
86
86
|
'0' => "нуле",
|
87
87
|
:thousands => ["тысяче", "тысячах", "тысячах"],
|
@@ -110,14 +110,14 @@ module RuPropisju
|
|
110
110
|
20 => "двадцати",
|
111
111
|
30 => "тридцати",
|
112
112
|
40 => "сорока",
|
113
|
-
50 => "
|
114
|
-
60 => "
|
115
|
-
70 => "
|
116
|
-
80 => "
|
113
|
+
50 => "пятидесяти",
|
114
|
+
60 => "шестидесяти",
|
115
|
+
70 => "семидесяти",
|
116
|
+
80 => "восьмидесяти",
|
117
117
|
90 => "девяноста",
|
118
118
|
# единицы, местами - c учетом рода
|
119
|
-
1 => {1 =>
|
120
|
-
2 => {1 =>
|
119
|
+
1 => { 1 => 'одном', 2 => 'одной', 3 => 'одном' },
|
120
|
+
2 => { 1 => 'двух', 2 => 'двух', 3 => 'двух' },
|
121
121
|
3 => "трёх",
|
122
122
|
4 => "четырёх",
|
123
123
|
5 => "пяти",
|
@@ -125,19 +125,75 @@ module RuPropisju
|
|
125
125
|
7 => "семи",
|
126
126
|
8 => "восьми",
|
127
127
|
9 => "девяти",
|
128
|
-
:rub_integral => [
|
129
|
-
:rub_fraction => [
|
130
|
-
:uah_integral => [
|
131
|
-
:uah_fraction => [
|
132
|
-
:kzt_integral => [
|
133
|
-
:kzt_fraction => [
|
134
|
-
:eur_integral => [
|
128
|
+
:rub_integral => %w[рубле рублях рублях],
|
129
|
+
:rub_fraction => %w[копейке копейках копейках],
|
130
|
+
:uah_integral => %w[гривне гривнах гривнах],
|
131
|
+
:uah_fraction => %w[копейке копейках копейках],
|
132
|
+
:kzt_integral => %w[тенге тенге тенге],
|
133
|
+
:kzt_fraction => %w[тиыне тиынах тиынах],
|
134
|
+
:eur_integral => %w[евро евро евро],
|
135
135
|
# по опыту моей прошлой работы в банке
|
136
136
|
# центами называют дробную часть доллара
|
137
137
|
# а дробную часть евро называют евроцентом
|
138
|
-
:eur_fraction => [
|
139
|
-
:usd_integral => [
|
140
|
-
:usd_fraction => [
|
138
|
+
:eur_fraction => %w[центе центах центах],
|
139
|
+
:usd_integral => %w[долларе долларах долларах],
|
140
|
+
:usd_fraction => %w[центе центах центах],
|
141
|
+
},
|
142
|
+
'ru_gen' => { # Родительный падеж, например в течение одного рабочего дня, пяти ночей (нуля рабочих дней)
|
143
|
+
0 => '',
|
144
|
+
'0' => 'нуля',
|
145
|
+
:thousands => %w[тысячи тысяч тысяч],
|
146
|
+
:millions => %w[миллиона миллионов миллионов],
|
147
|
+
:billions => %w[миллиарда миллиардов миллиардов],
|
148
|
+
100 => 'ста',
|
149
|
+
200 => 'двухсот',
|
150
|
+
300 => 'трёхсот',
|
151
|
+
400 => 'четырёхсот',
|
152
|
+
500 => 'пятисот',
|
153
|
+
600 => 'шестисот',
|
154
|
+
700 => 'семисот',
|
155
|
+
800 => 'восьмисот',
|
156
|
+
900 => 'девятисот',
|
157
|
+
|
158
|
+
10 => 'десяти',
|
159
|
+
11 => 'одиннадцати',
|
160
|
+
12 => 'двенадцати',
|
161
|
+
13 => 'тринадцати',
|
162
|
+
14 => 'четырнадцати',
|
163
|
+
15 => 'пятнадцати',
|
164
|
+
16 => 'шестнадцати',
|
165
|
+
17 => 'семнадцати',
|
166
|
+
18 => 'восемнадцати',
|
167
|
+
19 => 'девятнадцати',
|
168
|
+
20 => 'двадцати',
|
169
|
+
30 => 'тридцати',
|
170
|
+
40 => 'сорока',
|
171
|
+
50 => 'пятидесяти',
|
172
|
+
60 => 'шестидесяти',
|
173
|
+
70 => 'семидесяти',
|
174
|
+
80 => 'восьмидесяти',
|
175
|
+
90 => 'девяноста',
|
176
|
+
# единицы, местами - c учетом рода
|
177
|
+
1 => { 1 => 'одного', 2 => 'одной', 3 => 'одного' },
|
178
|
+
2 => { 1 => 'двух', 2 => 'двух', 3 => 'двух' },
|
179
|
+
3 => 'трёх',
|
180
|
+
4 => 'четырёх',
|
181
|
+
5 => 'пяти',
|
182
|
+
6 => 'шести',
|
183
|
+
7 => 'семи',
|
184
|
+
8 => 'восьми',
|
185
|
+
9 => 'девяти',
|
186
|
+
:rub_integral => %w[рубля рублей рублей],
|
187
|
+
:rub_fraction => %w[копейки копеек копеек],
|
188
|
+
:uah_integral => %w[гривны гривен гривен],
|
189
|
+
:uah_fraction => %w[копейки копеек копеек],
|
190
|
+
:kzt_integral => %w[тенге тенге тенге],
|
191
|
+
:kzt_fraction => %w[тиына тиынов тиынов],
|
192
|
+
:eur_integral => %w[евро евро евро],
|
193
|
+
# TODO: решить как же всё-таки звать дробную часть евро: "цент" или "евроцент"
|
194
|
+
:eur_fraction => %w[цента центов центов],
|
195
|
+
:usd_integral => %w[доллара долларов долларов],
|
196
|
+
:usd_fraction => %w[цента центов центов],
|
141
197
|
},
|
142
198
|
'ru_from' => {
|
143
199
|
0 => "",
|
@@ -253,6 +309,9 @@ module RuPropisju
|
|
253
309
|
:usd_fraction => ['цент', 'цента', 'центів'],
|
254
310
|
}
|
255
311
|
}
|
312
|
+
# Переименовал предложный падеж из _in в _pre (prepositional)
|
313
|
+
# Оставил 'ru_in' для обратной совместимости
|
314
|
+
TRANSLATIONS['ru_pre'] = TRANSLATIONS['ru_in']
|
256
315
|
|
257
316
|
MONEY_GENDERS = {
|
258
317
|
:rub => 1,
|
@@ -295,45 +354,61 @@ module RuPropisju
|
|
295
354
|
# Поддерживаемые валюты: rur, usd, uah, eur
|
296
355
|
#
|
297
356
|
# amount_in_words(345.2, 'rur') #=> "триста сорок пять рублей 20 копеек"
|
298
|
-
|
357
|
+
#
|
358
|
+
# ==== Опции
|
359
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
360
|
+
# * +:fraction_formatter+ - строка. формат отображения числа после точки, например '%d'
|
361
|
+
def amount_in_words(amount, currency, locale = :ru, options = {})
|
299
362
|
currency = currency.to_s.downcase
|
300
363
|
unless CURRENCIES.has_key? currency
|
301
364
|
raise UnknownCurrency, "Unsupported currency #{currency}, the following are supported: #{SUPPORTED_CURRENCIES}"
|
302
365
|
end
|
303
|
-
method(CURRENCIES[currency]).call(amount, locale)
|
366
|
+
method(CURRENCIES[currency]).call(amount, locale, options)
|
304
367
|
end
|
305
368
|
|
306
369
|
# Выводит целое или дробное число как сумму в рублях прописью
|
307
370
|
#
|
308
371
|
# rublej(345.2) #=> "триста сорок пять рублей 20 копеек"
|
309
372
|
#
|
310
|
-
|
373
|
+
# ==== Опции
|
374
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
375
|
+
# * +:fraction_formatter+ - строка. формат отображения числа после точки, например '%d'
|
376
|
+
def rublej(amount, locale = :ru, options = {})
|
311
377
|
integrals_key = :rub_integral
|
312
378
|
fractions_key = :rub_fraction
|
313
379
|
money_gender = MONEY_GENDERS[:rub]
|
314
380
|
|
315
|
-
money(amount, locale, integrals_key, fractions_key, money_gender, true)
|
381
|
+
money(amount, locale, integrals_key, fractions_key, money_gender, true, false, options)
|
316
382
|
end
|
317
383
|
|
318
384
|
# Выводит целое или дробное число как сумму в расширенном формате
|
319
385
|
#
|
320
386
|
# rublej_extended_format(345.2) #=> "345 рублей 20 копеек (триста сорок пять рублей 20 копеек)"
|
321
387
|
#
|
322
|
-
|
323
|
-
|
388
|
+
# ==== Опции
|
389
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
390
|
+
# * +:fraction_formatter+ - строка. формат отображения числа после точки, например '%d'
|
391
|
+
# * +:integrals_formatter+ - строка. формат отображения целого числа, например '%d'
|
392
|
+
# * +:integrals_delimiter+ - строка. разделитель разрядов для целой части числа, например ' '
|
393
|
+
def rublej_extended_format(amount, locale = :ru, options = {})
|
394
|
+
"#{digit_rublej(amount, locale, options)} (#{rublej(amount, locale, options)})"
|
324
395
|
end
|
325
396
|
|
326
397
|
# Выводит целое или дробное число как сумму в рублях и копейках не прописью
|
327
398
|
#
|
328
399
|
# digit_rublej(345.2) #=> "345 рублей 20 копеек"
|
329
400
|
#
|
330
|
-
|
331
|
-
|
401
|
+
# ==== Опции
|
402
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
403
|
+
# * +:fraction_formatter+ - строка. формат отображения числа после точки, например '%d'
|
404
|
+
# * +:integrals_formatter+ - строка. формат отображения целого числа, например '%d'
|
405
|
+
# * +:integrals_delimiter+ - строка. разделитель разрядов для целой части числа, например ' '
|
406
|
+
def digit_rublej(amount, locale = :ru, options = {})
|
332
407
|
integrals_key = :rub_integral
|
333
408
|
fractions_key = :rub_fraction
|
334
409
|
money_gender = MONEY_GENDERS[:rub]
|
335
410
|
|
336
|
-
money(amount, locale, integrals_key, fractions_key, money_gender, true, true)
|
411
|
+
money(amount, locale, integrals_key, fractions_key, money_gender, true, true, options)
|
337
412
|
end
|
338
413
|
# Выбирает корректный вариант числительного в зависимости от рода и числа и оформляет сумму прописью
|
339
414
|
#
|
@@ -350,52 +425,68 @@ module RuPropisju
|
|
350
425
|
# Выводит целое или дробное число как сумму в гривнах прописью
|
351
426
|
#
|
352
427
|
# griven(32) #=> "тридцать две гривны"
|
353
|
-
|
428
|
+
#
|
429
|
+
# ==== Опции
|
430
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
431
|
+
def griven(amount, locale = :ru, options = {})
|
354
432
|
integrals_key = :uah_integral
|
355
433
|
fractions_key = :uah_fraction
|
356
434
|
money_gender = MONEY_GENDERS[:uah]
|
357
435
|
|
358
|
-
money(amount, locale, integrals_key, fractions_key, money_gender)
|
436
|
+
money(amount, locale, integrals_key, fractions_key, money_gender, false, false, options)
|
359
437
|
end
|
360
438
|
|
361
439
|
# Выводит целое или дробное число как сумму в долларах прописью
|
362
440
|
#
|
363
441
|
# dollarov(32) #=> "тридцать два доллара"
|
364
|
-
|
442
|
+
#
|
443
|
+
# ==== Опции
|
444
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
445
|
+
def dollarov(amount, locale = :ru, options = {})
|
365
446
|
integrals_key = :usd_integral
|
366
447
|
fractions_key = :usd_fraction
|
367
448
|
money_gender = MONEY_GENDERS[:usd]
|
368
449
|
|
369
|
-
money(amount, locale, integrals_key, fractions_key, money_gender)
|
450
|
+
money(amount, locale, integrals_key, fractions_key, money_gender, false, false, options)
|
370
451
|
end
|
371
452
|
|
372
453
|
# Выводит целое или дробное число как сумму в евро прописью
|
373
454
|
#
|
374
455
|
# evro(32) #=> "тридцать два евро"
|
375
|
-
|
456
|
+
#
|
457
|
+
# ==== Опции
|
458
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
459
|
+
def evro(amount, locale = :ru, options = {})
|
376
460
|
integrals_key = :eur_integral
|
377
461
|
fractions_key = :eur_fraction
|
378
462
|
money_gender = MONEY_GENDERS[:eur]
|
379
463
|
|
380
|
-
money(amount, locale, integrals_key, fractions_key, money_gender)
|
464
|
+
money(amount, locale, integrals_key, fractions_key, money_gender, false, false, options)
|
381
465
|
end
|
382
466
|
|
383
467
|
# Выводит целое или дробное число как сумму в тенге прописью
|
384
468
|
#
|
385
469
|
# tenge(32) #=> "тридцать два тенге"
|
386
|
-
|
470
|
+
#
|
471
|
+
# ==== Опции
|
472
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
473
|
+
def tenge(amount, locale = :ru, options = {})
|
387
474
|
integrals_key = :kzt_integral
|
388
475
|
fractions_key = :kzt_fraction
|
389
476
|
money_gender = MONEY_GENDERS[:kzt]
|
390
477
|
|
391
|
-
money(amount, locale, integrals_key, fractions_key, money_gender)
|
478
|
+
money(amount, locale, integrals_key, fractions_key, money_gender, false, false, options)
|
392
479
|
end
|
393
480
|
|
394
481
|
# Выводит сумму прописью в рублях по количеству копеек
|
395
482
|
#
|
396
483
|
# kopeek(343) #=> "три рубля 43 копейки"
|
397
|
-
|
398
|
-
|
484
|
+
#
|
485
|
+
# ==== Опции
|
486
|
+
# * +:always_show_fraction+ - true/false. позволяет принудительно отображать 0 в качестве дробной части для целого числа
|
487
|
+
# * +:fraction_formatter+ - строка. формат отображения числа после точки, например '%d'
|
488
|
+
def kopeek(amount, locale = :ru, options = {})
|
489
|
+
rublej(amount / 100.0, locale, options)
|
399
490
|
end
|
400
491
|
|
401
492
|
# Выводит сумму данного существительного прописью и выбирает правильное число и падеж
|
@@ -412,34 +503,46 @@ module RuPropisju
|
|
412
503
|
elements.join(" ")
|
413
504
|
end
|
414
505
|
|
415
|
-
def money(amount, locale, integrals_key, fractions_key, money_gender, fraction_as_number = false, integrals_as_number = false)
|
506
|
+
def money(amount, locale, integrals_key, fractions_key, money_gender, fraction_as_number = false, integrals_as_number = false, options = {})
|
507
|
+
|
508
|
+
options[:integrals_formatter] ||= '%d'
|
509
|
+
options[:fraction_formatter] ||= '%d'
|
510
|
+
options[:integrals_delimiter] ||= ''
|
511
|
+
options[:always_show_fraction] ||= false
|
512
|
+
|
416
513
|
locale_data = pick_locale(TRANSLATIONS, locale)
|
417
514
|
integrals = locale_data[integrals_key]
|
418
515
|
fractions = locale_data[fractions_key]
|
419
516
|
|
420
|
-
return zero(locale_data, integrals, fractions, fraction_as_number, integrals_as_number) if amount.zero?
|
517
|
+
return zero(locale_data, integrals, fractions, fraction_as_number, integrals_as_number, options) if amount.zero?
|
421
518
|
|
422
519
|
parts = []
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
520
|
+
|
521
|
+
unless amount.to_i == 0
|
522
|
+
if integrals_as_number
|
523
|
+
parts << format_integral(amount.to_i, options) << choose_plural(amount.to_i, integrals)
|
524
|
+
else
|
525
|
+
parts << propisju_int(amount.to_i, money_gender, integrals, locale)
|
526
|
+
end
|
427
527
|
end
|
428
528
|
|
429
529
|
if amount.kind_of?(Float)
|
430
530
|
remainder = (amount.divmod(1)[1]*100).round
|
431
531
|
if remainder == 100
|
432
532
|
parts = [propisju_int(amount.to_i + 1, money_gender, integrals, locale)]
|
533
|
+
parts << zero_fraction(locale, money_gender, fractions, fraction_as_number, options) if options[:always_show_fraction]
|
433
534
|
else
|
434
535
|
if fraction_as_number
|
435
536
|
kop = remainder.to_i
|
436
|
-
|
437
|
-
parts << kop << choose_plural(kop, fractions)
|
537
|
+
if (!kop.zero? || options[:always_show_fraction])
|
538
|
+
parts << format(options[:fraction_formatter], kop) << choose_plural(kop, fractions)
|
438
539
|
end
|
439
540
|
else
|
440
541
|
parts << propisju_int(remainder.to_i, money_gender, fractions, locale)
|
441
542
|
end
|
442
543
|
end
|
544
|
+
else
|
545
|
+
parts << zero_fraction(locale, money_gender, fractions, fraction_as_number, options) if options[:always_show_fraction]
|
443
546
|
end
|
444
547
|
|
445
548
|
parts.join(' ')
|
@@ -447,13 +550,21 @@ module RuPropisju
|
|
447
550
|
|
448
551
|
private
|
449
552
|
|
450
|
-
def zero(locale_data, integrals, fractions, fraction_as_number, integrals_as_number)
|
451
|
-
integ = integrals_as_number ?
|
452
|
-
frac = fraction_as_number ?
|
553
|
+
def zero(locale_data, integrals, fractions, fraction_as_number, integrals_as_number, options)
|
554
|
+
integ = integrals_as_number ? format(options[:integrals_formatter], 0) : locale_data['0']
|
555
|
+
frac = fraction_as_number ? format(options[:fraction_formatter], 0) : locale_data['0']
|
453
556
|
parts = [integ , integrals[-1], frac, fractions[-1]]
|
454
557
|
parts.join(' ')
|
455
558
|
end
|
456
559
|
|
560
|
+
def zero_fraction(locale, money_gender, fractions, fraction_as_number, options)
|
561
|
+
if fraction_as_number
|
562
|
+
[format(options[:fraction_formatter], 0), choose_plural(0, fractions)]
|
563
|
+
else
|
564
|
+
propisju_int(0, money_gender, fractions, locale)
|
565
|
+
end
|
566
|
+
end
|
567
|
+
|
457
568
|
# Cоставляет число прописью для чисел до тысячи
|
458
569
|
|
459
570
|
def compose_ordinal(remaining_amount_or_nil, gender, item_forms = [], locale = :ru)
|
@@ -584,6 +695,9 @@ module RuPropisju
|
|
584
695
|
:prefix => ["а", 'их'],
|
585
696
|
},
|
586
697
|
}
|
698
|
+
# Добавляем новый префикс для предложного падежа и новые значения для родительного (совпадающие с предложным)
|
699
|
+
DECIMALS['ru_pre'] = DECIMALS['ru_in']
|
700
|
+
DECIMALS['ru_gen'] = DECIMALS['ru_in']
|
587
701
|
|
588
702
|
# Выдает сумму прописью с учетом дробной доли. Дробная доля округляется до миллионной, или (если
|
589
703
|
# дробная доля оканчивается на нули) до ближайшей доли или точки ( 500 тысячных округляется до 5 десятых, 30.0000 до 30).
|
@@ -658,6 +772,19 @@ module RuPropisju
|
|
658
772
|
parts_in_writing.compact.join(' ')
|
659
773
|
end
|
660
774
|
|
775
|
+
def format_integral(number, options)
|
776
|
+
formatted_number = format(options[:integrals_formatter], number)
|
777
|
+
delimited_number(formatted_number, options[:integrals_delimiter])
|
778
|
+
end
|
779
|
+
|
780
|
+
def delimited_number(number, delimiter)
|
781
|
+
return number.to_s if delimiter == ''
|
782
|
+
|
783
|
+
number.to_s.gsub!(/(\d)(?=(\d\d\d)+(?!\d))/) do |digit_to_delimit|
|
784
|
+
"#{digit_to_delimit}#{delimiter}"
|
785
|
+
end || number.to_s
|
786
|
+
end
|
787
|
+
|
661
788
|
def pick_locale(from_hash, locale)
|
662
789
|
return from_hash[locale.to_s] if from_hash.has_key?(locale.to_s)
|
663
790
|
raise UnknownLocale, "Unknown locale #{locale.inspect}"
|
@@ -677,5 +804,5 @@ module RuPropisju
|
|
677
804
|
|
678
805
|
public_instance_methods(true).map{|m| module_function(m) }
|
679
806
|
|
680
|
-
module_function :zero, :propisju_int, :propisju_float, :compose_ordinal, :pick_locale
|
807
|
+
module_function :zero, :zero_fraction, :propisju_int, :propisju_float, :compose_ordinal, :pick_locale, :format_integral, :delimited_number
|
681
808
|
end
|
data/ru_propisju.gemspec
CHANGED
@@ -4,13 +4,13 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "2.
|
7
|
+
s.name = "ru_propisju"
|
8
|
+
s.version = "2.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Julik Tarkhanov"]
|
12
|
-
s.date =
|
13
|
-
s.email =
|
12
|
+
s.date = "2015-09-03"
|
13
|
+
s.email = "me@julik.nl"
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"README.rdoc"
|
16
16
|
]
|
@@ -23,11 +23,11 @@ Gem::Specification.new do |s|
|
|
23
23
|
"ru_propisju.gemspec",
|
24
24
|
"test/test_ru_propisju.rb"
|
25
25
|
]
|
26
|
-
s.homepage =
|
26
|
+
s.homepage = "http://github.com/julik/ru_propisju"
|
27
27
|
s.licenses = ["MIT"]
|
28
28
|
s.require_paths = ["lib"]
|
29
|
-
s.rubygems_version =
|
30
|
-
s.summary =
|
29
|
+
s.rubygems_version = "1.8.23.2"
|
30
|
+
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}"
|
31
31
|
|
32
32
|
if s.respond_to? :specification_version then
|
33
33
|
s.specification_version = 3
|
data/test/test_ru_propisju.rb
CHANGED
@@ -33,6 +33,22 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
33
33
|
assert_equal "ста двадцати трёх евро четырнадцати центах", RuPropisju.amount_in_words(123.14, "eur", :ru_in)
|
34
34
|
assert_equal "ста двадцати трёх долларах четырнадцати центах", RuPropisju.amount_in_words(123.14, "usd", :ru_in)
|
35
35
|
|
36
|
+
assert_equal 'ста двадцати трёх рублях', RuPropisju.amount_in_words(123, :rur, :ru_pre)
|
37
|
+
assert_equal 'ста двадцати трёх евро', RuPropisju.amount_in_words(123, :eur, :ru_pre)
|
38
|
+
|
39
|
+
# russian locale (родительный падеж)
|
40
|
+
assert_equal 'одного рубля', RuPropisju.amount_in_words(1, :rur, :ru_gen)
|
41
|
+
assert_equal 'пятидесяти одного рубля', RuPropisju.amount_in_words(51, :rur, :ru_gen)
|
42
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, :rur, :ru_gen)
|
43
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, :rub, :ru_gen)
|
44
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, 'RUR', 'ru_gen')
|
45
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.amount_in_words(123, 'rur', 'ru_gen')
|
46
|
+
assert_equal 'ста двадцати трёх гривен', RuPropisju.amount_in_words(123, 'uah', 'ru_gen')
|
47
|
+
assert_equal 'ста двадцати трёх тенге', RuPropisju.amount_in_words(123, 'kzt', 'ru_gen')
|
48
|
+
assert_equal 'ста двадцати трёх евро', RuPropisju.amount_in_words(123, 'eur', 'ru_gen')
|
49
|
+
assert_equal 'ста двадцати трёх евро четырнадцати центов', RuPropisju.amount_in_words(123.14, 'eur', :ru_gen)
|
50
|
+
assert_equal 'ста двадцати трёх долларов четырнадцати центов', RuPropisju.amount_in_words(123.14, 'usd', :ru_gen)
|
51
|
+
|
36
52
|
# russian locale (творительный падеж)
|
37
53
|
assert_equal "ста двадцатью тремя рублями", RuPropisju.amount_in_words(123, :rur, :ru_from)
|
38
54
|
assert_equal "ста двадцатью тремя рублями", RuPropisju.amount_in_words(123, :rub, :ru_from)
|
@@ -101,14 +117,27 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
101
117
|
assert_equal "шести тысячах семистах двадцати семи", RuPropisju.propisju(6727, 1, :ru_in)
|
102
118
|
assert_equal "одном миллионе одном", RuPropisju.propisju(1_000_001, 1, :ru_in)
|
103
119
|
assert_equal "одном миллионе", RuPropisju.propisju(1_000_000, 1, :ru_in)
|
104
|
-
assert_equal "восьми миллионах шестистах
|
105
|
-
assert_equal "восьми миллионах шестистах
|
106
|
-
assert_equal "восьми миллионах шестистах
|
120
|
+
assert_equal "восьми миллионах шестистах пятидесяти двух", RuPropisju.propisju(8000652, 1, :ru_in)
|
121
|
+
assert_equal "восьми миллионах шестистах пятидесяти двух", RuPropisju.propisju(8000652, 2, :ru_in)
|
122
|
+
assert_equal "восьми миллионах шестистах пятидесяти двух", RuPropisju.propisju(8000652, 3, :ru_in)
|
107
123
|
assert_equal "сорока пяти", RuPropisju.propisju(45, 1, :ru_in)
|
108
124
|
assert_equal "пяти", RuPropisju.propisju(5, 1, :ru_in)
|
109
125
|
assert_equal "шестистах двенадцати", RuPropisju.propisju(612, 1, :ru_in)
|
110
126
|
assert_equal "нуле", RuPropisju.propisju(0, 1, :ru_in)
|
111
127
|
|
128
|
+
# родительный падеж для русской локали
|
129
|
+
assert_equal 'пятисот двадцати трёх', RuPropisju.propisju(523, 1, :ru_gen)
|
130
|
+
assert_equal 'шести тысяч семисот двадцати семи', RuPropisju.propisju(6727, 1, :ru_gen)
|
131
|
+
assert_equal 'одного миллиона одного', RuPropisju.propisju(1_000_001, 1, :ru_gen)
|
132
|
+
assert_equal 'одного миллиона', RuPropisju.propisju(1_000_000, 1, :ru_gen)
|
133
|
+
assert_equal 'восьми миллионов шестисот пятидесяти одного', RuPropisju.propisju(8000651, 1, :ru_gen)
|
134
|
+
assert_equal 'восьми миллионов шестисот пятидесяти одной', RuPropisju.propisju(8000651, 2, :ru_gen)
|
135
|
+
assert_equal 'восьми миллионов шестисот пятидесяти одного', RuPropisju.propisju(8000651, 3, :ru_gen)
|
136
|
+
assert_equal 'сорока пяти', RuPropisju.propisju(45, 1, :ru_gen)
|
137
|
+
assert_equal 'пяти', RuPropisju.propisju(5, 1, :ru_gen)
|
138
|
+
assert_equal 'шестисот двенадцати', RuPropisju.propisju(612, 1, :ru_gen)
|
139
|
+
assert_equal 'нуля', RuPropisju.propisju(0, 1, :ru_gen)
|
140
|
+
|
112
141
|
# творительный падеж для русской локали
|
113
142
|
assert_equal "пятьюстами двадцатью тремя", RuPropisju.propisju(523, 1, :ru_from)
|
114
143
|
assert_equal "шестью тысячами семьюстами двадцатью семью", RuPropisju.propisju(6727, 1, :ru_from)
|
@@ -153,6 +182,13 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
153
182
|
assert_equal "двухстах двенадцати сволочах", RuPropisju.propisju_shtuk(212.00, 2, ["сволочи", "сволочах", "сволочах"], :ru_in)
|
154
183
|
assert_equal "двухстах двенадцати целых четырёх десятых кусках", RuPropisju.propisju_shtuk(212.40, 2, ["куске", "кусках", "кусках"], :ru_in)
|
155
184
|
|
185
|
+
# родительный падеж русской локали
|
186
|
+
assert_equal 'шести целых', RuPropisju.propisju_shtuk(6, 2, %w(целой целых целых), :ru_gen)
|
187
|
+
assert_equal 'двадцати пяти колёс', RuPropisju.propisju_shtuk(25, 3, %w(колёса колёс колёс), :ru_gen)
|
188
|
+
assert_equal 'двадцати одной подставы', RuPropisju.propisju_shtuk(21, 2, %w(подставы подстав подстав), :ru_gen)
|
189
|
+
assert_equal 'двухсот двенадцати сволочей', RuPropisju.propisju_shtuk(212.00, 2, %w(сволочи сволочей сволочей), :ru_gen)
|
190
|
+
assert_equal 'двухсот двенадцати целых четырёх десятых кусков', RuPropisju.propisju_shtuk(212.40, 2, %w(куска кусков кусков), :ru_gen)
|
191
|
+
|
156
192
|
# творительный падеж русской локали
|
157
193
|
assert_equal "шестью целыми", RuPropisju.propisju_shtuk(6, 2, ["целой", "целыми", "целыми"], :ru_from)
|
158
194
|
assert_equal "двадцатью пятью колесами", RuPropisju.propisju_shtuk(25, 3, ["колесом", "колесами", "колесами"], :ru_from)
|
@@ -190,6 +226,17 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
190
226
|
assert_equal "двухстах трёх целых сорока одной сотой", RuPropisju.propisju(203.41, 1, :ru_in)
|
191
227
|
assert_equal "четырёхстах сорока двух целых пяти десятых", RuPropisju.propisju(442.50000, 1, :ru_in)
|
192
228
|
|
229
|
+
# родительный падеж русской локали
|
230
|
+
assert_equal 'шести целых пяти десятых', RuPropisju.propisju(6.50, 1, :ru_gen)
|
231
|
+
assert_equal 'шести', RuPropisju.propisju(6.0, 1, :ru_gen)
|
232
|
+
assert_equal 'тридцати миллиардов целых ста одиннадцати тысячных', RuPropisju.propisju(3 * 10**10 + 0.111, 1, :ru_gen)
|
233
|
+
assert_equal 'тридцати', RuPropisju.propisju(30.0, 1, :ru_gen)
|
234
|
+
assert_equal 'тридцати целых одной десятой', RuPropisju.propisju(30.1, 1, :ru_gen)
|
235
|
+
assert_equal 'трёхсот сорока одной целой девяти десятых', RuPropisju.propisju(341.9, 1, :ru_gen)
|
236
|
+
assert_equal 'трёхсот сорока одной целой двухсот сорока пяти тысячных', RuPropisju.propisju(341.245, 1, :ru_gen)
|
237
|
+
assert_equal 'двухсот трёх целых сорока одной сотой', RuPropisju.propisju(203.41, 1, :ru_gen)
|
238
|
+
assert_equal 'четырёхсот сорока двух целых пяти десятых', RuPropisju.propisju(442.50000, 1, :ru_gen)
|
239
|
+
|
193
240
|
# творительный падеж русской локали
|
194
241
|
assert_equal "шестью целыми пятью десятыми", RuPropisju.propisju(6.50, 1, :ru_from)
|
195
242
|
assert_equal "шестью", RuPropisju.propisju(6.0, 1, :ru_from)
|
@@ -239,6 +286,11 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
239
286
|
assert_equal "триста тридцать два рубля", RuPropisju.rublej(331.995)
|
240
287
|
assert_equal "один рубль", RuPropisju.rubl(1)
|
241
288
|
assert_equal "три рубля 14 копеек", RuPropisju.rublja(3.14)
|
289
|
+
assert_equal "три рубля 2 копейки", RuPropisju.rublja(3.02)
|
290
|
+
assert_equal "одна тысяча рублей", RuPropisju.rublja(1000)
|
291
|
+
assert_equal "одна тысяча рублей", RuPropisju.rublja(1000.0)
|
292
|
+
assert_equal "1000 рублей", RuPropisju.digit_rublej(1000)
|
293
|
+
assert_equal "345 рублей 2 копейки", RuPropisju.digit_rublej(345.02)
|
242
294
|
|
243
295
|
# ru locale предложный падеж
|
244
296
|
assert_equal "нуле рублях 0 копейках", RuPropisju.rublej(0, :ru_in)
|
@@ -249,6 +301,15 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
249
301
|
assert_equal "одном рубле", RuPropisju.rubl(1, :ru_in)
|
250
302
|
assert_equal "трёх рублях 14 копейках", RuPropisju.rublja(3.14, :ru_in)
|
251
303
|
|
304
|
+
# ru locale родительный падеж
|
305
|
+
assert_equal 'нуля рублей 0 копеек', RuPropisju.rublej(0, :ru_gen)
|
306
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.rublej(123, :ru_gen)
|
307
|
+
assert_equal 'трёхсот сорока трёх рублей 20 копеек', RuPropisju.rublej(343.20, :ru_gen)
|
308
|
+
assert_equal '42 копеек', RuPropisju.rublej(0.4187, :ru_gen)
|
309
|
+
assert_equal 'трёхсот тридцати двух рублей', RuPropisju.rublej(331.995, :ru_gen)
|
310
|
+
assert_equal 'одного рубля', RuPropisju.rubl(1, :ru_gen)
|
311
|
+
assert_equal 'трёх рублей 14 копеек', RuPropisju.rublja(3.14, :ru_gen)
|
312
|
+
|
252
313
|
# ru locale творительный падеж
|
253
314
|
assert_equal "нулём рублями 0 копейками", RuPropisju.rublej(0, :ru_from)
|
254
315
|
assert_equal "ста двадцатью тремя рублями", RuPropisju.rublej(123, :ru_from)
|
@@ -287,6 +348,16 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
287
348
|
assert_equal "трёх гривнах четырнадцати копейках", RuPropisju.grivny(3.14, :ru_in)
|
288
349
|
assert_equal "нуле гривнах нуле копейках", RuPropisju.griven(0, :ru_in)
|
289
350
|
|
351
|
+
# ru locale родительный падеж
|
352
|
+
assert_equal 'ста двадцати трёх гривен', RuPropisju.griven(123, :ru_gen)
|
353
|
+
assert_equal 'ста двадцати четырёх гривен', RuPropisju.griven(124, :ru_gen)
|
354
|
+
assert_equal 'трёхсот сорока трёх гривен двадцати копеек', RuPropisju.griven(343.20, :ru_gen)
|
355
|
+
assert_equal 'сорока двух копеек', RuPropisju.griven(0.4187, :ru_gen)
|
356
|
+
assert_equal 'трёхсот тридцати двух гривен', RuPropisju.griven(331.995, :ru_gen)
|
357
|
+
assert_equal 'одной гривны', RuPropisju.grivna(1, :ru_gen)
|
358
|
+
assert_equal 'трёх гривен четырнадцати копеек', RuPropisju.grivny(3.14, :ru_gen)
|
359
|
+
assert_equal 'нуля гривен нуля копеек', RuPropisju.griven(0, :ru_gen)
|
360
|
+
|
290
361
|
# ru locale творительный падеж
|
291
362
|
assert_equal "ста двадцатью тремя гривнами", RuPropisju.griven(123, :ru_from)
|
292
363
|
assert_equal "ста двадцатью четырьмя гривнами", RuPropisju.griven(124, :ru_from)
|
@@ -330,6 +401,17 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
330
401
|
assert_equal "трёх тенге четырнадцати тиынах", RuPropisju.tenge(3.14, :ru_in)
|
331
402
|
assert_equal "нуле тенге нуле тиынах", RuPropisju.tenge(0, :ru_in)
|
332
403
|
|
404
|
+
# ru locale родительный падеж
|
405
|
+
assert_equal 'ста двадцати трёх тенге', RuPropisju.tenge(123, :ru_gen)
|
406
|
+
assert_equal 'ста двадцати четырёх тенге', RuPropisju.tenge(124, :ru_gen)
|
407
|
+
assert_equal 'трёхсот сорока трёх тенге двадцати тиынов', RuPropisju.tenge(343.20, :ru_gen)
|
408
|
+
assert_equal 'сорока двух тиынов', RuPropisju.tenge(0.4187, :ru_gen)
|
409
|
+
assert_equal 'трёхсот тридцати двух тенге', RuPropisju.tenge(331.995, :ru_gen)
|
410
|
+
assert_equal 'трёхсот тридцати одного тенге девяноста девяти тиынов', RuPropisju.tenge(331.985, :ru_gen)
|
411
|
+
assert_equal 'одного тенге', RuPropisju.tenge(1, :ru_gen)
|
412
|
+
assert_equal 'трёх тенге четырнадцати тиынов', RuPropisju.tenge(3.14, :ru_gen)
|
413
|
+
assert_equal 'нуля тенге нуля тиынов', RuPropisju.tenge(0, :ru_gen)
|
414
|
+
|
333
415
|
# ru locale творительный падеж
|
334
416
|
assert_equal "ста двадцатью тремя тенге", RuPropisju.tenge(123, :ru_from)
|
335
417
|
assert_equal "ста двадцатью четырьмя тенге", RuPropisju.tenge(124, :ru_from)
|
@@ -366,6 +448,14 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
366
448
|
assert_equal "21 копейке", RuPropisju.kopeika(21, :ru_in)
|
367
449
|
assert_equal "3 копейках", RuPropisju.kopeiki(3, :ru_in)
|
368
450
|
|
451
|
+
# ru locale родительный падеж
|
452
|
+
assert_equal 'нуля рублей 0 копеек', RuPropisju.kopeek(0, :ru_gen)
|
453
|
+
assert_equal 'ста двадцати трёх рублей', RuPropisju.kopeek(12300, :ru_gen)
|
454
|
+
assert_equal 'трёх рублей 14 копеек', RuPropisju.kopeek(314, :ru_gen)
|
455
|
+
assert_equal '32 копеек', RuPropisju.kopeek(32, :ru_gen)
|
456
|
+
assert_equal '21 копейки', RuPropisju.kopeika(21, :ru_gen)
|
457
|
+
assert_equal '3 копеек', RuPropisju.kopeiki(3, :ru_gen)
|
458
|
+
|
369
459
|
# ru locale творительный падеж
|
370
460
|
assert_equal "нулём рублями 0 копейками", RuPropisju.kopeek(0, :ru_from)
|
371
461
|
assert_equal "ста двадцатью тремя рублями", RuPropisju.kopeek(12300, :ru_from)
|
@@ -381,4 +471,45 @@ class TestRuPropisju < Test::Unit::TestCase
|
|
381
471
|
assert_equal "21 копійка", RuPropisju.kopeika(21, :ua)
|
382
472
|
assert_equal "3 копійки", RuPropisju.kopeiki(3, :ua)
|
383
473
|
end
|
474
|
+
|
475
|
+
def test_options
|
476
|
+
options = { :always_show_fraction => true }
|
477
|
+
assert_equal "ноль рублей 0 копеек", RuPropisju.rublej(0, :ru, options)
|
478
|
+
assert_equal "сто двадцать три рубля 0 копеек", RuPropisju.rublej(123, :ru, options)
|
479
|
+
assert_equal "триста сорок три рубля 20 копеек", RuPropisju.rublej(343.20, :ru, options)
|
480
|
+
assert_equal "триста сорок три рубля 70 копеек", RuPropisju.rublej(343.70, :ru, options)
|
481
|
+
|
482
|
+
assert_equal "42 копейки", RuPropisju.rublej(0.4187, :ru, options)
|
483
|
+
assert_equal "триста тридцать два рубля 0 копеек", RuPropisju.rublej(331.995, :ru, options)
|
484
|
+
assert_equal "один рубль 0 копеек", RuPropisju.rubl(1, :ru, options)
|
485
|
+
assert_equal "три рубля 14 копеек", RuPropisju.rublja(3.14, :ru, options)
|
486
|
+
assert_equal "три рубля 2 копейки", RuPropisju.rublja(3.02, :ru, options)
|
487
|
+
assert_equal "одна тысяча рублей 0 копеек", RuPropisju.rublja(1000, :ru, options)
|
488
|
+
|
489
|
+
assert_equal "1000 рублей 0 копеек", RuPropisju.digit_rublej(1000, :ru, options)
|
490
|
+
assert_equal "345 рублей 2 копейки", RuPropisju.digit_rublej(345.02, :ru, options)
|
491
|
+
assert_equal "4 рубля 60 копеек", RuPropisju.digit_rublej(4.60, :ru, options)
|
492
|
+
|
493
|
+
options_custom_formatter = { :fraction_formatter => '%02d', :integrals_formatter => '+%d', :integrals_delimiter => ' ', :always_show_fraction => true }
|
494
|
+
assert_equal "ноль рублей 00 копеек", RuPropisju.rublej(0, :ru, options_custom_formatter)
|
495
|
+
assert_equal "сто двадцать три рубля 00 копеек", RuPropisju.rublej(123, :ru, options_custom_formatter)
|
496
|
+
assert_equal "триста сорок три рубля 20 копеек", RuPropisju.rublej(343.20, :ru, options_custom_formatter)
|
497
|
+
|
498
|
+
assert_equal "42 копейки", RuPropisju.rublej(0.4187, :ru, options_custom_formatter)
|
499
|
+
assert_equal "триста тридцать два рубля 00 копеек", RuPropisju.rublej(331.995, :ru, options_custom_formatter)
|
500
|
+
assert_equal "один рубль 00 копеек", RuPropisju.rubl(1, :ru, options_custom_formatter)
|
501
|
+
assert_equal "три рубля 14 копеек", RuPropisju.rublja(3.14, :ru, options_custom_formatter)
|
502
|
+
assert_equal "три рубля 02 копейки", RuPropisju.rublja(3.02, :ru, options_custom_formatter)
|
503
|
+
assert_equal "одна тысяча рублей 00 копеек", RuPropisju.rublja(1000, :ru, options_custom_formatter)
|
504
|
+
|
505
|
+
assert_equal "+1 000 рублей 00 копеек", RuPropisju.digit_rublej(1000, :ru, options_custom_formatter)
|
506
|
+
assert_equal "+1 000 рублей 00 копеек", RuPropisju.digit_rublej(1000.0, :ru, options_custom_formatter)
|
507
|
+
assert_equal "+345 рублей 02 копейки", RuPropisju.digit_rublej(345.02, :ru, options_custom_formatter)
|
508
|
+
|
509
|
+
assert_equal "триста тридцять дві гривні нуль копійок", RuPropisju.griven(331.995, :ua, options_custom_formatter)
|
510
|
+
assert_equal "три тенге ноль тиынов", RuPropisju.tenge(3, :ru, options_custom_formatter)
|
511
|
+
assert_equal "триста сорок пять долларов два цента", RuPropisju.dollarov(345.02, :ru, options_custom_formatter)
|
512
|
+
assert_equal "три доллара ноль центов", RuPropisju.dollarov(3, :ru, options_custom_formatter)
|
513
|
+
assert_equal "три евро ноль центов", RuPropisju.evro(3, :ru, options_custom_formatter)
|
514
|
+
end
|
384
515
|
end
|
metadata
CHANGED
@@ -1,76 +1,71 @@
|
|
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
|
+
version: 2.5.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 4
|
9
|
-
- 0
|
10
|
-
version: 2.4.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Julik Tarkhanov
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2015-09-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: jeweler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
23
17
|
none: false
|
24
|
-
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
hash: 63
|
28
|
-
segments:
|
29
|
-
- 1
|
30
|
-
- 8
|
31
|
-
- 4
|
18
|
+
requirements:
|
19
|
+
- - '='
|
20
|
+
- !ruby/object:Gem::Version
|
32
21
|
version: 1.8.4
|
33
22
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
23
|
prerelease: false
|
36
|
-
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
25
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
45
|
-
- 0
|
46
|
-
version: "0"
|
47
|
-
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
prerelease: false
|
26
|
+
requirements:
|
27
|
+
- - '='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.8.4
|
30
|
+
- !ruby/object:Gem::Dependency
|
50
31
|
name: rake
|
51
|
-
|
52
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
53
33
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
version: "0"
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
61
38
|
type: :development
|
62
|
-
version_requirements: *id003
|
63
39
|
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
64
47
|
name: test-unit
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
65
62
|
description:
|
66
63
|
email: me@julik.nl
|
67
64
|
executables: []
|
68
|
-
|
69
65
|
extensions: []
|
70
|
-
|
71
|
-
extra_rdoc_files:
|
66
|
+
extra_rdoc_files:
|
72
67
|
- README.rdoc
|
73
|
-
files:
|
68
|
+
files:
|
74
69
|
- Gemfile
|
75
70
|
- History.txt
|
76
71
|
- README.rdoc
|
@@ -78,41 +73,32 @@ files:
|
|
78
73
|
- lib/ru_propisju.rb
|
79
74
|
- ru_propisju.gemspec
|
80
75
|
- test/test_ru_propisju.rb
|
81
|
-
has_rdoc: true
|
82
76
|
homepage: http://github.com/julik/ru_propisju
|
83
|
-
licenses:
|
77
|
+
licenses:
|
84
78
|
- MIT
|
85
79
|
post_install_message:
|
86
80
|
rdoc_options: []
|
87
|
-
|
88
|
-
require_paths:
|
81
|
+
require_paths:
|
89
82
|
- lib
|
90
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
84
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
|
96
|
-
segments:
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
segments:
|
97
90
|
- 0
|
98
|
-
|
99
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
hash: 1089524318259268093
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
93
|
none: false
|
101
|
-
requirements:
|
102
|
-
- -
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
|
105
|
-
segments:
|
106
|
-
- 0
|
107
|
-
version: "0"
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
108
98
|
requirements: []
|
109
|
-
|
110
99
|
rubyforge_project:
|
111
|
-
rubygems_version: 1.
|
100
|
+
rubygems_version: 1.8.23.2
|
112
101
|
signing_key:
|
113
102
|
specification_version: 3
|
114
|
-
summary:
|
115
|
-
Q9GD0LzQvNCwINC/0YDQvtC/0LjRgdGM0Y4=
|
116
|
-
|
103
|
+
summary: Cумма прописью
|
117
104
|
test_files: []
|
118
|
-
|