numbers_and_words 0.11.0 → 0.11.1
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.
- checksums.yaml +4 -4
- data/lib/numbers_and_words/core_ext/array.rb +2 -2
- data/lib/numbers_and_words/core_ext/float.rb +1 -1
- data/lib/numbers_and_words/core_ext/integer.rb +1 -1
- data/lib/numbers_and_words/helper_classes.rb +1 -1
- data/lib/numbers_and_words/helper_classes/array_extensions/helpers.rb +11 -12
- data/lib/numbers_and_words/helper_classes/figures_array.rb +1 -4
- data/lib/numbers_and_words/helper_classes/words_array.rb +2 -4
- data/lib/numbers_and_words/i18n.rb +4 -4
- data/lib/numbers_and_words/i18n/initialization.rb +2 -2
- data/lib/numbers_and_words/i18n/locales/numbers.en.yml +3 -3
- data/lib/numbers_and_words/i18n/locales/numbers.es.yml +86 -25
- data/lib/numbers_and_words/i18n/locales/numbers.fr.yml +54 -1
- data/lib/numbers_and_words/i18n/locales/numbers.pt-BR.yml +4 -4
- data/lib/numbers_and_words/i18n/locales/numbers.pt.yml +0 -1
- data/lib/numbers_and_words/i18n/pluralization.rb +2 -3
- data/lib/numbers_and_words/i18n/plurals/fr.rb +3 -3
- data/lib/numbers_and_words/i18n/plurals/lt.rb +11 -8
- data/lib/numbers_and_words/i18n/plurals/lv.rb +3 -3
- data/lib/numbers_and_words/i18n/plurals/ru.rb +15 -10
- data/lib/numbers_and_words/strategies.rb +1 -1
- data/lib/numbers_and_words/strategies/array_joiner.rb +1 -2
- data/lib/numbers_and_words/strategies/array_joiner/languages.rb +3 -1
- data/lib/numbers_and_words/strategies/array_joiner/languages/base.rb +1 -1
- data/lib/numbers_and_words/strategies/array_joiner/languages/es.rb +10 -0
- data/lib/numbers_and_words/strategies/array_joiner/languages/families/base.rb +0 -1
- data/lib/numbers_and_words/strategies/array_joiner/languages/fr.rb +10 -0
- data/lib/numbers_and_words/strategies/figures_converter.rb +1 -2
- data/lib/numbers_and_words/strategies/figures_converter/decorators.rb +8 -6
- data/lib/numbers_and_words/strategies/figures_converter/decorators/base.rb +2 -2
- data/lib/numbers_and_words/strategies/figures_converter/decorators/en/base.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/decorators/en/fractional.rb +2 -3
- data/lib/numbers_and_words/strategies/figures_converter/decorators/en/integral.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/decorators/es.rb +3 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/es/base.rb +12 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/es/fractional.rb +38 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/es/integral.rb +12 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/fr.rb +3 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/base.rb +12 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/fractional.rb +37 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/integral.rb +12 -0
- data/lib/numbers_and_words/strategies/figures_converter/decorators/hu.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/base.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/fractional.rb +2 -3
- data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/integral.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/fractional.rb +1 -2
- data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/base.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/fractional.rb +2 -3
- data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/integral.rb +1 -2
- data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/base.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/fractional.rb +2 -3
- data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/integral.rb +1 -2
- data/lib/numbers_and_words/strategies/figures_converter/languages.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/languages/base.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/languages/de.rb +9 -9
- data/lib/numbers_and_words/strategies/figures_converter/languages/en-GB.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/languages/en.rb +17 -19
- data/lib/numbers_and_words/strategies/figures_converter/languages/es.rb +50 -25
- data/lib/numbers_and_words/strategies/figures_converter/languages/et.rb +1 -2
- data/lib/numbers_and_words/strategies/figures_converter/languages/families/base.rb +5 -5
- data/lib/numbers_and_words/strategies/figures_converter/languages/families/cyrillic.rb +5 -5
- data/lib/numbers_and_words/strategies/figures_converter/languages/families/helpers.rb +10 -14
- data/lib/numbers_and_words/strategies/figures_converter/languages/fr.rb +7 -7
- data/lib/numbers_and_words/strategies/figures_converter/languages/hu.rb +8 -8
- data/lib/numbers_and_words/strategies/figures_converter/languages/ka.rb +8 -10
- data/lib/numbers_and_words/strategies/figures_converter/languages/lt.rb +6 -6
- data/lib/numbers_and_words/strategies/figures_converter/languages/lv.rb +2 -2
- data/lib/numbers_and_words/strategies/figures_converter/languages/pt-BR.rb +24 -26
- data/lib/numbers_and_words/strategies/figures_converter/languages/pt.rb +6 -7
- data/lib/numbers_and_words/strategies/figures_converter/languages/tr.rb +4 -4
- data/lib/numbers_and_words/strategies/figures_converter/options.rb +6 -5
- data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/hundreds_with_union.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/ordinal.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/remove_hyphen.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/remove_zero.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/options/en/hundreds_with_union.rb +3 -3
- data/lib/numbers_and_words/strategies/figures_converter/options/en/ordinal.rb +3 -3
- data/lib/numbers_and_words/strategies/figures_converter/options/en/pronounced.rb +14 -23
- data/lib/numbers_and_words/strategies/figures_converter/options/en/remove_hyphen.rb +2 -3
- data/lib/numbers_and_words/strategies/figures_converter/options/en/remove_zero.rb +2 -2
- data/lib/numbers_and_words/strategies/figures_converter/options/es.rb +3 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/es/apocopated.rb +28 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/es/gender.rb +28 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/es/remove_zero.rb +28 -0
- data/lib/numbers_and_words/strategies/figures_converter/options/hu/ordinal.rb +3 -3
- data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/gender.rb +2 -2
- data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/ordinal.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/remove_zero.rb +1 -1
- data/lib/numbers_and_words/strategies/figures_converter/options/ru/gender.rb +2 -2
- data/lib/numbers_and_words/strategies/figures_converter/options/ua/gender.rb +2 -2
- data/lib/numbers_and_words/translations/base.rb +2 -2
- data/lib/numbers_and_words/translations/de.rb +5 -5
- data/lib/numbers_and_words/translations/es.rb +29 -24
- data/lib/numbers_and_words/translations/et.rb +3 -3
- data/lib/numbers_and_words/translations/extensions/fraction_significance.rb +4 -5
- data/lib/numbers_and_words/translations/families/base.rb +8 -8
- data/lib/numbers_and_words/translations/families/cyrillic.rb +6 -6
- data/lib/numbers_and_words/translations/families/latin.rb +6 -6
- data/lib/numbers_and_words/translations/fr.rb +16 -8
- data/lib/numbers_and_words/translations/hu.rb +3 -3
- data/lib/numbers_and_words/translations/it.rb +3 -3
- data/lib/numbers_and_words/translations/ka.rb +13 -13
- data/lib/numbers_and_words/translations/lt.rb +4 -5
- data/lib/numbers_and_words/translations/lv.rb +4 -5
- data/lib/numbers_and_words/translations/nl.rb +3 -3
- data/lib/numbers_and_words/translations/pt-BR.rb +18 -18
- data/lib/numbers_and_words/translations/pt.rb +4 -5
- data/lib/numbers_and_words/translations/ru.rb +5 -5
- data/lib/numbers_and_words/translations/se.rb +2 -2
- data/lib/numbers_and_words/translations/tr.rb +3 -4
- data/lib/numbers_and_words/translations/ua.rb +3 -3
- data/lib/numbers_and_words/version.rb +1 -1
- data/lib/numbers_and_words/wrappers.rb +1 -1
- data/lib/numbers_and_words/wrappers/float.rb +9 -9
- data/lib/numbers_and_words/wrappers/integer.rb +3 -3
- metadata +16 -4
- data/lib/numbers_and_words/helper_classes/array_extensions/validations.rb +0 -19
- data/lib/numbers_and_words/i18n/plurals/pt-BR.rb +0 -15
@@ -2,25 +2,25 @@ module NumbersAndWords
|
|
2
2
|
module Translations
|
3
3
|
module Families
|
4
4
|
module Base
|
5
|
-
|
6
|
-
def teens numbers, options = {}
|
5
|
+
def teens(numbers, options = {})
|
7
6
|
t("#{options[:prefix]}.teens")[numbers[0]]
|
8
7
|
end
|
9
8
|
|
10
|
-
def tens
|
9
|
+
def tens(number, options = {})
|
11
10
|
t("#{options[:prefix]}.tens")[number]
|
12
11
|
end
|
13
12
|
|
14
|
-
def tens_with_ones
|
13
|
+
def tens_with_ones(numbers, options = {})
|
15
14
|
[tens(numbers[1]), ones(numbers[0], options)].join options[:separator]
|
16
15
|
end
|
17
16
|
|
18
|
-
def megs
|
19
|
-
number
|
20
|
-
|
17
|
+
def megs(capacity, options = {})
|
18
|
+
number = options[:number]
|
19
|
+
mega_name = "#{options[:prefix]}.mega"
|
20
|
+
number ? t(mega(capacity), count: number) : t(mega_name)[capacity]
|
21
21
|
end
|
22
22
|
|
23
|
-
def mega
|
23
|
+
def mega(capacity)
|
24
24
|
t(:mega)[capacity]
|
25
25
|
end
|
26
26
|
|
@@ -4,24 +4,24 @@ module NumbersAndWords
|
|
4
4
|
module Cyrillic
|
5
5
|
include NumbersAndWords::Translations::Families::Base
|
6
6
|
|
7
|
-
def ones
|
7
|
+
def ones(number, options = {})
|
8
8
|
t(:ones)[options[:gender]][number]
|
9
9
|
end
|
10
10
|
|
11
|
-
def tens_with_ones
|
11
|
+
def tens_with_ones(numbers, options = {})
|
12
12
|
[tens(numbers[1]), ones(numbers[0], options)].join ' '
|
13
13
|
end
|
14
14
|
|
15
|
-
def hundreds
|
15
|
+
def hundreds(number, _options = {})
|
16
16
|
t(:hundreds)[number]
|
17
17
|
end
|
18
18
|
|
19
|
-
def zero
|
19
|
+
def zero(_options = {})
|
20
20
|
t(:ones).values.first[0]
|
21
21
|
end
|
22
22
|
|
23
|
-
def integral
|
24
|
-
t(:integral, :
|
23
|
+
def integral(number, _options = {})
|
24
|
+
t(:integral, count: number)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -4,16 +4,16 @@ module NumbersAndWords
|
|
4
4
|
module Latin
|
5
5
|
include NumbersAndWords::Translations::Families::Base
|
6
6
|
|
7
|
-
def
|
8
|
-
t([options[:prefix], :ones].join('.'))[
|
7
|
+
def zero(options = {})
|
8
|
+
t([options[:prefix], :ones].join('.'))[0]
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
12
|
-
|
11
|
+
def ones(number, options = {})
|
12
|
+
t([options[:prefix], :ones].join('.'))[number]
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
16
|
-
t([options[:prefix], :
|
15
|
+
def hundreds(number, options = {})
|
16
|
+
[t(:ones)[number], t([options[:prefix], :hundreds].join('.'))].join options[:separator] || ' '
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -2,27 +2,35 @@ module NumbersAndWords
|
|
2
2
|
module Translations
|
3
3
|
class Fr < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
|
+
include NumbersAndWords::Translations::Extensions::FractionSignificance
|
5
6
|
|
6
7
|
SPECIAL_TENS_CASE = 8
|
7
8
|
|
8
|
-
def tens
|
9
|
+
def tens(number, options = {})
|
9
10
|
options[:alone] = true if options[:alone].nil?
|
10
|
-
|
11
|
+
SPECIAL_TENS_CASE == number && options[:alone] ? t(:eighty) : super(number)
|
11
12
|
end
|
12
13
|
|
13
|
-
def tens_with_ones
|
14
|
+
def tens_with_ones(numbers, _options = {})
|
14
15
|
if [7, 9].include? numbers[1]
|
15
|
-
[tens(numbers[1] - 1, :
|
16
|
+
[tens(numbers[1] - 1, alone: false), teens(numbers)].join '-'
|
16
17
|
else
|
17
18
|
union = numbers[0] == 1 ? ' et ' : '-'
|
18
|
-
[tens(numbers[1], :
|
19
|
+
[tens(numbers[1], alone: false), ones(numbers[0])].join union
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
22
|
-
def hundreds
|
23
|
+
def hundreds(number, options = {})
|
23
24
|
options[:pluralize] = false if options[:pluralize].nil?
|
24
|
-
hundreds = t(:hundreds, :
|
25
|
-
|
25
|
+
hundreds = t(:hundreds, count: options[:pluralize] ? number : 1)
|
26
|
+
number == 1 ? hundreds : [t(:ones)[number], hundreds].join(' ')
|
27
|
+
end
|
28
|
+
|
29
|
+
def micro_prefix(capacity)
|
30
|
+
case capacity
|
31
|
+
when 2 then t(:hundreds, count: 1)
|
32
|
+
when 1 then tens(1)
|
33
|
+
end
|
26
34
|
end
|
27
35
|
end
|
28
36
|
end
|
@@ -4,17 +4,17 @@ module NumbersAndWords
|
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
include NumbersAndWords::Translations::Extensions::FractionSignificance
|
6
6
|
|
7
|
-
def tens_with_ones
|
7
|
+
def tens_with_ones(numbers, options = {})
|
8
8
|
ones, tens = numbers
|
9
9
|
[t(:tens_with_ones)[tens], t([options[:prefix], :ones_with_tens].join('.'))[ones]].join ''
|
10
10
|
end
|
11
11
|
|
12
|
-
def hundreds
|
12
|
+
def hundreds(number, options = {})
|
13
13
|
options[:separator] = ''
|
14
14
|
super number, options
|
15
15
|
end
|
16
16
|
|
17
|
-
def micros
|
17
|
+
def micros(capacity, _number = nil, separator = '')
|
18
18
|
super capacity, nil, separator
|
19
19
|
end
|
20
20
|
end
|
@@ -3,11 +3,11 @@ module NumbersAndWords
|
|
3
3
|
class It < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
|
6
|
-
def tens_with_ones
|
7
|
-
super numbers, :
|
6
|
+
def tens_with_ones(numbers, _options = {})
|
7
|
+
super numbers, separator: ''
|
8
8
|
end
|
9
9
|
|
10
|
-
def hundreds
|
10
|
+
def hundreds(number, _options = {})
|
11
11
|
[[number], t(:hundreds)].join ' '
|
12
12
|
end
|
13
13
|
end
|
@@ -22,12 +22,12 @@ module NumbersAndWords
|
|
22
22
|
range: Range.new(0, 9, false),
|
23
23
|
name: :eighty,
|
24
24
|
multiplicative: 8
|
25
|
-
}
|
26
|
-
]
|
25
|
+
}
|
26
|
+
].freeze
|
27
27
|
|
28
|
-
def vigesimal_range
|
28
|
+
def vigesimal_range(number)
|
29
29
|
range = nil
|
30
|
-
TENS_VIGESIMAL_RANGES.each do|item|
|
30
|
+
TENS_VIGESIMAL_RANGES.each do |item|
|
31
31
|
if item[:range].include? number
|
32
32
|
range = item
|
33
33
|
break
|
@@ -37,20 +37,20 @@ module NumbersAndWords
|
|
37
37
|
range
|
38
38
|
end
|
39
39
|
|
40
|
-
def tens_with_ones
|
40
|
+
def tens_with_ones(numbers, _options = {})
|
41
41
|
range = vigesimal_range(numbers[1])
|
42
42
|
|
43
|
-
if numbers[1] - range[:multiplicative] > 0
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
minor = if numbers[1] - range[:multiplicative] > 0
|
44
|
+
teens(numbers)
|
45
|
+
else
|
46
|
+
ones(numbers[0])
|
47
|
+
end
|
48
48
|
|
49
49
|
[t([:partials, range[:name]].join('.')), minor].join ''
|
50
50
|
end
|
51
51
|
|
52
|
-
def hundreds
|
53
|
-
options[:prefix] ||=
|
52
|
+
def hundreds(number, options = {})
|
53
|
+
options[:prefix] ||= options[:only_hundreds] == true ? nil : :partials
|
54
54
|
|
55
55
|
parts = [t([options[:prefix], :one_hundred].join('.'))]
|
56
56
|
parts.unshift(ones(number, prefix: :partials)) if number > 1
|
@@ -58,7 +58,7 @@ module NumbersAndWords
|
|
58
58
|
parts.join ''
|
59
59
|
end
|
60
60
|
|
61
|
-
def megs
|
61
|
+
def megs(capacity, options = {})
|
62
62
|
if capacity == 1
|
63
63
|
t([options[:prefix], :one_thousand].join('.'))
|
64
64
|
elsif capacity == 2
|
@@ -3,16 +3,15 @@ module NumbersAndWords
|
|
3
3
|
class Lt < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
|
6
|
-
def tens
|
6
|
+
def tens(number, _options = {})
|
7
7
|
super(number)
|
8
8
|
end
|
9
9
|
|
10
|
-
def tens_with_ones
|
11
|
-
[tens(numbers[1], :
|
10
|
+
def tens_with_ones(numbers, _options = {})
|
11
|
+
[tens(numbers[1], alone: false), ones(numbers[0])].join ' '
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
def hundreds number, options = {}
|
14
|
+
def hundreds(number, options = {})
|
16
15
|
options[:is_hundred] = false if options[:is_hundred].nil?
|
17
16
|
options[:is_hundred] ? t(:one_hundred) : t(:hundreds)[number - 1]
|
18
17
|
end
|
@@ -3,16 +3,15 @@ module NumbersAndWords
|
|
3
3
|
class Lv < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
|
6
|
-
def tens
|
6
|
+
def tens(number, _options = {})
|
7
7
|
super(number)
|
8
8
|
end
|
9
9
|
|
10
|
-
def tens_with_ones
|
11
|
-
[tens(numbers[1], :
|
10
|
+
def tens_with_ones(numbers, _options = {})
|
11
|
+
[tens(numbers[1], alone: false), ones(numbers[0])].join ' '
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
def hundreds number, options = {}
|
14
|
+
def hundreds(number, options = {})
|
16
15
|
options[:is_hundred] = false if options[:is_hundred].nil?
|
17
16
|
options[:is_hundred] ? t(:one_hundred) : t(:hundreds)[number - 1]
|
18
17
|
end
|
@@ -3,12 +3,12 @@ module NumbersAndWords
|
|
3
3
|
class Nl < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
|
6
|
-
def tens_with_ones
|
6
|
+
def tens_with_ones(numbers, _options = {})
|
7
7
|
[ones(numbers[0]), tens(numbers[1])].join 'en'
|
8
8
|
end
|
9
9
|
|
10
|
-
def hundreds
|
11
|
-
|
10
|
+
def hundreds(number, _options = {})
|
11
|
+
number == 1 ? t(:hundreds) : [t(:ones)[number], t(:hundreds)].join
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -4,20 +4,20 @@ module NumbersAndWords
|
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
include NumbersAndWords::Translations::Extensions::FractionSignificance
|
6
6
|
|
7
|
-
def integral
|
8
|
-
t(:integral, :
|
7
|
+
def integral(number, _options = {})
|
8
|
+
t(:integral, count: number)
|
9
9
|
end
|
10
10
|
|
11
|
-
def zero
|
11
|
+
def zero(options = {})
|
12
12
|
t([options[:prefix], :ones, :male].join('.'))[0]
|
13
13
|
end
|
14
14
|
|
15
|
-
def ones
|
15
|
+
def ones(number, options = {})
|
16
16
|
return if options[:is_one_thousand]
|
17
17
|
t([options[:prefix], :ones, options[:gender]].join('.'))[number]
|
18
18
|
end
|
19
19
|
|
20
|
-
def tens
|
20
|
+
def tens(number, options = {})
|
21
21
|
options[:alone] = true if options[:alone].nil?
|
22
22
|
path = [options[:prefix], :tens]
|
23
23
|
path.push(options[:gender]) if ordinal? options
|
@@ -25,25 +25,25 @@ module NumbersAndWords
|
|
25
25
|
options[:alone] ? translated : "#{union} " + translated
|
26
26
|
end
|
27
27
|
|
28
|
-
def teens
|
28
|
+
def teens(number, options = {})
|
29
29
|
return [tens(1, options), ' ', ones(number[0], options)].join if ordinal? options
|
30
30
|
super(number, options)
|
31
31
|
end
|
32
32
|
|
33
|
-
def tens_with_ones
|
33
|
+
def tens_with_ones(numbers, options = {})
|
34
34
|
connector = ' '
|
35
|
-
connector = " #{union} "
|
35
|
+
connector = " #{union} " unless ordinal? options
|
36
36
|
[tens(numbers[1], options), connector, ones(numbers[0], options)].join
|
37
37
|
end
|
38
38
|
|
39
|
-
def hundreds
|
40
|
-
return t(:one_hundred) if options[:is_one_hundred]
|
39
|
+
def hundreds(number, options = {})
|
40
|
+
return t(:one_hundred) if options[:is_one_hundred] && !(ordinal? options)
|
41
41
|
translated = t([options[:prefix], :hundreds, options[:gender]].join('.'))[number - 1]
|
42
42
|
return translated if ordinal? options
|
43
43
|
options[:is_hundred] ? translated : translated + " #{union}"
|
44
44
|
end
|
45
45
|
|
46
|
-
def megs
|
46
|
+
def megs(capacity, options = {})
|
47
47
|
return t([options[:prefix], :mega, options[:gender]].join('.'))[capacity] if ordinal? options
|
48
48
|
|
49
49
|
options[:is_one] = false if options[:is_one].nil?
|
@@ -54,22 +54,22 @@ module NumbersAndWords
|
|
54
54
|
(options[:is_one] ? t(:mega)[capacity] : t(:megas)[capacity]) + suffix
|
55
55
|
end
|
56
56
|
|
57
|
-
def micros
|
57
|
+
def micros(capacity, number, separator = t('micro_prefix.separator'))
|
58
58
|
micro, prefix = capacity
|
59
|
-
micros = number ? t(micro(micro), :
|
60
|
-
[micro_prefix(prefix, number), micros].compact.join separator
|
59
|
+
micros = number ? t(micro(micro), count: number) : micro(micro)
|
60
|
+
[micro_prefix(prefix, number), micros].compact.join(" #{separator} ")
|
61
61
|
end
|
62
62
|
|
63
|
-
def micro_prefix
|
63
|
+
def micro_prefix(capacity, number)
|
64
64
|
case capacity
|
65
|
-
when 2 then t('micro_prefix.hundreds', :
|
66
|
-
when 1 then t('micro_prefix.tens', :
|
65
|
+
when 2 then t('micro_prefix.hundreds', count: number)
|
66
|
+
when 1 then t('micro_prefix.tens', count: number)
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
private
|
71
71
|
|
72
|
-
def ordinal?
|
72
|
+
def ordinal?(options)
|
73
73
|
options[:prefix] == :ordinal
|
74
74
|
end
|
75
75
|
end
|
@@ -3,25 +3,24 @@ module NumbersAndWords
|
|
3
3
|
class Pt < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
|
6
|
-
def tens
|
6
|
+
def tens(numbers, options = {})
|
7
7
|
options[:alone] = true if options[:alone].nil?
|
8
8
|
options[:alone] ? super(numbers) : "#{t(:union)} " + super(numbers)
|
9
9
|
end
|
10
10
|
|
11
|
-
def tens_with_ones
|
11
|
+
def tens_with_ones(numbers, _options = {})
|
12
12
|
[tens(numbers[1]), " #{t(:union)} ", ones(numbers[0])].join
|
13
13
|
end
|
14
14
|
|
15
|
-
def hundreds
|
15
|
+
def hundreds(number, options = {})
|
16
16
|
return t(:one_hundred) if options[:is_one_hundred]
|
17
17
|
options[:is_hundred] ? t(:hundreds)[number - 1] : t(:hundreds)[number - 1] + ' e'
|
18
18
|
end
|
19
19
|
|
20
|
-
def megs
|
20
|
+
def megs(capacity, options = {})
|
21
21
|
options[:is_one] = false if options[:is_one].nil?
|
22
22
|
options[:is_one] ? t(:mega)[capacity] : t(:megas)[capacity]
|
23
23
|
end
|
24
|
-
|
25
24
|
end
|
26
25
|
end
|
27
26
|
end
|
@@ -4,22 +4,22 @@ module NumbersAndWords
|
|
4
4
|
include NumbersAndWords::Translations::Families::Cyrillic
|
5
5
|
include NumbersAndWords::Translations::Extensions::FractionSignificance
|
6
6
|
|
7
|
-
def micros
|
7
|
+
def micros(capacity, number = nil, separator = ' ')
|
8
8
|
micro, prefix = capacity
|
9
|
-
micros = t(:micro, :
|
9
|
+
micros = t(:micro, count: number)[micro]
|
10
10
|
[micro_prefix(prefix), micros].compact.join separator
|
11
11
|
end
|
12
12
|
|
13
|
-
def micro_prefix
|
13
|
+
def micro_prefix(capacity)
|
14
14
|
case capacity
|
15
15
|
when 2 then t(:sub_micro)[2]
|
16
16
|
when 1 then t(:sub_micro)[1]
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
#def fraction_separator options = {}
|
20
|
+
# def fraction_separator options = {}
|
21
21
|
# super if options[:with_fractional_separator]
|
22
|
-
#end
|
22
|
+
# end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -3,8 +3,8 @@ module NumbersAndWords
|
|
3
3
|
class Se < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
|
6
|
-
def tens_with_ones
|
7
|
-
super numbers, :
|
6
|
+
def tens_with_ones(numbers, _options = {})
|
7
|
+
super numbers, separator: '-'
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -3,18 +3,17 @@ module NumbersAndWords
|
|
3
3
|
class Tr < Base
|
4
4
|
include NumbersAndWords::Translations::Families::Latin
|
5
5
|
|
6
|
-
def tens_with_ones
|
7
|
-
super numbers, :
|
6
|
+
def tens_with_ones(numbers, _options = {})
|
7
|
+
super numbers, separator: ' '
|
8
8
|
end
|
9
9
|
|
10
|
-
def hundreds
|
10
|
+
def hundreds(number, options = {})
|
11
11
|
if number == 1
|
12
12
|
[t([options[:prefix], :hundreds].join('.'))].join options[:separator] || ' '
|
13
13
|
else
|
14
14
|
[t(:ones)[number], t([options[:prefix], :hundreds].join('.'))].join options[:separator] || ' '
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|