extenso_pt 0.3.8 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9181e12972d295cef175385d75b662220e76652967e4cd4d77896b7f701a4ca
4
- data.tar.gz: d028ca8b65e1f820526ee8549fa20900ee0f43e0df44ef5c3c9310e83f46c9b2
3
+ metadata.gz: ea7aeb525028a297a2fda541c282085ce24bea60bd7699c0477032af6b1baccb
4
+ data.tar.gz: d56765485363961a8b7c1435184ac0752068bae639e0911e62c9bdd8c7970677
5
5
  SHA512:
6
- metadata.gz: 5b47bc62963b2ebc5012d0048c7ba5cda19ac3be3842d2b4f15ee8302c324db1bbc190714d85192d44de7e968fdf68cd1c4cd141aa17f0b392b44ae3fec2275a
7
- data.tar.gz: 83d01529e5ccf5d281fa3d3f6c9a77e2128f51b775368652acf0e2fe9d57b3c884a404f058ff7db42b8736c61fd5b60d5da46dfd13da00ed2aed3030c93f48f8
6
+ metadata.gz: 74d312101ad0d06e082da295fb39ad70f4b309e41444cedf757ac8a07adaf479c12a314e922cf05d33d8c2bae3276e7ba8bc2676247dd9a1281bc5f53f79ca16
7
+ data.tar.gz: 318aca08d581cf3cd332d0abbd7f1d43c762f57d792e07375d7ac304c360989c8888f9bf8d76ca54ed2cc3401ac89e3d315719b93ff68633f3ee327d3d96f055
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- extenso_pt (0.3.8)
4
+ extenso_pt (0.3.9)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ExtensoPt [![Build Status](https://travis-ci.org/hernanilr/extenso_pt.svg?branch=master)](https://travis-ci.org/hernanilr/extenso_pt)
2
2
 
3
- Produz valores monetários por extenso em portugês de portugal ou brasil. Os valores podem ser um numerico ou uma string de digitos. O extenso pode ser produzido na escala longa (utilizada em todos os países lusófonos) ou na escala curta (utilizada no Brasil) [wiki](https://pt.wikipedia.org/wiki/Escalas_curta_e_longa). Pode ainda escolher a moeda e a fração da moeda.
3
+ Produz valores monetários por extenso em portugês de portugal ou brasil. Os valores podem ser um numerico, uma string de digitos ou um conjunto destes (array, range, hash). O extenso pode ser produzido na escala longa (utilizada em todos os países lusófonos) ou na escala curta (utilizada no Brasil) [wiki](https://pt.wikipedia.org/wiki/Escalas_curta_e_longa). Pode ainda escolher a moeda e a fração da moeda.
4
4
 
5
5
  ## Installation
6
6
 
@@ -31,6 +31,12 @@ Or install it yourself as:
31
31
  1e10.extenso(mplural:"REAIS") => "DEZ MIL MILHÕES DE REAIS" # portugal usa escala longa
32
32
  1e10.extenso(lc: :br) => "DEZ BILHÕES DE REAIS" # brasil usa escala curta
33
33
  14.01.extenso(mplural:"REAIS",fplural:"CENTAVOS") => "CATORZE REAIS E UM CENTAVO" # singular inferido <plural> menos "S"
34
+ (1..2).extenso => ["UM EURO","DOIS EUROS"] # extenso Range
35
+ {a:1,b:2}.extenso => ["UM EURO","DOIS EUROS"] # extenso Hash
36
+ ["1","2"].extenso => ["UM EURO","DOIS EUROS"] # extenso Array
37
+ [0.1,0.2].extenso => ["DEZ CÊNTIMOS","VINTE CÊNTIMOS"]
38
+ {a:[3,4],b:2}.extenso => [["TRÊS EUROS", "QUATRO EUROS"],"DOIS EUROS"]
39
+
34
40
  ```
35
41
 
36
42
  ## Development
data/extenso_pt.gemspec CHANGED
@@ -9,7 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ["hernanirvaz@gmail.com"]
10
10
 
11
11
  spec.summary = %q{Produz valores monetários por extenso em portugês de portugal ou brasil.}
12
- spec.description = spec.summary+%q{ Os valores podem ser um numerico ou uma string de digitos. O extenso pode ser produzido na escala longa (utilizada em todos os países lusófonos) ou na escala curta (utilizada no Brasil). Pode ainda escolher a moeda e a fração da moeda.}
12
+ spec.description = spec.summary+%q{ Os valores podem ser um numerico, uma string de digitos ou um conjunto destes (array, range, hash). O extenso pode ser produzido na escala longa (utilizada em todos os países lusófonos) ou na escala curta (utilizada no Brasil). Pode ainda escolher a moeda e a fração da moeda.}
13
+
13
14
  spec.homepage = "https://github.com/hernanilr/extenso_pt"
14
15
  spec.license = "MIT"
15
16
 
@@ -1,3 +1,3 @@
1
1
  module ExtensoPt
2
- VERSION = "0.3.8"
2
+ VERSION = "0.3.9"
3
3
  end
data/lib/extenso_pt.rb CHANGED
@@ -98,7 +98,7 @@ module ExtensoPt
98
98
  end
99
99
  end
100
100
 
101
- # Converte um objeto [String, Float, Integer] no seu extenso em portugûes de portugal ou brasil.
101
+ # Converte um objeto no seu extenso em portugûes de portugal ou brasil.
102
102
  #
103
103
  # @param [Hash] moeda as opcoes para parametrizar a moeda/fração
104
104
  # @option moeda [Symbol] :lc locale do extenso - portugûes de portugal (:pt) ou brasil (:br)
@@ -106,7 +106,7 @@ module ExtensoPt
106
106
  # @option moeda [String] :fsingular Fração no singular - por defeito pode ser obtida do <b>:fplural menos "S"</b> (se terminar em "S")
107
107
  # @option moeda [String] :mplural Moeda no plural - por defeito pode ser obtida do <b>:msingular+"S"</b>
108
108
  # @option moeda [String] :fplural Fração no plural - por defeito pode ser obtida do <b>:fsingular+"S"</b>
109
- # @return [String] o extenso do objeto
109
+ # @return [String, Array<String>] extenso se o objecto for (String, Float, Integer) ou Array dos extensos se o objecto for (Array, Range, Hash)
110
110
  def extenso(moeda={lc:(:pt),msingular:"EURO",fsingular:"CÊNTIMO"})
111
111
  moeda={lc:(:br),msingular:"REAL",mplural:"REAIS",fsingular:"CENTAVO"} if (moeda[:lc]==:br&&!moeda[:mplural]&&!moeda[:fplural])
112
112
  @@lc=LC.include?(moeda[:lc])?moeda[:lc]:(:pt)
@@ -114,12 +114,19 @@ module ExtensoPt
114
114
  @@cs=moeda[:fsingular]?moeda[:fsingular]:moeda[:fplural].to_s[-1]=="S"?moeda[:fplural][0..-2]:"CÊNTIMO"
115
115
  @@mp=moeda[:mplural]?moeda[:mplural]:@@ms+"S"
116
116
  @@cp=moeda[:fplural]?moeda[:fplural]:@@cs+"S"
117
- n=self.to_d.to_s("F")
118
- @@ai=n[/^\d+/].to_s.reverse.scan(/\d{1,3}/).map{|i|i.reverse.to_i}
119
- @@ai.count>8?"":ExtensoPt.erecursivo+ExtensoPt.fracao((n[/\.\d*/].to_f*100).round)
117
+ if (self.respond_to?:to_a)
118
+ self.to_a.map{|a|a.extenso(lc:(@@lc),msingular:@@ms,fsingular:@@cs,mplural:@@mp,fplural:@@cp)}
119
+ else
120
+ n=self.to_d.to_s('F')
121
+ @@ai=n[/^\d+/].to_s.reverse.scan(/\d{1,3}/).map{|i|i.reverse.to_i}
122
+ @@ai.count>8?"":ExtensoPt.erecursivo+ExtensoPt.fracao((n[/\.\d*/].to_f*100).round)
123
+ end
120
124
  end
121
125
 
122
126
  end
123
- class String; include ExtensoPt;end
127
+ class Hash; include ExtensoPt;def to_a;self.values;end;end
128
+ class Array; include ExtensoPt;end
129
+ class Range; include ExtensoPt;end
124
130
  class Float; include ExtensoPt;end
125
131
  class Integer;include ExtensoPt;end
132
+ class String; include ExtensoPt;end
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.3.8
4
+ version: 0.3.9
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-18 00:00:00.000000000 Z
11
+ date: 2019-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -67,9 +67,10 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.4.4
69
69
  description: Produz valores monetários por extenso em portugês de portugal ou brasil.
70
- Os valores podem ser um numerico ou uma string de digitos. O extenso pode ser produzido
71
- na escala longa (utilizada em todos os países lusófonos) ou na escala curta (utilizada
72
- no Brasil). Pode ainda escolher a moeda e a fração da moeda.
70
+ Os valores podem ser um numerico, uma string de digitos ou um conjunto destes (array,
71
+ range, hash). O extenso pode ser produzido na escala longa (utilizada em todos os
72
+ países lusófonos) ou na escala curta (utilizada no Brasil). Pode ainda escolher
73
+ a moeda e a fração da moeda.
73
74
  email:
74
75
  - hernanirvaz@gmail.com
75
76
  executables: []