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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6e723065900359c7102cbd0557f1f8e32736375b9a5413b35b7ab560e750268
4
- data.tar.gz: 9309f0ee035c71a98d5fe3d7a45ab24047d20ee81d729771e6f1137131b40d5f
3
+ metadata.gz: 173a1d4f4c608ccffd88772a896b2c8c72d0d259f9240507e95e94e45d4a45dc
4
+ data.tar.gz: e572d5557391ad25d652989d6e0141b719d0db93dc4bf0b270b6a79ea9ab4db4
5
5
  SHA512:
6
- metadata.gz: 3f398eeb45d38df345c6bada334bc5897490a9df363780669105c8e0398aa22c85512f79e7202f04114d553d8cbc78c0181b7f969ae04415c9dcec546a02a13d
7
- data.tar.gz: 556e522f8f9ac3414ac6c9fe134a5ef1b80775688df4200673b67fe52ae0f173c645460533c48d9c51b4625103d6b8c228145b8627a28b8142ca0cacbc6ef375
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.2.7)
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 (~> 2.0)
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
- 2.0.2
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
- 1.01.extenso(msingular:"REAL",fsingular:"CENTAVO") => "UM REAL E UM CENTAVO"
29
- # por defeito plural = <silgular> mais "S"
30
- 1.10.extenso(msingular:"REAL",fsingular:"CENTAVO") => "UM REAL E DEZ CENTAVOS"
31
- 2.00.extenso(mplural:"REAIS") => "DOIS REAIS"
32
- 2.10.extenso(mplural:"REAIS",fplural:"CENTAVOS") => "DOIS REAIS E DEZ CENTAVOS"
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", "~> 2.0"
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"
@@ -1,3 +1,3 @@
1
1
  module ExtensoPt
2
- VERSION = "0.2.7"
2
+ VERSION = "0.3.0"
3
3
  end
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
- A0020=["","UM","DOIS","TRÊS","QUATRO","CINCO","SEIS","SETE","OITO","NOVE","DEZ","ONZE",
9
- "DOZE","TREZE","CATORZE","QUINZE","DEZASSEIS","DEZASSETE","DEZOITO","DEZANOVE"]
10
- A0100=["","","VINTE","TRINTA","QUARENTA","CINQUENTA","SESSENTA","SETENTA","OITENTA","NOVENTA"]
11
- A1000=["","CEM","CENTO","DUZENTOS","TREZENTOS","QUATROCENTOS","QUINHENTOS",
12
- "SEISCENTOS","SETECENTOS","OITOCENTOS","NOVECENTOS"]
13
- A1e24=["","MIL"," MILHÃO"," MIL MILHÃO"," BILIÃO"," MIL BILIÃO"," TRILIÃO"," MIL TRILIÃO","",
14
- " MIL"," MILHÕES"," MIL MILHÕES"," BILIÕES"," MIL BILIÕES"," TRILIÕES"," MIL TRILIÕES"]
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 protugûes de portugal.
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 protugûes de portugal.
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 protugûes de portugal.
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 protugûes de portugal.
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.2.7
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-14 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
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.6
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.