numbers_and_words 0.11.5 → 0.11.6

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.
Files changed (172) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +1 -3
  3. data/lib/numbers_and_words.rb +2 -0
  4. data/lib/numbers_and_words/core_ext.rb +2 -0
  5. data/lib/numbers_and_words/core_ext/array.rb +2 -0
  6. data/lib/numbers_and_words/core_ext/float.rb +2 -0
  7. data/lib/numbers_and_words/core_ext/integer.rb +2 -0
  8. data/lib/numbers_and_words/helper_classes.rb +2 -0
  9. data/lib/numbers_and_words/helper_classes/array_extensions/helpers.rb +6 -4
  10. data/lib/numbers_and_words/helper_classes/figures_array.rb +2 -0
  11. data/lib/numbers_and_words/helper_classes/words_array.rb +2 -0
  12. data/lib/numbers_and_words/i18n.rb +2 -0
  13. data/lib/numbers_and_words/i18n/initialization.rb +2 -0
  14. data/lib/numbers_and_words/i18n/pluralization.rb +2 -0
  15. data/lib/numbers_and_words/i18n/plurals/cs.rb +2 -0
  16. data/lib/numbers_and_words/i18n/plurals/fr.rb +2 -0
  17. data/lib/numbers_and_words/i18n/plurals/lt.rb +2 -0
  18. data/lib/numbers_and_words/i18n/plurals/lv.rb +2 -0
  19. data/lib/numbers_and_words/i18n/plurals/plurals.rb +2 -0
  20. data/lib/numbers_and_words/i18n/plurals/ru.rb +2 -0
  21. data/lib/numbers_and_words/i18n/plurals/ua.rb +2 -0
  22. data/lib/numbers_and_words/strategies.rb +2 -0
  23. data/lib/numbers_and_words/strategies/array_joiner.rb +2 -0
  24. data/lib/numbers_and_words/strategies/array_joiner/languages.rb +2 -0
  25. data/lib/numbers_and_words/strategies/array_joiner/languages/base.rb +2 -0
  26. data/lib/numbers_and_words/strategies/array_joiner/languages/cs.rb +2 -0
  27. data/lib/numbers_and_words/strategies/array_joiner/languages/en-GB.rb +2 -0
  28. data/lib/numbers_and_words/strategies/array_joiner/languages/en.rb +2 -0
  29. data/lib/numbers_and_words/strategies/array_joiner/languages/es.rb +2 -0
  30. data/lib/numbers_and_words/strategies/array_joiner/languages/families/base.rb +2 -0
  31. data/lib/numbers_and_words/strategies/array_joiner/languages/fr.rb +2 -0
  32. data/lib/numbers_and_words/strategies/array_joiner/languages/hu.rb +2 -0
  33. data/lib/numbers_and_words/strategies/array_joiner/languages/pt-BR.rb +2 -0
  34. data/lib/numbers_and_words/strategies/array_joiner/languages/ru.rb +2 -0
  35. data/lib/numbers_and_words/strategies/array_joiner/languages/ua.rb +2 -0
  36. data/lib/numbers_and_words/strategies/array_joiner/languages/vi.rb +2 -0
  37. data/lib/numbers_and_words/strategies/figures_converter.rb +2 -0
  38. data/lib/numbers_and_words/strategies/figures_converter/decorators.rb +2 -0
  39. data/lib/numbers_and_words/strategies/figures_converter/decorators/base.rb +2 -0
  40. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs.rb +2 -0
  41. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/base.rb +2 -0
  42. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/fractional.rb +2 -0
  43. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/integral.rb +3 -0
  44. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB.rb +2 -0
  45. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/base.rb +2 -0
  46. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/fractional.rb +2 -0
  47. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/integral.rb +2 -0
  48. data/lib/numbers_and_words/strategies/figures_converter/decorators/en.rb +2 -0
  49. data/lib/numbers_and_words/strategies/figures_converter/decorators/en/base.rb +2 -0
  50. data/lib/numbers_and_words/strategies/figures_converter/decorators/en/fractional.rb +2 -0
  51. data/lib/numbers_and_words/strategies/figures_converter/decorators/en/integral.rb +2 -0
  52. data/lib/numbers_and_words/strategies/figures_converter/decorators/es.rb +2 -0
  53. data/lib/numbers_and_words/strategies/figures_converter/decorators/es/base.rb +2 -0
  54. data/lib/numbers_and_words/strategies/figures_converter/decorators/es/fractional.rb +3 -1
  55. data/lib/numbers_and_words/strategies/figures_converter/decorators/es/integral.rb +2 -0
  56. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr.rb +2 -0
  57. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/base.rb +2 -0
  58. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/fractional.rb +2 -0
  59. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/integral.rb +2 -0
  60. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu.rb +2 -0
  61. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/base.rb +2 -0
  62. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/fractional.rb +2 -0
  63. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/integral.rb +2 -0
  64. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR.rb +2 -0
  65. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/base.rb +2 -0
  66. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/fractional.rb +2 -0
  67. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/integral.rb +2 -0
  68. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru.rb +2 -0
  69. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/base.rb +2 -0
  70. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/fractional.rb +2 -0
  71. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/integral.rb +2 -0
  72. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua.rb +2 -0
  73. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/base.rb +2 -0
  74. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/fractional.rb +2 -0
  75. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/integral.rb +2 -0
  76. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi.rb +2 -0
  77. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi/base.rb +2 -0
  78. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi/fractional.rb +2 -0
  79. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi/integral.rb +2 -0
  80. data/lib/numbers_and_words/strategies/figures_converter/languages.rb +2 -0
  81. data/lib/numbers_and_words/strategies/figures_converter/languages/base.rb +2 -0
  82. data/lib/numbers_and_words/strategies/figures_converter/languages/cs.rb +2 -0
  83. data/lib/numbers_and_words/strategies/figures_converter/languages/de.rb +2 -0
  84. data/lib/numbers_and_words/strategies/figures_converter/languages/en-GB.rb +2 -0
  85. data/lib/numbers_and_words/strategies/figures_converter/languages/en.rb +3 -7
  86. data/lib/numbers_and_words/strategies/figures_converter/languages/es.rb +11 -11
  87. data/lib/numbers_and_words/strategies/figures_converter/languages/et.rb +2 -0
  88. data/lib/numbers_and_words/strategies/figures_converter/languages/families/base.rb +2 -0
  89. data/lib/numbers_and_words/strategies/figures_converter/languages/families/cyrillic.rb +2 -0
  90. data/lib/numbers_and_words/strategies/figures_converter/languages/families/helpers.rb +2 -0
  91. data/lib/numbers_and_words/strategies/figures_converter/languages/fr.rb +2 -0
  92. data/lib/numbers_and_words/strategies/figures_converter/languages/hu.rb +2 -0
  93. data/lib/numbers_and_words/strategies/figures_converter/languages/hy.rb +2 -0
  94. data/lib/numbers_and_words/strategies/figures_converter/languages/it.rb +2 -0
  95. data/lib/numbers_and_words/strategies/figures_converter/languages/ka.rb +2 -0
  96. data/lib/numbers_and_words/strategies/figures_converter/languages/lt.rb +2 -0
  97. data/lib/numbers_and_words/strategies/figures_converter/languages/lv.rb +2 -0
  98. data/lib/numbers_and_words/strategies/figures_converter/languages/nl.rb +3 -3
  99. data/lib/numbers_and_words/strategies/figures_converter/languages/pt-BR.rb +9 -3
  100. data/lib/numbers_and_words/strategies/figures_converter/languages/pt.rb +2 -0
  101. data/lib/numbers_and_words/strategies/figures_converter/languages/ru.rb +2 -0
  102. data/lib/numbers_and_words/strategies/figures_converter/languages/se.rb +2 -0
  103. data/lib/numbers_and_words/strategies/figures_converter/languages/tr.rb +2 -0
  104. data/lib/numbers_and_words/strategies/figures_converter/languages/ua.rb +2 -0
  105. data/lib/numbers_and_words/strategies/figures_converter/languages/vi.rb +4 -0
  106. data/lib/numbers_and_words/strategies/figures_converter/options.rb +14 -1
  107. data/lib/numbers_and_words/strategies/figures_converter/options/base.rb +5 -0
  108. data/lib/numbers_and_words/strategies/figures_converter/options/base/gender.rb +30 -0
  109. data/lib/numbers_and_words/strategies/figures_converter/options/base/ordinal.rb +28 -0
  110. data/lib/numbers_and_words/strategies/figures_converter/options/base/remove_zero.rb +30 -0
  111. data/lib/numbers_and_words/strategies/figures_converter/options/cs.rb +2 -0
  112. data/lib/numbers_and_words/strategies/figures_converter/options/cs/gender.rb +3 -14
  113. data/lib/numbers_and_words/strategies/figures_converter/options/cs/ordinal.rb +3 -15
  114. data/lib/numbers_and_words/strategies/figures_converter/options/cs/remove_zero.rb +3 -17
  115. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB.rb +2 -0
  116. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/hundreds_with_union.rb +2 -0
  117. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/ordinal.rb +2 -0
  118. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/pronounced.rb +2 -0
  119. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/remove_hyphen.rb +2 -0
  120. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/remove_zero.rb +2 -0
  121. data/lib/numbers_and_words/strategies/figures_converter/options/en.rb +2 -0
  122. data/lib/numbers_and_words/strategies/figures_converter/options/en/hundreds_with_union.rb +2 -0
  123. data/lib/numbers_and_words/strategies/figures_converter/options/en/ordinal.rb +3 -10
  124. data/lib/numbers_and_words/strategies/figures_converter/options/en/pronounced.rb +6 -13
  125. data/lib/numbers_and_words/strategies/figures_converter/options/en/remove_hyphen.rb +2 -0
  126. data/lib/numbers_and_words/strategies/figures_converter/options/en/remove_zero.rb +3 -17
  127. data/lib/numbers_and_words/strategies/figures_converter/options/es.rb +2 -0
  128. data/lib/numbers_and_words/strategies/figures_converter/options/es/apocopated.rb +2 -0
  129. data/lib/numbers_and_words/strategies/figures_converter/options/es/gender.rb +3 -17
  130. data/lib/numbers_and_words/strategies/figures_converter/options/es/remove_zero.rb +3 -17
  131. data/lib/numbers_and_words/strategies/figures_converter/options/hu.rb +2 -0
  132. data/lib/numbers_and_words/strategies/figures_converter/options/hu/ordinal.rb +3 -50
  133. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR.rb +2 -0
  134. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/gender.rb +3 -18
  135. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/ordinal.rb +3 -15
  136. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/remove_zero.rb +3 -17
  137. data/lib/numbers_and_words/strategies/figures_converter/options/ru.rb +2 -0
  138. data/lib/numbers_and_words/strategies/figures_converter/options/ru/gender.rb +3 -17
  139. data/lib/numbers_and_words/strategies/figures_converter/options/ua.rb +2 -0
  140. data/lib/numbers_and_words/strategies/figures_converter/options/ua/gender.rb +3 -17
  141. data/lib/numbers_and_words/translations.rb +2 -0
  142. data/lib/numbers_and_words/translations/base.rb +2 -0
  143. data/lib/numbers_and_words/translations/cs.rb +2 -0
  144. data/lib/numbers_and_words/translations/de.rb +2 -0
  145. data/lib/numbers_and_words/translations/en-GB.rb +2 -0
  146. data/lib/numbers_and_words/translations/en.rb +2 -0
  147. data/lib/numbers_and_words/translations/es.rb +10 -5
  148. data/lib/numbers_and_words/translations/et.rb +2 -0
  149. data/lib/numbers_and_words/translations/extensions/fraction_significance.rb +2 -0
  150. data/lib/numbers_and_words/translations/families/base.rb +2 -0
  151. data/lib/numbers_and_words/translations/families/cyrillic.rb +2 -0
  152. data/lib/numbers_and_words/translations/families/latin.rb +2 -0
  153. data/lib/numbers_and_words/translations/fr.rb +9 -7
  154. data/lib/numbers_and_words/translations/hu.rb +2 -0
  155. data/lib/numbers_and_words/translations/hy.rb +2 -0
  156. data/lib/numbers_and_words/translations/it.rb +2 -0
  157. data/lib/numbers_and_words/translations/ka.rb +3 -1
  158. data/lib/numbers_and_words/translations/lt.rb +2 -0
  159. data/lib/numbers_and_words/translations/lv.rb +2 -0
  160. data/lib/numbers_and_words/translations/nl.rb +3 -0
  161. data/lib/numbers_and_words/translations/pt-BR.rb +9 -2
  162. data/lib/numbers_and_words/translations/pt.rb +3 -0
  163. data/lib/numbers_and_words/translations/ru.rb +2 -0
  164. data/lib/numbers_and_words/translations/se.rb +2 -0
  165. data/lib/numbers_and_words/translations/tr.rb +2 -0
  166. data/lib/numbers_and_words/translations/ua.rb +2 -0
  167. data/lib/numbers_and_words/translations/vi.rb +5 -2
  168. data/lib/numbers_and_words/version.rb +3 -1
  169. data/lib/numbers_and_words/wrappers.rb +2 -0
  170. data/lib/numbers_and_words/wrappers/float.rb +3 -1
  171. data/lib/numbers_and_words/wrappers/integer.rb +2 -0
  172. metadata +7 -4
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -69,6 +71,7 @@ module NumbersAndWords
69
71
 
70
72
  def fraction_length
71
73
  return 0 unless @options.options[:fractional]
74
+
72
75
  @options.options[:fractional][:length]
73
76
  end
74
77
 
@@ -82,6 +85,7 @@ module NumbersAndWords
82
85
  parts.insert(-1, billion_unit).join(' ')
83
86
  else
84
87
  return value if parts.size <= 2
88
+
85
89
  parts.insert(-2, billion_unit).join(' ')
86
90
  end
87
91
  end
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'numbers_and_words/strategies/figures_converter/options/base'
1
4
  require 'numbers_and_words/strategies/figures_converter/options/en'
2
5
  require 'numbers_and_words/strategies/figures_converter/options/en-GB'
3
6
  require 'numbers_and_words/strategies/figures_converter/options/es'
@@ -20,11 +23,21 @@ module NumbersAndWords
20
23
  end
21
24
 
22
25
  def method_missing(method_name, *args, &block)
23
- Object.const_get(proxy_class_name(method_name)).new self, args, block
26
+ method = Object.const_get(proxy_class_name(method_name))
27
+
28
+ if method
29
+ method.new(self, args, block)
30
+ else
31
+ super
32
+ end
24
33
  rescue NameError
25
34
  nil
26
35
  end
27
36
 
37
+ def respond_to_missing?(method_name, include_private = false)
38
+ Object.const_get(proxy_class_name(method_name)) || super
39
+ end
40
+
28
41
  private
29
42
 
30
43
  def proxy_class_name(method_name)
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'numbers_and_words/strategies/figures_converter/options/base/gender'
4
+ require 'numbers_and_words/strategies/figures_converter/options/base/ordinal'
5
+ require 'numbers_and_words/strategies/figures_converter/options/base/remove_zero'
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NumbersAndWords
4
+ module Strategies
5
+ module FiguresConverter
6
+ module Options
7
+ module Base
8
+ class Gender
9
+ attr_accessor :strategy, :options
10
+
11
+ def initialize(proxy, *_args)
12
+ @strategy = proxy.strategy
13
+ @options = proxy.options
14
+ end
15
+
16
+ def result
17
+ active? ? @options[:gender].to_sym : :male
18
+ end
19
+
20
+ private
21
+
22
+ def active?
23
+ @options[:gender]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NumbersAndWords
4
+ module Strategies
5
+ module FiguresConverter
6
+ module Options
7
+ module Base
8
+ class Ordinal
9
+ def initialize(proxy, *_args)
10
+ @strategy = proxy.strategy
11
+ @options = proxy.options
12
+ end
13
+
14
+ def result
15
+ return :ordinal if active?
16
+ end
17
+
18
+ private
19
+
20
+ def active?
21
+ @options[:ordinal]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NumbersAndWords
4
+ module Strategies
5
+ module FiguresConverter
6
+ module Options
7
+ module Base
8
+ class RemoveZero
9
+ attr_accessor :strategy, :options
10
+
11
+ def initialize(proxy, *_args)
12
+ @strategy = proxy.strategy
13
+ @options = proxy.options
14
+ end
15
+
16
+ def result
17
+ active?
18
+ end
19
+
20
+ private
21
+
22
+ def active?
23
+ @options[:remove_zero]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'numbers_and_words/strategies/figures_converter/options/cs/gender'
2
4
  require 'numbers_and_words/strategies/figures_converter/options/cs/remove_zero'
3
5
  require 'numbers_and_words/strategies/figures_converter/options/cs/ordinal'
@@ -1,25 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Options
5
7
  module Cs
6
- class Gender
7
- attr_accessor :strategy, :options
8
-
9
- def initialize(proxy, *_args)
10
- @strategy = proxy.strategy
11
- @options = proxy.options
12
- end
13
-
8
+ class Gender < Base::Gender
14
9
  def result
15
10
  active? ? @options[:gender].to_sym : :female
16
11
  end
17
-
18
- private
19
-
20
- def active?
21
- @options[:gender]
22
- end
23
12
  end
24
13
  end
25
14
  end
@@ -1,23 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Options
5
7
  module Cs
6
- class Ordinal
7
- def initialize(proxy, *_args)
8
- @strategy = proxy.strategy
9
- @options = proxy.options
10
- end
11
-
12
- def result
13
- return :ordinal if active?
14
- end
15
-
16
- private
17
-
18
- def active?
19
- @options[:ordinal]
20
- end
8
+ class Ordinal < Base::Ordinal
21
9
  end
22
10
  end
23
11
  end
@@ -1,25 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Options
5
7
  module Cs
6
- class RemoveZero
7
- attr_accessor :strategy, :options
8
-
9
- def initialize(proxy, *_args)
10
- @strategy = proxy.strategy
11
- @options = proxy.options
12
- end
13
-
14
- def result
15
- active?
16
- end
17
-
18
- private
19
-
20
- def active?
21
- @options[:remove_zero]
22
- end
8
+ class RemoveZero < Base::RemoveZero
23
9
  end
24
10
  end
25
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'numbers_and_words/strategies/figures_converter/options/en-GB/hundreds_with_union'
2
4
  require 'numbers_and_words/strategies/figures_converter/options/en-GB/remove_hyphen'
3
5
  require 'numbers_and_words/strategies/figures_converter/options/en-GB/ordinal'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'numbers_and_words/strategies/figures_converter/options/en/hundreds_with_union'
2
4
  require 'numbers_and_words/strategies/figures_converter/options/en/remove_hyphen'
3
5
  require 'numbers_and_words/strategies/figures_converter/options/en/ordinal'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,18 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Options
5
7
  module En
6
- class Ordinal
8
+ class Ordinal < Base::Ordinal
7
9
  ZERO_TYPE = :zero
8
10
  HUNDRED_TYPE = :hundreds
9
11
  MEGS_TYPE = :megs
10
12
 
11
- def initialize(proxy, *_args)
12
- @strategy = proxy.strategy
13
- @options = proxy.options
14
- end
15
-
16
13
  def result(type)
17
14
  @type = type
18
15
  MEGS_TYPE != type ? check_simple_numbers : check_megs_numbers
@@ -20,10 +17,6 @@ module NumbersAndWords
20
17
 
21
18
  private
22
19
 
23
- def active?
24
- @options[:ordinal]
25
- end
26
-
27
20
  def check_simple_numbers
28
21
  :ordinal if simple_numbers_condition && active?
29
22
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -45,19 +47,10 @@ module NumbersAndWords
45
47
 
46
48
  def tens_with_oh(language, figures)
47
49
  units, tens = *figures.to_a.dup
48
- result = []
49
- if tens.zero?
50
- if units.zero?
51
- result.push 'hundred'
52
- else
53
- result.push language.ones
54
- result.push 'oh'
55
- end
56
- elsif figures.teens
57
- result.push language.teens
58
- elsif figures.tens
59
- result.push language.complex_tens
60
- end
50
+ return (units.zero? ? ['hundred'] : [language.ones, 'oh']) if tens.zero?
51
+ return [language.teens] if figures.teens
52
+
53
+ [language.complex_tens]
61
54
  end
62
55
  end
63
56
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,25 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Options
5
7
  module En
6
- class RemoveZero
7
- attr_accessor :strategy, :options
8
-
9
- def initialize(proxy, *_args)
10
- @strategy = proxy.strategy
11
- @options = proxy.options
12
- end
13
-
14
- def result
15
- active?
16
- end
17
-
18
- private
19
-
20
- def active?
21
- @options[:remove_zero]
22
- end
8
+ class RemoveZero < Base::RemoveZero
23
9
  end
24
10
  end
25
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'numbers_and_words/strategies/figures_converter/options/es/apocopated'
2
4
  require 'numbers_and_words/strategies/figures_converter/options/es/gender'
3
5
  require 'numbers_and_words/strategies/figures_converter/options/es/remove_zero'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,25 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Options
5
7
  module Es
6
- class Gender
7
- attr_accessor :strategy, :options
8
-
9
- def initialize(proxy, *_args)
10
- @strategy = proxy.strategy
11
- @options = proxy.options
12
- end
13
-
14
- def result
15
- active? ? @options[:gender].to_sym : :male
16
- end
17
-
18
- private
19
-
20
- def active?
21
- @options[:gender]
22
- end
8
+ class Gender < Base::Gender
23
9
  end
24
10
  end
25
11
  end
@@ -1,25 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Options
5
7
  module Es
6
- class RemoveZero
7
- attr_accessor :strategy, :options
8
-
9
- def initialize(proxy, *_args)
10
- @strategy = proxy.strategy
11
- @options = proxy.options
12
- end
13
-
14
- def result
15
- active?
16
- end
17
-
18
- private
19
-
20
- def active?
21
- @options[:remove_zero]
22
- end
8
+ class RemoveZero < Base::RemoveZero
23
9
  end
24
10
  end
25
11
  end