number_read_out 0.0.2 → 0.0.3
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/README.md +1 -1
- data/lib/number_read_out/version.rb +1 -1
- data/lib/number_read_out.rb +9 -2
- data/number_read_out.gemspec +3 -1
- metadata +45 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0039e7076e3762eafc49f0164c4de8a7ea67a1e3'
|
4
|
+
data.tar.gz: 409390a9cfbeb649b5b3b5d41ee5f0a0f736ac6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ada0ccaaa300a72b2cacc0fa18f758dc5596e5bbaa24e57a1349de9eea469ee41f40ad3e35ea5e4dffd635dd33c9c011f3e42c3dcaf7208cd97b139941928dc
|
7
|
+
data.tar.gz: cc1dfa53784855b719d50e74ba38b729c9881a171cd5886edce7bbb1cba9d57d8ccbea4ac98932bc4ead81a311631ae395e29144d6212d14f01ffc607766c3a5
|
data/README.md
CHANGED
@@ -59,7 +59,7 @@ or in Geek drachmas:
|
|
59
59
|
|
60
60
|
### Caveats
|
61
61
|
|
62
|
-
For _now_ only positive currencies for up to two decimal digits are supported. Additional decimal digits are
|
62
|
+
For _now_ only positive currencies for up to two decimal digits are supported. Additional decimal digits are truncated.
|
63
63
|
|
64
64
|
## Development
|
65
65
|
|
data/lib/number_read_out.rb
CHANGED
@@ -2,6 +2,8 @@ require "number_read_out/version"
|
|
2
2
|
|
3
3
|
module NumberReadOut
|
4
4
|
|
5
|
+
|
6
|
+
|
5
7
|
SpokenNumbers = {en: {male: {hundreds: ['ONE HUNDRED', 'ONE HUNDRED', 'TWO HUNDRED', 'THREE HUNDRED', 'FOUR HUNDRED', 'FIVE HUNDRED', 'SIX HUNDRED', 'SEVEN HUNDRED', 'EIGHT HUNDRED', 'NINE HUNDRED'],
|
6
8
|
dozens: ['', 'TEN', 'TWENTY', 'THIRTY', 'FORTY', 'FIFTY', 'SIXTY', 'SEVENTY', 'EIGHT', 'NINETY','TEN', 'ELEVEN', 'TWELVE', 'THIRTEEN', 'FOURTEEN', 'FIFTEEN', 'SIXTEEN', 'SEVENTEEN', 'EIGHTEEN', 'NINETEEN'],
|
7
9
|
monads: ['', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE'],
|
@@ -32,6 +34,7 @@ module NumberReadOut
|
|
32
34
|
PartOfNumber = [:hundreds, :thousands, :millions, :billions, :trillions, :quadrillions]
|
33
35
|
|
34
36
|
def self.decimal_part_to_text(douplet,currency = :euro,lang = :gr)
|
37
|
+
|
35
38
|
return '' if douplet == 0
|
36
39
|
|
37
40
|
raise ArgumentError.new("Wrong douplet #{douplet}") if douplet > 99
|
@@ -49,6 +52,7 @@ module NumberReadOut
|
|
49
52
|
end
|
50
53
|
textual + ' ' +( SpokenCurrencies[lang][currency][douplet == 1 ? 1:2] )
|
51
54
|
end
|
55
|
+
private_class_method :decimal_part_to_text
|
52
56
|
|
53
57
|
def self.triplet_to_text(
|
54
58
|
triplet,
|
@@ -100,6 +104,8 @@ module NumberReadOut
|
|
100
104
|
textual
|
101
105
|
|
102
106
|
end
|
107
|
+
private_class_method :triplet_to_text
|
108
|
+
|
103
109
|
|
104
110
|
def self.full_currency_text(amount_str, currency= :euro,lang= :gr)
|
105
111
|
|
@@ -110,12 +116,13 @@ module NumberReadOut
|
|
110
116
|
raise ArgumentError.new("Parameter amount: too many dots or commas") if dots >1 or commas >1
|
111
117
|
|
112
118
|
# split integer, decimal part
|
113
|
-
integer_part_of_number,decimal_part_of_number = amount_str.split(dots==1? '.': ',')
|
119
|
+
integer_part_of_number, decimal_part_of_number = amount_str.split(dots==1? '.': ',')
|
120
|
+
|
114
121
|
|
115
122
|
integer_part_of_number = integer_part_of_number.to_i
|
116
123
|
raise ArgumentError.new("Integer part too long") if integer_part_of_number > 999999999999999999
|
117
124
|
|
118
|
-
decimal_part_of_number = (decimal_part_of_number
|
125
|
+
decimal_part_of_number = ((decimal_part_of_number || '00') << '0')[0..1].to_i
|
119
126
|
decimal_part_text = decimal_part_to_text(decimal_part_of_number, currency,lang)
|
120
127
|
|
121
128
|
integer_part_text = ''
|
data/number_read_out.gemspec
CHANGED
@@ -30,5 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "bundler", "~> 1.12"
|
31
31
|
spec.add_development_dependency "rake", "~> 10.0"
|
32
32
|
spec.add_development_dependency "minitest", "~> 5.0"
|
33
|
-
|
33
|
+
spec.add_development_dependency "tiny_tds", "~> 1.0"
|
34
|
+
spec.add_development_dependency "simplecov"
|
35
|
+
spec.add_development_dependency "byebug"
|
34
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: number_read_out
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michail Pantelelis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,48 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: tiny_tds
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: byebug
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
55
97
|
description: Convert numbers and currencies to text in Greek and English. Usefull
|
56
98
|
where a full text number representation is needed as in cheques and invoices.
|
57
99
|
email:
|
@@ -92,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
134
|
version: '0'
|
93
135
|
requirements: []
|
94
136
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.5.
|
137
|
+
rubygems_version: 2.5.2
|
96
138
|
signing_key:
|
97
139
|
specification_version: 4
|
98
140
|
summary: Utility gem to convert numbers/currencies to text in Greek and English.
|