teodoro 0.0.7 → 0.0.8
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/bin/teodoro +1 -1
- data/lib/teodoro.rb +74 -1
- data/lib/teodoro/arquivo_de_evento.rb +1 -6
- data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +4 -0
- data/lib/teodoro/arquivo_de_origem.rb +1 -1
- data/lib/teodoro/arquivo_xml.rb +2 -0
- data/lib/teodoro/empresa.rb +5 -1
- data/lib/teodoro/leiaute_2_4_1/arquivo_s1010.rb +6 -2
- metadata +2 -3
- data/lib/teodoro/execucao.rb +0 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 715220b95bb70bc46665ecff3b112fc2d5ed6496ce069c1f186b9c2763b28c90
|
4
|
+
data.tar.gz: 753ce68d220b8134f457df47ac6cefd007530a10d51534689e816a091819228d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ae28ea683456163c96e3efa9f78bcc9b3f880826bb46c2267a608757c0d8f8225e5209c19bf1b46e916d4724c240272813274c336c3221cdd46c5e144fa386e
|
7
|
+
data.tar.gz: f9c43aabab55122d8ca1044da63a0496baeacd6039cfdfc5a00679b508fe9744d2ea1188a6523ab340a44fb03a0c93e8a6543574be364bb12a7147c5f2e4f828
|
data/bin/teodoro
CHANGED
data/lib/teodoro.rb
CHANGED
@@ -2,7 +2,80 @@ require 'nokogiri'
|
|
2
2
|
require 'os'
|
3
3
|
require 'zip'
|
4
4
|
|
5
|
-
require_relative 'teodoro/
|
5
|
+
require_relative 'teodoro/console'
|
6
|
+
require_relative 'teodoro/empresa'
|
6
7
|
|
7
8
|
module Teodoro
|
9
|
+
def self.call(args)
|
10
|
+
Execution.new(args).call
|
11
|
+
end
|
12
|
+
|
13
|
+
class Execution
|
14
|
+
NOME_DO_PROGRAMA = 'teodoro'.freeze
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def initialize(args)
|
19
|
+
@args = args
|
20
|
+
end
|
21
|
+
|
22
|
+
attr_reader :args
|
23
|
+
|
24
|
+
public
|
25
|
+
|
26
|
+
def call
|
27
|
+
executar
|
28
|
+
rescue StandardError => e
|
29
|
+
Console.print e.message, *e.backtrace, color: :red
|
30
|
+
exit
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def executar
|
36
|
+
validar_argumentos
|
37
|
+
validar_existencia_do_diretorio_de_origem
|
38
|
+
validar_que_diretorio_de_origem_nao_esta_vazio
|
39
|
+
validar_que_diretorio_de_destino_esta_vazio
|
40
|
+
|
41
|
+
processar_empresas
|
42
|
+
end
|
43
|
+
|
44
|
+
def validar_argumentos
|
45
|
+
erro "#{NOME_DO_PROGRAMA} [diretório de origem] [diretório de destino]" unless args.size == 2
|
46
|
+
end
|
47
|
+
|
48
|
+
def validar_existencia_do_diretorio_de_origem
|
49
|
+
erro 'Diretório de origem não existe.' unless File.directory?(origem)
|
50
|
+
end
|
51
|
+
|
52
|
+
def origem
|
53
|
+
@origem ||= args[0]
|
54
|
+
end
|
55
|
+
|
56
|
+
def validar_que_diretorio_de_origem_nao_esta_vazio
|
57
|
+
erro 'Diretório de origem vazio.' if Dir.empty?(origem)
|
58
|
+
end
|
59
|
+
|
60
|
+
def validar_que_diretorio_de_destino_esta_vazio
|
61
|
+
erro 'Diretório de destino deve estar vazio.' unless Dir.empty?(destino)
|
62
|
+
end
|
63
|
+
|
64
|
+
def destino
|
65
|
+
@destino ||= args[1]
|
66
|
+
end
|
67
|
+
|
68
|
+
def erro(erro)
|
69
|
+
puts erro
|
70
|
+
exit
|
71
|
+
end
|
72
|
+
|
73
|
+
def processar_empresas
|
74
|
+
empresas.each(&:processar)
|
75
|
+
end
|
76
|
+
|
77
|
+
def empresas
|
78
|
+
Dir[File.join(origem, '*')].map { |caminho| Empresa.new(caminho: caminho, destino: destino) }
|
79
|
+
end
|
80
|
+
end
|
8
81
|
end
|
@@ -5,17 +5,12 @@ module Teodoro
|
|
5
5
|
attr_reader :xml_do_evento, :xml_do_recibo, :destino_dos_arquivos_data
|
6
6
|
|
7
7
|
def criar_arquivo_data
|
8
|
-
raise if File.exist?(caminho_do_arquivo_data)
|
8
|
+
raise caminho_do_arquivo_data if File.exist?(caminho_do_arquivo_data)
|
9
9
|
|
10
10
|
File.write(caminho_do_arquivo_data, conteudo_do_arquivo_data)
|
11
11
|
end
|
12
12
|
|
13
|
-
def caminho_do_arquivo_data
|
14
|
-
criar_caminho_do_arquivo_data(nome_do_arquivo_data)
|
15
|
-
end
|
16
|
-
|
17
13
|
def criar_caminho_do_arquivo_data(nome_do_arquivo)
|
18
|
-
# FIXME: Tales demais caracteres especiais
|
19
14
|
File.join(
|
20
15
|
destino_dos_arquivos_data,
|
21
16
|
"#{windows? ? nome_do_arquivo.gsub(%r{[<|>:"/\\?*]}, '_') : nome_do_arquivo}.data"
|
data/lib/teodoro/arquivo_xml.rb
CHANGED
data/lib/teodoro/empresa.rb
CHANGED
@@ -21,12 +21,12 @@ module Teodoro
|
|
21
21
|
descompactar_arquivos_de_origem
|
22
22
|
criar_diretorio_dos_arquivos_data
|
23
23
|
processar_arquivos_xml
|
24
|
+
limpar_linha_de_feedback
|
24
25
|
end
|
25
26
|
|
26
27
|
private
|
27
28
|
|
28
29
|
def dar_feedback_para_o_usuario
|
29
|
-
puts ''
|
30
30
|
Console.print nome_do_diretorio, color: :green
|
31
31
|
end
|
32
32
|
|
@@ -81,5 +81,9 @@ module Teodoro
|
|
81
81
|
def de_recibo_para_nome_do_arquivo_data
|
82
82
|
@de_recibo_para_nome_do_arquivo_data ||= {}
|
83
83
|
end
|
84
|
+
|
85
|
+
def limpar_linha_de_feedback
|
86
|
+
print "\e[2K"
|
87
|
+
end
|
84
88
|
end
|
85
89
|
end
|
@@ -18,7 +18,11 @@ module Teodoro
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def identificacao_do_arquivo_data
|
21
|
-
['RUB', codigo]
|
21
|
+
['RUB', "#{identificador_da_tabela_de_rubricas}_#{codigo}"] # FIXME: Tales
|
22
|
+
end
|
23
|
+
|
24
|
+
def identificador_da_tabela_de_rubricas
|
25
|
+
@identificador_da_tabela_de_rubricas ||= evento['evtTabRubrica/infoRubrica/*/ideRubrica/ideTabRubr']
|
22
26
|
end
|
23
27
|
|
24
28
|
def codigo
|
@@ -36,7 +40,7 @@ module Teodoro
|
|
36
40
|
['InicioValidade', inicio_da_validade],
|
37
41
|
['FimValidade', fim_da_validade],
|
38
42
|
['chkIdTabelaRubrica'],
|
39
|
-
['IdTabelaRubrica',
|
43
|
+
['IdTabelaRubrica', identificador_da_tabela_de_rubricas],
|
40
44
|
['IdTabelaRubricaText'],
|
41
45
|
['DadosRubrica_Descricao', evento['evtTabRubrica/infoRubrica/*/dadosRubrica/dscRubr']],
|
42
46
|
['DadosRubrica_Natureza', evento['evtTabRubrica/infoRubrica/*/dadosRubrica/natRubr']],
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teodoro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clavius Tales
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -181,7 +181,6 @@ files:
|
|
181
181
|
- lib/teodoro/cnpj.rb
|
182
182
|
- lib/teodoro/console.rb
|
183
183
|
- lib/teodoro/empresa.rb
|
184
|
-
- lib/teodoro/execucao.rb
|
185
184
|
- lib/teodoro/leiaute_2_4_1.rb
|
186
185
|
- lib/teodoro/leiaute_2_4_1/arquivo_s1000.rb
|
187
186
|
- lib/teodoro/leiaute_2_4_1/arquivo_s1005.rb
|
data/lib/teodoro/execucao.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
require_relative 'console'
|
2
|
-
require_relative 'empresa'
|
3
|
-
|
4
|
-
module Teodoro
|
5
|
-
class Execucao
|
6
|
-
NOME_DO_PROGRAMA = 'teodoro'.freeze
|
7
|
-
|
8
|
-
private
|
9
|
-
|
10
|
-
def initialize(args)
|
11
|
-
@args = args
|
12
|
-
end
|
13
|
-
|
14
|
-
attr_reader :args
|
15
|
-
|
16
|
-
public
|
17
|
-
|
18
|
-
def call
|
19
|
-
executar
|
20
|
-
rescue StandardError => e
|
21
|
-
Console.print e.message, *e.backtrace, color: :red
|
22
|
-
exit
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def executar
|
28
|
-
validar_argumentos
|
29
|
-
validar_existencia_do_diretorio_de_origem
|
30
|
-
validar_que_diretorio_de_origem_nao_esta_vazio
|
31
|
-
validar_que_diretorio_de_destino_esta_vazio
|
32
|
-
|
33
|
-
processar_empresas
|
34
|
-
end
|
35
|
-
|
36
|
-
def validar_argumentos
|
37
|
-
erro "#{NOME_DO_PROGRAMA} [diretório de origem] [diretório de destino]" unless args.size == 2
|
38
|
-
end
|
39
|
-
|
40
|
-
def validar_existencia_do_diretorio_de_origem
|
41
|
-
erro 'Diretório de origem não existe.' unless File.directory?(origem)
|
42
|
-
end
|
43
|
-
|
44
|
-
def origem
|
45
|
-
@origem ||= args[0]
|
46
|
-
end
|
47
|
-
|
48
|
-
def validar_que_diretorio_de_origem_nao_esta_vazio
|
49
|
-
erro 'Diretório de origem vazio.' if Dir.empty?(origem)
|
50
|
-
end
|
51
|
-
|
52
|
-
def validar_que_diretorio_de_destino_esta_vazio
|
53
|
-
erro 'Diretório de destino deve estar vazio.' unless Dir.empty?(destino)
|
54
|
-
end
|
55
|
-
|
56
|
-
def destino
|
57
|
-
@destino ||= args[1]
|
58
|
-
end
|
59
|
-
|
60
|
-
def erro(erro)
|
61
|
-
puts erro
|
62
|
-
exit
|
63
|
-
end
|
64
|
-
|
65
|
-
def processar_empresas
|
66
|
-
empresas.each(&:processar)
|
67
|
-
end
|
68
|
-
|
69
|
-
def empresas
|
70
|
-
Dir[File.join(origem, '*')].map { |caminho| Empresa.new(caminho: caminho, destino: destino) }
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|