extenso_pt 0.3.8 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
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: []