numbers_and_words 0.11.4 → 0.11.9

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 (175) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +50 -10
  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 +5 -3
  11. data/lib/numbers_and_words/helper_classes/words_array.rb +4 -2
  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/locales/numbers.kz.yml +7 -0
  15. data/lib/numbers_and_words/i18n/pluralization.rb +3 -1
  16. data/lib/numbers_and_words/i18n/plurals/cs.rb +2 -0
  17. data/lib/numbers_and_words/i18n/plurals/fr.rb +2 -0
  18. data/lib/numbers_and_words/i18n/plurals/lt.rb +2 -0
  19. data/lib/numbers_and_words/i18n/plurals/lv.rb +2 -0
  20. data/lib/numbers_and_words/i18n/plurals/plurals.rb +2 -0
  21. data/lib/numbers_and_words/i18n/plurals/ru.rb +2 -0
  22. data/lib/numbers_and_words/i18n/plurals/ua.rb +2 -0
  23. data/lib/numbers_and_words/strategies.rb +2 -0
  24. data/lib/numbers_and_words/strategies/array_joiner.rb +2 -0
  25. data/lib/numbers_and_words/strategies/array_joiner/languages.rb +2 -0
  26. data/lib/numbers_and_words/strategies/array_joiner/languages/base.rb +2 -0
  27. data/lib/numbers_and_words/strategies/array_joiner/languages/cs.rb +2 -0
  28. data/lib/numbers_and_words/strategies/array_joiner/languages/en-GB.rb +2 -0
  29. data/lib/numbers_and_words/strategies/array_joiner/languages/en.rb +2 -0
  30. data/lib/numbers_and_words/strategies/array_joiner/languages/es.rb +2 -0
  31. data/lib/numbers_and_words/strategies/array_joiner/languages/families/base.rb +2 -0
  32. data/lib/numbers_and_words/strategies/array_joiner/languages/fr.rb +2 -0
  33. data/lib/numbers_and_words/strategies/array_joiner/languages/hu.rb +2 -0
  34. data/lib/numbers_and_words/strategies/array_joiner/languages/pt-BR.rb +2 -0
  35. data/lib/numbers_and_words/strategies/array_joiner/languages/ru.rb +2 -0
  36. data/lib/numbers_and_words/strategies/array_joiner/languages/ua.rb +2 -0
  37. data/lib/numbers_and_words/strategies/array_joiner/languages/vi.rb +2 -0
  38. data/lib/numbers_and_words/strategies/figures_converter.rb +4 -2
  39. data/lib/numbers_and_words/strategies/figures_converter/decorators.rb +2 -0
  40. data/lib/numbers_and_words/strategies/figures_converter/decorators/base.rb +2 -0
  41. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs.rb +2 -0
  42. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/base.rb +2 -0
  43. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/fractional.rb +2 -0
  44. data/lib/numbers_and_words/strategies/figures_converter/decorators/cs/integral.rb +3 -0
  45. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB.rb +2 -0
  46. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/base.rb +2 -0
  47. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/fractional.rb +2 -0
  48. data/lib/numbers_and_words/strategies/figures_converter/decorators/en-GB/integral.rb +2 -0
  49. data/lib/numbers_and_words/strategies/figures_converter/decorators/en.rb +2 -0
  50. data/lib/numbers_and_words/strategies/figures_converter/decorators/en/base.rb +2 -0
  51. data/lib/numbers_and_words/strategies/figures_converter/decorators/en/fractional.rb +2 -0
  52. data/lib/numbers_and_words/strategies/figures_converter/decorators/en/integral.rb +2 -0
  53. data/lib/numbers_and_words/strategies/figures_converter/decorators/es.rb +2 -0
  54. data/lib/numbers_and_words/strategies/figures_converter/decorators/es/base.rb +2 -0
  55. data/lib/numbers_and_words/strategies/figures_converter/decorators/es/fractional.rb +3 -1
  56. data/lib/numbers_and_words/strategies/figures_converter/decorators/es/integral.rb +2 -0
  57. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr.rb +2 -0
  58. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/base.rb +2 -0
  59. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/fractional.rb +2 -0
  60. data/lib/numbers_and_words/strategies/figures_converter/decorators/fr/integral.rb +2 -0
  61. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu.rb +2 -0
  62. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/base.rb +2 -0
  63. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/fractional.rb +2 -0
  64. data/lib/numbers_and_words/strategies/figures_converter/decorators/hu/integral.rb +2 -0
  65. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR.rb +2 -0
  66. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/base.rb +2 -0
  67. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/fractional.rb +2 -0
  68. data/lib/numbers_and_words/strategies/figures_converter/decorators/pt-BR/integral.rb +2 -0
  69. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru.rb +2 -0
  70. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/base.rb +2 -0
  71. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/fractional.rb +2 -0
  72. data/lib/numbers_and_words/strategies/figures_converter/decorators/ru/integral.rb +2 -0
  73. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua.rb +2 -0
  74. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/base.rb +2 -0
  75. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/fractional.rb +2 -0
  76. data/lib/numbers_and_words/strategies/figures_converter/decorators/ua/integral.rb +2 -0
  77. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi.rb +2 -0
  78. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi/base.rb +2 -0
  79. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi/fractional.rb +2 -0
  80. data/lib/numbers_and_words/strategies/figures_converter/decorators/vi/integral.rb +2 -0
  81. data/lib/numbers_and_words/strategies/figures_converter/languages.rb +3 -0
  82. data/lib/numbers_and_words/strategies/figures_converter/languages/base.rb +2 -0
  83. data/lib/numbers_and_words/strategies/figures_converter/languages/cs.rb +2 -0
  84. data/lib/numbers_and_words/strategies/figures_converter/languages/de.rb +2 -0
  85. data/lib/numbers_and_words/strategies/figures_converter/languages/en-GB.rb +2 -0
  86. data/lib/numbers_and_words/strategies/figures_converter/languages/en.rb +3 -7
  87. data/lib/numbers_and_words/strategies/figures_converter/languages/es.rb +11 -11
  88. data/lib/numbers_and_words/strategies/figures_converter/languages/et.rb +2 -0
  89. data/lib/numbers_and_words/strategies/figures_converter/languages/families/base.rb +2 -0
  90. data/lib/numbers_and_words/strategies/figures_converter/languages/families/cyrillic.rb +2 -0
  91. data/lib/numbers_and_words/strategies/figures_converter/languages/families/helpers.rb +2 -0
  92. data/lib/numbers_and_words/strategies/figures_converter/languages/fr.rb +2 -0
  93. data/lib/numbers_and_words/strategies/figures_converter/languages/hu.rb +2 -0
  94. data/lib/numbers_and_words/strategies/figures_converter/languages/hy.rb +2 -17
  95. data/lib/numbers_and_words/strategies/figures_converter/languages/it.rb +2 -0
  96. data/lib/numbers_and_words/strategies/figures_converter/languages/ka.rb +2 -0
  97. data/lib/numbers_and_words/strategies/figures_converter/languages/kz.rb +12 -0
  98. data/lib/numbers_and_words/strategies/figures_converter/languages/lt.rb +2 -0
  99. data/lib/numbers_and_words/strategies/figures_converter/languages/lv.rb +2 -0
  100. data/lib/numbers_and_words/strategies/figures_converter/languages/nl.rb +3 -3
  101. data/lib/numbers_and_words/strategies/figures_converter/languages/pt-BR.rb +9 -3
  102. data/lib/numbers_and_words/strategies/figures_converter/languages/pt.rb +2 -0
  103. data/lib/numbers_and_words/strategies/figures_converter/languages/ru.rb +2 -0
  104. data/lib/numbers_and_words/strategies/figures_converter/languages/se.rb +2 -0
  105. data/lib/numbers_and_words/strategies/figures_converter/languages/tr.rb +2 -0
  106. data/lib/numbers_and_words/strategies/figures_converter/languages/ua.rb +2 -0
  107. data/lib/numbers_and_words/strategies/figures_converter/languages/vi.rb +4 -0
  108. data/lib/numbers_and_words/strategies/figures_converter/options.rb +14 -1
  109. data/lib/numbers_and_words/strategies/figures_converter/options/base.rb +5 -0
  110. data/lib/numbers_and_words/strategies/figures_converter/options/base/gender.rb +30 -0
  111. data/lib/numbers_and_words/strategies/figures_converter/options/base/ordinal.rb +28 -0
  112. data/lib/numbers_and_words/strategies/figures_converter/options/base/remove_zero.rb +30 -0
  113. data/lib/numbers_and_words/strategies/figures_converter/options/cs.rb +2 -0
  114. data/lib/numbers_and_words/strategies/figures_converter/options/cs/gender.rb +3 -14
  115. data/lib/numbers_and_words/strategies/figures_converter/options/cs/ordinal.rb +3 -15
  116. data/lib/numbers_and_words/strategies/figures_converter/options/cs/remove_zero.rb +3 -17
  117. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB.rb +2 -0
  118. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/hundreds_with_union.rb +2 -0
  119. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/ordinal.rb +2 -0
  120. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/pronounced.rb +2 -0
  121. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/remove_hyphen.rb +2 -0
  122. data/lib/numbers_and_words/strategies/figures_converter/options/en-GB/remove_zero.rb +2 -0
  123. data/lib/numbers_and_words/strategies/figures_converter/options/en.rb +2 -0
  124. data/lib/numbers_and_words/strategies/figures_converter/options/en/hundreds_with_union.rb +2 -0
  125. data/lib/numbers_and_words/strategies/figures_converter/options/en/ordinal.rb +4 -11
  126. data/lib/numbers_and_words/strategies/figures_converter/options/en/pronounced.rb +6 -13
  127. data/lib/numbers_and_words/strategies/figures_converter/options/en/remove_hyphen.rb +2 -0
  128. data/lib/numbers_and_words/strategies/figures_converter/options/en/remove_zero.rb +3 -17
  129. data/lib/numbers_and_words/strategies/figures_converter/options/es.rb +2 -0
  130. data/lib/numbers_and_words/strategies/figures_converter/options/es/apocopated.rb +2 -0
  131. data/lib/numbers_and_words/strategies/figures_converter/options/es/gender.rb +3 -17
  132. data/lib/numbers_and_words/strategies/figures_converter/options/es/remove_zero.rb +3 -17
  133. data/lib/numbers_and_words/strategies/figures_converter/options/hu.rb +2 -0
  134. data/lib/numbers_and_words/strategies/figures_converter/options/hu/ordinal.rb +3 -50
  135. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR.rb +2 -0
  136. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/gender.rb +3 -18
  137. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/ordinal.rb +3 -15
  138. data/lib/numbers_and_words/strategies/figures_converter/options/pt-BR/remove_zero.rb +3 -17
  139. data/lib/numbers_and_words/strategies/figures_converter/options/ru.rb +2 -0
  140. data/lib/numbers_and_words/strategies/figures_converter/options/ru/gender.rb +3 -17
  141. data/lib/numbers_and_words/strategies/figures_converter/options/ua.rb +2 -0
  142. data/lib/numbers_and_words/strategies/figures_converter/options/ua/gender.rb +3 -17
  143. data/lib/numbers_and_words/translations.rb +3 -0
  144. data/lib/numbers_and_words/translations/base.rb +3 -1
  145. data/lib/numbers_and_words/translations/cs.rb +2 -0
  146. data/lib/numbers_and_words/translations/de.rb +2 -0
  147. data/lib/numbers_and_words/translations/en-GB.rb +2 -0
  148. data/lib/numbers_and_words/translations/en.rb +2 -0
  149. data/lib/numbers_and_words/translations/es.rb +10 -5
  150. data/lib/numbers_and_words/translations/et.rb +2 -0
  151. data/lib/numbers_and_words/translations/extensions/fraction_significance.rb +2 -0
  152. data/lib/numbers_and_words/translations/families/base.rb +2 -0
  153. data/lib/numbers_and_words/translations/families/cyrillic.rb +2 -0
  154. data/lib/numbers_and_words/translations/families/latin.rb +2 -0
  155. data/lib/numbers_and_words/translations/fr.rb +9 -7
  156. data/lib/numbers_and_words/translations/hu.rb +2 -0
  157. data/lib/numbers_and_words/translations/hy.rb +2 -0
  158. data/lib/numbers_and_words/translations/it.rb +2 -0
  159. data/lib/numbers_and_words/translations/ka.rb +3 -1
  160. data/lib/numbers_and_words/translations/kz.rb +9 -0
  161. data/lib/numbers_and_words/translations/lt.rb +2 -0
  162. data/lib/numbers_and_words/translations/lv.rb +2 -0
  163. data/lib/numbers_and_words/translations/nl.rb +3 -0
  164. data/lib/numbers_and_words/translations/pt-BR.rb +9 -2
  165. data/lib/numbers_and_words/translations/pt.rb +3 -0
  166. data/lib/numbers_and_words/translations/ru.rb +2 -0
  167. data/lib/numbers_and_words/translations/se.rb +2 -0
  168. data/lib/numbers_and_words/translations/tr.rb +2 -0
  169. data/lib/numbers_and_words/translations/ua.rb +2 -0
  170. data/lib/numbers_and_words/translations/vi.rb +5 -2
  171. data/lib/numbers_and_words/version.rb +3 -1
  172. data/lib/numbers_and_words/wrappers.rb +2 -0
  173. data/lib/numbers_and_words/wrappers/float.rb +3 -1
  174. data/lib/numbers_and_words/wrappers/integer.rb +2 -0
  175. metadata +28 -22
@@ -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
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -1,25 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
4
6
  module Languages
5
7
  class Hy < Base
6
- def capacity_iteration
7
- words = []
8
- capacity_words = words_in_capacity(@current_capacity)
9
- words.push(megs) unless capacity_words.empty?
10
- words += capacity_words unless thousand? && one?
11
- words
12
- end
13
-
14
- private
15
-
16
- def one?
17
- words_in_capacity(@current_capacity) == [translations.ones(1)]
18
- end
19
-
20
- def thousand?
21
- FiguresArray::THOUSAND_CAPACITY <= @current_capacity
22
- end
23
8
  end
24
9
  end
25
10
  end
@@ -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
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NumbersAndWords
4
+ module Strategies
5
+ module FiguresConverter
6
+ module Languages
7
+ class Kz < Base
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -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
@@ -9,10 +11,8 @@ module NumbersAndWords
9
11
 
10
12
  def capacity_iteration
11
13
  if FiguresArray::THOUSAND_CAPACITY == @current_capacity
12
- words = []
13
14
  capacity_words = words_in_capacity(@current_capacity)
14
- words.push megs unless capacity_words.empty?
15
- capacity_words.empty? ? [] : [capacity_words, words].join
15
+ capacity_words.empty? ? [] : [capacity_words, megs].join
16
16
  else
17
17
  super
18
18
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NumbersAndWords
2
4
  module Strategies
3
5
  module FiguresConverter
@@ -56,8 +58,7 @@ module NumbersAndWords
56
58
  def gender
57
59
  return (options.gender.result || :male) if maybe_ordinal
58
60
 
59
- @current_capacity ||= 0
60
- if @current_capacity > 0 && figures[0] == 1
61
+ if current_capacity&.positive? && figures[0] == 1
61
62
  :male
62
63
  else
63
64
  options.gender.result
@@ -77,7 +78,10 @@ module NumbersAndWords
77
78
  end
78
79
 
79
80
  def one_thousand?
80
- current_capacity == 1 && figures[0] == 1 && figures.hundreds.nil? && figures.tens.nil?
81
+ current_capacity == 1 &&
82
+ figures.ones == 1 &&
83
+ figures.tens.nil? &&
84
+ figures.hundreds.nil?
81
85
  end
82
86
 
83
87
  def without_connector?
@@ -86,11 +90,13 @@ module NumbersAndWords
86
90
  (figures.tens_with_ones ||
87
91
  figures.tens ||
88
92
  figures.ones)
93
+
89
94
  false
90
95
  end
91
96
 
92
97
  def with_comma?
93
98
  return false unless @current_capacity > 1
99
+
94
100
  # if any lower capacity is single word, in portuguese only tens are single words
95
101
  number_under_capacity = figures.number_under_capacity(@current_capacity)
96
102
  return false if number_under_capacity < 20
@@ -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
  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