extenso_pt 0.7.0 → 0.7.1
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/.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
|