num_words 0.6.0 → 0.7.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.
- checksums.yaml +4 -4
- data/lib/num_words/converter.rb +21 -12
- data/lib/num_words/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0704aa1beffbb9b928b9e2430f73dddffb0de283d0d008a09ab385e1df828d92
|
4
|
+
data.tar.gz: 8298622791967a587e816e38b9b15df7f916d50d59e18609d90106b3b98ea650
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 678c4767f6bbbbe28bc8b4b30785ef6c439971769014c595da1307f7f33ffc986bc86ea3cecbeae257d1620c854db4ae6dcb2b60d516a927a3ab4664ee909d5e
|
7
|
+
data.tar.gz: af84cb1f4809f7c2d3b2a214801771067b2f8191aa815d7477d26ef7a75099213fe50189fc734aef01c92cd688bddcf2d86530937773e4fe294645deacb65673
|
data/lib/num_words/converter.rb
CHANGED
@@ -37,20 +37,29 @@ module NumWords
|
|
37
37
|
}.freeze
|
38
38
|
|
39
39
|
class << self
|
40
|
-
# Convert number to words
|
40
|
+
# Convert number to words (supports decimals)
|
41
41
|
# Default language: :en
|
42
42
|
def to_words(number, country: :us, language: :en, include_and: true)
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
if country == :in
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
43
|
+
return language == :hi ? HINDI_NUMBERS_1_TO_99[0] : 'zero' if number.to_f.zero?
|
44
|
+
|
45
|
+
integer_part, decimal_part = number.to_s.split('.')
|
46
|
+
integer_words = if country == :in
|
47
|
+
language == :hi ? to_words_indian(integer_part.to_i) : to_words_indian(integer_part.to_i, language: :en)
|
48
|
+
else
|
49
|
+
exp_hash = COUNTRY_EXPONENTS[country] || AM_EXPONENTS
|
50
|
+
ones_array = language == :hi ? HINDI_NUMBERS_1_TO_99 : ONES_EN
|
51
|
+
tens_array = language == :hi ? HINDI_NUMBERS_1_TO_99 : TENS_EN
|
52
|
+
to_words_generic(integer_part.to_i, exp_hash, include_and, ones_array, tens_array)
|
53
|
+
end
|
54
|
+
|
55
|
+
return integer_words if decimal_part.nil? || decimal_part.to_i.zero?
|
56
|
+
|
57
|
+
decimal_words = decimal_part.chars.map do |d|
|
58
|
+
language == :hi ? HINDI_NUMBERS_1_TO_99[d.to_i] : ONES_EN[d.to_i]
|
59
|
+
end.join(' ')
|
60
|
+
|
61
|
+
connector = language == :hi ? 'अंक' : 'point'
|
62
|
+
"#{integer_words} #{connector} #{decimal_words}"
|
54
63
|
end
|
55
64
|
|
56
65
|
# Indian system (supports English & Hindi)
|
data/lib/num_words/version.rb
CHANGED