extenso_pt 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +12 -0
- data/Gemfile.lock +2 -2
- data/extenso_pt.gemspec +11 -9
- data/lib/extenso_pt.rb +8 -8
- data/lib/extenso_pt/extenso.rb +2 -4
- data/lib/extenso_pt/variaveis.rb +4 -4
- data/lib/extenso_pt/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab0a52c0c901d62b897666d0386a3b3ae6e5e170a65bfb04bbb112631e456d90
|
4
|
+
data.tar.gz: f6bbe149fd0bfb90035795a7bc21ba9cfd37d185fd2f9ae5c634714292c8480e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 510463fe40f4a1c0da051401e4cdaaf478667f6d1f711bcae7456da64cdc3148308dfd1c4363667d10cf23d6d5d3af7bbb370ccbfec97d5deaf610be01d25f5b
|
7
|
+
data.tar.gz: 27b7b1dac2a655e3796e046cf709bd7e76683667c5a5a70d082aa3c1bf6325cf5e0c0aa169602cb2276aa0e0e8249abdadcde71cadd9f3f24273a07918d629f9
|
data/.rubocop.yml
ADDED
data/Gemfile.lock
CHANGED
data/extenso_pt.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require
|
5
|
+
require('extenso_pt/version')
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'extenso_pt'
|
@@ -18,21 +18,23 @@ Gem::Specification.new do |spec|
|
|
18
18
|
'(array, range, hash). O extenso pode ser produzido na escala longa (utilizada em todos os países lusófonos) ou '\
|
19
19
|
'na escala curta (utilizada no Brasil). Pode ainda produzir numeracao romana e vice versa.'
|
20
20
|
|
21
|
-
|
21
|
+
# use "yard" to build full HTML docs.
|
22
|
+
spec.metadata['yard.run'] = 'yard'
|
22
23
|
spec.metadata['homepage_uri'] = spec.homepage
|
23
24
|
|
24
25
|
# Specify which files should be added to the gem when it is released.
|
25
26
|
# loads the files in the RubyGem that have been added into git.
|
26
|
-
spec.files =
|
27
|
-
|
28
|
-
|
27
|
+
spec.files =
|
28
|
+
Dir.chdir(File.expand_path(__dir__)) do
|
29
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
30
|
+
end
|
29
31
|
spec.bindir = 'exe'
|
30
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
33
|
spec.require_paths = ['lib']
|
32
34
|
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
35
|
+
spec.add_development_dependency('bundler')
|
36
|
+
spec.add_development_dependency('minitest')
|
37
|
+
spec.add_development_dependency('rake')
|
36
38
|
|
37
|
-
spec.add_dependency
|
39
|
+
spec.add_dependency('bigdecimal')
|
38
40
|
end
|
data/lib/extenso_pt.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
3
|
+
require('bigdecimal/util')
|
4
|
+
require('extenso_pt/constantes')
|
5
|
+
require('extenso_pt/variaveis')
|
6
|
+
require('extenso_pt/extenso')
|
7
|
+
require('extenso_pt/romana')
|
8
|
+
require('extenso_pt/version')
|
9
9
|
|
10
10
|
# @author Hernani Rodrigues Vaz
|
11
11
|
module ExtensoPt
|
@@ -35,7 +35,7 @@ module ExtensoPt
|
|
35
35
|
# @return (see #extenso)
|
36
36
|
def processa
|
37
37
|
# converte valores do Hash nos seus extensos
|
38
|
-
if is_a?(Hash) then
|
38
|
+
if is_a?(Hash) then transform_values(&:processa)
|
39
39
|
# converte objecto num Array com os valores convertidos nos seus extensos
|
40
40
|
elsif respond_to?(:to_a) then to_a.map(&:processa)
|
41
41
|
else
|
@@ -79,7 +79,7 @@ module ExtensoPt
|
|
79
79
|
# @return [String, Integer] numeracao romana a partir de numerico ou inteiro a partir da numeracao romana
|
80
80
|
def romana
|
81
81
|
# converte os valores do Hash
|
82
|
-
if is_a?(Hash) then
|
82
|
+
if is_a?(Hash) then transform_values(&:romana)
|
83
83
|
# converte objecto num Array com os valores convertidos
|
84
84
|
elsif respond_to?(:to_a) then to_a.map(&:romana)
|
85
85
|
# numeracao romana a partir de inteiro ou string digitos (ignora parte fracionaria)
|
data/lib/extenso_pt/extenso.rb
CHANGED
@@ -7,8 +7,7 @@ module ExtensoPt
|
|
7
7
|
# @param [Integer] mil o valor dum grupo 3 digitos a converter
|
8
8
|
# @return [String] extenso das centenas
|
9
9
|
def self.e900(mil)
|
10
|
-
A1000[@lc][(mil > 100 ? 1 : 0) + mil / 100] +
|
11
|
-
(mil > 100 && (mil % 100).positive? ? ' E ' : '')
|
10
|
+
A1000[@lc][(mil > 100 ? 1 : 0) + mil / 100] + (mil > 100 && (mil % 100).positive? ? ' E ' : '')
|
12
11
|
end
|
13
12
|
|
14
13
|
# Produz extenso das dezenas em portugues de portugal ou brasil
|
@@ -16,8 +15,7 @@ module ExtensoPt
|
|
16
15
|
# @param [Integer] cem a centena dum grupo 3 digitos a converter
|
17
16
|
# @return [String] extenso das dezenas
|
18
17
|
def self.e090(cem)
|
19
|
-
A0100[@lc][cem / 10] +
|
20
|
-
(cem > 20 && (cem % 10).positive? ? ' E ' : '')
|
18
|
+
A0100[@lc][cem / 10] + (cem > 20 && (cem % 10).positive? ? ' E ' : '')
|
21
19
|
end
|
22
20
|
|
23
21
|
# Produz extenso das unidades em portugues de portugal ou brasil
|
data/lib/extenso_pt/variaveis.rb
CHANGED
@@ -25,10 +25,10 @@ module ExtensoPt
|
|
25
25
|
# @param [String] digitos do valor monetario a converter
|
26
26
|
def self.prif(digitos)
|
27
27
|
# cria array de grupos 3 digitos da parte inteira ex: 123022.12 => [22, 123]
|
28
|
-
@ai = digitos[/^\d+/].to_s.reverse.scan(/\d{1,3}/).map { |i| i.reverse
|
28
|
+
@ai = digitos[/^\d+/].to_s.reverse.scan(/\d{1,3}/).map { |i| Integer(i.reverse) }
|
29
29
|
|
30
30
|
# obtem parte fracionaria da string digitos arredondada a 2 casas decimais ex: 123022.12 => 12
|
31
|
-
@nf = (digitos[/\.\d*/]
|
31
|
+
@nf = (Float(digitos[/\.\d*/]) * 100).round
|
32
32
|
end
|
33
33
|
|
34
34
|
# @return [Array<Integer>] grupos 3 digitos da parte inteira
|
@@ -38,12 +38,12 @@ module ExtensoPt
|
|
38
38
|
|
39
39
|
# @return [Integer] soma grupos 1-8 de digitos
|
40
40
|
def self.c124
|
41
|
-
@ai[0]
|
41
|
+
Integer(@ai[0]) + Integer(@ai[1] || 0) * 2 + Integer(@ai[2..].to_a.inject(:+) || 0) * 2
|
42
42
|
end
|
43
43
|
|
44
44
|
# @return [true, false] sim ou nao para controle proposicao DE
|
45
45
|
def self.cde?
|
46
|
-
@ai[0..1].to_a.inject(:+).
|
46
|
+
Integer(@ai[0..1].to_a.inject(:+)).zero? && Integer(@ai[2..].to_a.inject(:+) || 0).positive?
|
47
47
|
end
|
48
48
|
|
49
49
|
# @return [true, false] sim ou nao para controle proposicao E
|
data/lib/extenso_pt/version.rb
CHANGED
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.7.
|
4
|
+
version: 0.7.1
|
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: 2020-08-
|
11
|
+
date: 2020-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -79,6 +79,7 @@ extra_rdoc_files: []
|
|
79
79
|
files:
|
80
80
|
- ".gitignore"
|
81
81
|
- ".project_alt.json"
|
82
|
+
- ".rubocop.yml"
|
82
83
|
- ".travis.yml"
|
83
84
|
- Gemfile
|
84
85
|
- Gemfile.lock
|