extenso_pt 0.2.7 → 0.3.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/Gemfile.lock +3 -3
- data/README.md +8 -9
- data/extenso_pt.gemspec +1 -1
- data/lib/extenso_pt/version.rb +1 -1
- data/lib/extenso_pt.rb +19 -14
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 173a1d4f4c608ccffd88772a896b2c8c72d0d259f9240507e95e94e45d4a45dc
|
4
|
+
data.tar.gz: e572d5557391ad25d652989d6e0141b719d0db93dc4bf0b270b6a79ea9ab4db4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f22078ed638a349c1696c83ddece93954974fece08b2dbce657aa7ad114e6286a1dcb13d16d4114f1ced874f57177d1c706f5739702851c61cf9fb7341f5b1b
|
7
|
+
data.tar.gz: a02aa4a897cab8f9f53a8614b5ab8ca5f2758a8a55691812e39d26dc9d168ccf2f9f1ad70d4fa8ac8f4350577a79c0645d5d0a6c76cc39f85000c7112f96bd43
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
extenso_pt (0.
|
4
|
+
extenso_pt (0.3.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -15,10 +15,10 @@ PLATFORMS
|
|
15
15
|
|
16
16
|
DEPENDENCIES
|
17
17
|
bigdecimal (~> 1.4.4)
|
18
|
-
bundler (~>
|
18
|
+
bundler (~> 1.17)
|
19
19
|
extenso_pt!
|
20
20
|
minitest (~> 5.0)
|
21
21
|
rake (~> 10.0)
|
22
22
|
|
23
23
|
BUNDLED WITH
|
24
|
-
|
24
|
+
1.17.2
|
data/README.md
CHANGED
@@ -23,15 +23,14 @@ Or install it yourself as:
|
|
23
23
|
```ruby
|
24
24
|
"1234".extenso => "MIL DUZENTOS E TRINTA E QUATRO EUROS"
|
25
25
|
12000000.12.extenso => "DOZE MILHÕES DE EUROS E DOZE CÊNTIMOS"
|
26
|
-
1.01.extenso(msingular:"DÓLAR") => "UM DÓLAR E UM CÊNTIMO"
|
27
|
-
10.1.extenso(mplural:"DÓLARES") => "DEZ DÓLARES E DEZ CÊNTIMOS"
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
# por defeito singular = <plural> menos "S" (caso termine em "S")
|
34
|
-
2.01.extenso(mplural:"REAIS",fplural:"CENTAVOS") => "DOIS REAIS E UM CENTAVO"
|
26
|
+
1.01.extenso(msingular:"DÓLAR") => "UM DÓLAR E UM CÊNTIMO"
|
27
|
+
10.1.extenso(mplural:"DÓLARES") => "DEZ DÓLARES E DEZ CÊNTIMOS" # por defeito plural = <silgular> mais "S"
|
28
|
+
14.01.extenso(mplural:"REAIS",fsingular:"CENTAVO") => "CATORZE REAIS E UM CENTAVO"
|
29
|
+
14.10.extenso(mplural:"REAIS",fsingular:"CENTAVO") => "CATORZE REAIS E DEZ CENTAVOS"
|
30
|
+
14.10.extenso(lc: :br) => "QUATORZE REAIS E DEZ CENTAVOS"
|
31
|
+
1e10.extenso(mplural:"REAIS") => "DEZ MIL MILHÕES DE REAIS" # portugal usa escala longa
|
32
|
+
1e10.extenso(lc: :br) => "DEZ BILHÕES DE REAIS" # brasil usa escala curta
|
33
|
+
14.01.extenso(mplural:"REAIS",fplural:"CENTAVOS") => "CATORZE REAIS E UM CENTAVO" # por defeito singular = <plural> menos "S" (caso termine em "S")
|
35
34
|
```
|
36
35
|
|
37
36
|
## Development
|
data/extenso_pt.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
|
31
|
-
spec.add_development_dependency "bundler", "~>
|
31
|
+
spec.add_development_dependency "bundler", "~> 1.17"
|
32
32
|
spec.add_development_dependency "rake", "~> 10.0"
|
33
33
|
spec.add_development_dependency "minitest", "~> 5.0"
|
34
34
|
spec.add_development_dependency "bigdecimal", "~> 1.4.4"
|
data/lib/extenso_pt/version.rb
CHANGED
data/lib/extenso_pt.rb
CHANGED
@@ -5,13 +5,15 @@ require "bigdecimal/util"
|
|
5
5
|
module ExtensoPt
|
6
6
|
class Error < StandardError; end
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
"
|
13
|
-
|
14
|
-
|
8
|
+
LC=[:pt,:br]
|
9
|
+
A0020={pt: ["","UM","DOIS","TRÊS","QUATRO","CINCO","SEIS","SETE","OITO","NOVE","DEZ","ONZE","DOZE","TREZE","CATORZE","QUINZE","DEZASSEIS","DEZASSETE","DEZOITO","DEZANOVE"],
|
10
|
+
br: ["","UM","DOIS","TRES","QUATRO","CINCO","SEIS","SETE","OITO","NOVE","DEZ","ONZE","DOZE","TREZE","QUATORZE","QUINZE","DEZESSEIS","DEZESSETE","DEZOITO","DEZENOVE"]}
|
11
|
+
A0100={pt: ["","","VINTE","TRINTA","QUARENTA","CINQUENTA","SESSENTA","SETENTA","OITENTA","NOVENTA"],
|
12
|
+
br: ["","","VINTE","TRINTA","QUARENTA","CINQUENTA","SESSENTA","SETENTA","OITENTA","NOVENTA"]}
|
13
|
+
A1000={pt: ["","CEM","CENTO","DUZENTOS","TREZENTOS","QUATROCENTOS","QUINHENTOS","SEISCENTOS","SETECENTOS","OITOCENTOS","NOVECENTOS"],
|
14
|
+
br: ["","CEM","CENTO","DUZENTOS","TREZENTOS","QUATROCENTOS","QUINHENTOS","SEISCENTOS","SETECENTOS","OITOCENTOS","NOVECENTOS"]}
|
15
|
+
A1e24={pt: ["","MIL"," MILHÃO"," MIL MILHÃO"," BILIÃO"," MIL BILIÃO"," TRILIÃO"," MIL TRILIÃO",""," MIL"," MILHÕES"," MIL MILHÕES"," BILIÕES"," MIL BILIÕES"," TRILIÕES"," MIL TRILIÕES"],
|
16
|
+
br: ["","MIL"," MILHÃO"," BILHÃO"," TRILHÃO"," QUADRILHÃO"," QUINTILHÃO"," SEXTILHÃO",""," MIL"," MILHÕES"," BILHÕES"," TRILHÕES"," QUADRILHÕES"," QUINTILHÕES"," SEXTILHÕES"]}
|
15
17
|
|
16
18
|
# Controle proposicao E
|
17
19
|
#
|
@@ -64,7 +66,7 @@ module ExtensoPt
|
|
64
66
|
end
|
65
67
|
end
|
66
68
|
|
67
|
-
# Produz o extenso da parte fracionaria do valor monetário em
|
69
|
+
# Produz o extenso da parte fracionaria do valor monetário em portugûes de portugal ou brasil.
|
68
70
|
#
|
69
71
|
# @param [Integer] fracao parte fracionaria do valor monetário ex: 100022.12 = 12
|
70
72
|
# @return [String] o extenso da parte fracionaria do valor monetário
|
@@ -73,17 +75,17 @@ module ExtensoPt
|
|
73
75
|
f7(t+fracao)+f4(t)+f6(t,fracao)+e999(fracao)+f5(fracao)
|
74
76
|
end
|
75
77
|
|
76
|
-
# Produz o extenso dum valor (entre 0-999) em
|
78
|
+
# Produz o extenso dum valor (entre 0-999) em portugûes de portugal ou brasil.
|
77
79
|
#
|
78
80
|
# @param [Integer] mil a converter
|
79
81
|
# @param [Integer] pos posição actual em tratamento
|
80
82
|
# @return [String] o extenso do [Integer] mil
|
81
83
|
def self.e999(mil,pos=0)
|
82
84
|
s=mil%100
|
83
|
-
A1000[(mil>100?1:0)+mil/100]+f1(mil)+A0100[s/10]+f2(s)+A0020[pos==1&&mil==1?0:s<20?s:s%10]
|
85
|
+
A1000[@@lc][(mil>100?1:0)+mil/100]+f1(mil)+A0100[@@lc][s/10]+f2(s)+A0020[@@lc][pos==1&&mil==1?0:s<20?s:s%10]
|
84
86
|
end
|
85
87
|
|
86
|
-
# Produz recursivamente o extenso da parte inteira do valor monetário em
|
88
|
+
# Produz recursivamente o extenso da parte inteira do valor monetário em portugûes de portugal ou brasil.
|
87
89
|
#
|
88
90
|
# @param [Integer] pos posição actual em tratamento
|
89
91
|
# @param [String] ext extenso actual em tratamento
|
@@ -92,19 +94,22 @@ module ExtensoPt
|
|
92
94
|
if (pos>=@@ai.count)
|
93
95
|
ext
|
94
96
|
else
|
95
|
-
erecursivo(pos+1,e999(@@ai[pos],pos)+A1e24[@@ai[pos]>0?@@ai[pos]>1?8+pos:pos:0]+f3(pos>0?@@ai[pos-1]:0)+ext)
|
97
|
+
erecursivo(pos+1,e999(@@ai[pos],pos)+A1e24[@@lc][@@ai[pos]>0?@@ai[pos]>1?8+pos:pos:0]+f3(pos>0?@@ai[pos-1]:0)+ext)
|
96
98
|
end
|
97
99
|
end
|
98
100
|
|
99
|
-
# Converte um objeto [String, Float, Integer] no seu extenso em
|
101
|
+
# Converte um objeto [String, Float, Integer] no seu extenso em portugûes de portugal ou brasil.
|
100
102
|
#
|
101
103
|
# @param [Hash] moeda as opcoes para parametrizar a moeda/fração
|
104
|
+
# @option moeda [Symbol] :lc locale do extenso - portugûes de portugal (:pt) ou brasil (:br)
|
102
105
|
# @option moeda [String] :msingular Moeda no singular - por defeito pode ser obtida do <b>:mplural menos "S"</b> (se terminar em "S")
|
103
106
|
# @option moeda [String] :fsingular Fração no singular - por defeito pode ser obtida do <b>:fplural menos "S"</b> (se terminar em "S")
|
104
107
|
# @option moeda [String] :mplural Moeda no plural - por defeito pode ser obtida do <b>:msingular+"S"</b>
|
105
108
|
# @option moeda [String] :fplural Fração no plural - por defeito pode ser obtida do <b>:fsingular+"S"</b>
|
106
109
|
# @return [String] o extenso do objeto
|
107
|
-
def extenso(moeda={msingular:"EURO",fsingular:"CÊNTIMO"})
|
110
|
+
def extenso(moeda={lc:(:pt),msingular:"EURO",fsingular:"CÊNTIMO"})
|
111
|
+
moeda={lc:(:br),msingular:"REAL",mplural:"REAIS",fsingular:"CENTAVO"} if (moeda[:lc]==:br&&!moeda[:mplural])
|
112
|
+
@@lc=LC.include?(moeda[:lc])?moeda[:lc]:(:pt)
|
108
113
|
@@ms=moeda[:msingular]?moeda[:msingular]:moeda[:mplural].to_s[-1]=="S"?moeda[:mplural][0..-2]:"EURO"
|
109
114
|
@@cs=moeda[:fsingular]?moeda[:fsingular]:moeda[:fplural].to_s[-1]=="S"?moeda[:fplural][0..-2]:"CÊNTIMO"
|
110
115
|
@@mp=moeda[:mplural]?moeda[:mplural]:@@ms+"S"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extenso_pt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hernâni Rodrigues Vaz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1.17'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '1.17'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
|
-
rubygems_version: 3.0.
|
112
|
+
rubygems_version: 3.0.3
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Produz valores monetários (defeito EURO) por extenso em portugês de portugal.
|