teodoro 0.67.1 → 0.67.3
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/lib/teodoro/arquivo_de_evento_de_tabela.rb +1 -2
- data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +1 -0
- data/lib/teodoro/arquivo_de_origem.rb +17 -9
- data/lib/teodoro/arquivo_xml.rb +20 -8
- data/lib/teodoro/empresa.rb +68 -24
- data/lib/teodoro/leiaute/arquivo_s2205.rb +1 -2
- data/lib/teodoro/leiaute/arquivo_s2206.rb +4 -2
- data/lib/teodoro/leiaute/arquivo_s2300.rb +2 -3
- data/lib/teodoro/version.rb +1 -1
- data/lib/teodoro.rb +23 -3
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9bd232ff7396766bbf22931a10bdb93cebb1165d5afea355a49cacffb3f8d981
|
|
4
|
+
data.tar.gz: 288f9b35d3d605d50e537d685442646b57a6d80278ad6be2670eb4e0af10a3c5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 44c240a32c5c8ead1b19b8378b66069683f8e765113231bc841a43b8bf0c30a1b8988333f6fdfc870f56863f7e3dd567fe1a6848fc2a391b07e9a020a90e664a
|
|
7
|
+
data.tar.gz: 5fb8688f5af27f19127deba394ae08d78b626d0cd50184755ce7a400b180486ecda4bf2800b3f1aa714661990a4b4c004820ac87a35a25322a12cf5827e59d86
|
|
@@ -25,8 +25,7 @@ module Teodoro
|
|
|
25
25
|
def validar_existencia_do_arquivo_data_original
|
|
26
26
|
return if File.exist?(caminho_do_arquivo_data_original)
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
exit
|
|
28
|
+
Teodoro.exit('', Rainbow('Erro! Evento de alteração/exclusão sem inclusão anterior.').red)
|
|
30
29
|
end
|
|
31
30
|
|
|
32
31
|
def deletar_arquivo_data_original
|
|
@@ -4,28 +4,37 @@ module Teodoro
|
|
|
4
4
|
|
|
5
5
|
private
|
|
6
6
|
|
|
7
|
-
def initialize(caminho:, destino_dos_arquivos_xml:)
|
|
7
|
+
def initialize(empresa:, caminho:, indice:, destino_dos_arquivos_xml:)
|
|
8
|
+
@empresa = empresa
|
|
8
9
|
@caminho = caminho
|
|
10
|
+
@indice = indice
|
|
9
11
|
@destino_dos_arquivos_xml = destino_dos_arquivos_xml
|
|
10
12
|
end
|
|
11
13
|
|
|
12
|
-
attr_reader :caminho, :destino_dos_arquivos_xml
|
|
14
|
+
attr_reader :empresa, :caminho, :indice, :destino_dos_arquivos_xml
|
|
13
15
|
|
|
14
16
|
public
|
|
15
17
|
|
|
16
18
|
def descompactar
|
|
17
|
-
|
|
18
|
-
puts '', Rainbow("Erro! \"#{p(caminho)}\" é um diretório.").red
|
|
19
|
-
exit
|
|
20
|
-
end
|
|
19
|
+
validar_que_nao_eh_diretorio
|
|
21
20
|
|
|
22
|
-
Console.print "descompactando #{File.basename(caminho)}..." do
|
|
21
|
+
Console.print "descompactando #{File.basename(caminho)} (#{percentual}%)..." do
|
|
23
22
|
descompactar_arquivo_zip
|
|
24
23
|
end
|
|
25
24
|
end
|
|
26
25
|
|
|
27
26
|
private
|
|
28
27
|
|
|
28
|
+
def validar_que_nao_eh_diretorio
|
|
29
|
+
return unless File.directory?(caminho)
|
|
30
|
+
|
|
31
|
+
Teodoro.exit('', Rainbow("Erro! \"#{caminho}\" é um diretório.").red)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def percentual
|
|
35
|
+
(indice + 1) * 100 / empresa.qtd_de_arquivos_de_origem
|
|
36
|
+
end
|
|
37
|
+
|
|
29
38
|
def descompactar_arquivo_zip
|
|
30
39
|
Zip::File.open(caminho) do |zip|
|
|
31
40
|
zip
|
|
@@ -35,8 +44,7 @@ module Teodoro
|
|
|
35
44
|
end
|
|
36
45
|
end
|
|
37
46
|
rescue Zip::Error
|
|
38
|
-
|
|
39
|
-
exit
|
|
47
|
+
Teodoro.exit('', Rainbow("Erro! Arquivo \"#{caminho}\" corrompido.").red)
|
|
40
48
|
end
|
|
41
49
|
|
|
42
50
|
def extrair(entrada)
|
data/lib/teodoro/arquivo_xml.rb
CHANGED
|
@@ -99,20 +99,23 @@ module Teodoro
|
|
|
99
99
|
|
|
100
100
|
private
|
|
101
101
|
|
|
102
|
-
def initialize(empresa:, caminho:)
|
|
102
|
+
def initialize(empresa:, caminho:, indice:)
|
|
103
103
|
@empresa = empresa
|
|
104
104
|
@caminho = caminho
|
|
105
|
+
@indice = indice
|
|
105
106
|
end
|
|
106
107
|
|
|
107
108
|
attr_reader :empresa, :caminho
|
|
108
109
|
|
|
109
110
|
public
|
|
110
111
|
|
|
112
|
+
attr_accessor :indice, :arquivo_retificado
|
|
113
|
+
|
|
111
114
|
attr_reader :recibo_do_evento_a_excluir, :recibo_do_evento_a_retificar, :momento_de_processamento_pelo_e_social
|
|
112
115
|
|
|
113
116
|
# otimizacao do gerenciamento de memoria
|
|
114
117
|
def carregar
|
|
115
|
-
Console.print "carregando #{nome}.xml..." do
|
|
118
|
+
Console.print "carregando #{nome}.xml (#{percentual}%)..." do
|
|
116
119
|
evento, recibo = carregar_evento_e_recibo
|
|
117
120
|
|
|
118
121
|
@recibo_do_evento_a_excluir = evento['infoExclusao/nrRecEvt'] if exclusao_por_recibo?
|
|
@@ -126,6 +129,10 @@ module Teodoro
|
|
|
126
129
|
tratar_excecao(e)
|
|
127
130
|
end
|
|
128
131
|
|
|
132
|
+
def nome
|
|
133
|
+
@nome ||= File.basename(caminho, '.xml')
|
|
134
|
+
end
|
|
135
|
+
|
|
129
136
|
def exclusao_por_recibo?
|
|
130
137
|
tipo_de_evento == 'S3000'
|
|
131
138
|
end
|
|
@@ -138,16 +145,12 @@ module Teodoro
|
|
|
138
145
|
TIPOS_DE_EVENTO_PROCESSAVEIS.include?(tipo_de_evento)
|
|
139
146
|
end
|
|
140
147
|
|
|
141
|
-
def nome
|
|
142
|
-
@nome ||= File.basename(caminho, '.xml')
|
|
143
|
-
end
|
|
144
|
-
|
|
145
148
|
def s1000?
|
|
146
149
|
tipo_de_evento == 'S1000'
|
|
147
150
|
end
|
|
148
151
|
|
|
149
152
|
def processar
|
|
150
|
-
Console.print "processando #{nome}.xml..." do
|
|
153
|
+
Console.print "processando #{nome}.xml (#{percentual}%)..." do
|
|
151
154
|
validar_versao_do_leiaute
|
|
152
155
|
processar_arquivo
|
|
153
156
|
end
|
|
@@ -187,6 +190,10 @@ module Teodoro
|
|
|
187
190
|
raise 'arquivo corrompido (sem data e horário do processamento do evento)'
|
|
188
191
|
end
|
|
189
192
|
|
|
193
|
+
def percentual
|
|
194
|
+
retificacao? ? arquivo_retificado.percentual : (indice + 1) * 100 / empresa.qtd_de_arquivos_xml
|
|
195
|
+
end
|
|
196
|
+
|
|
190
197
|
def validar_versao_do_leiaute
|
|
191
198
|
raise unless (VERSOES_DE_LEIAUTE_2 + VERSOES_DE_LEIAUTE_SIMPLIFICADO).include?(versao_do_leiaute)
|
|
192
199
|
end
|
|
@@ -218,7 +225,12 @@ module Teodoro
|
|
|
218
225
|
def arquivo
|
|
219
226
|
classe_do_arquivo.new(
|
|
220
227
|
empresa: empresa,
|
|
221
|
-
arquivo_xml: Obj.new(
|
|
228
|
+
arquivo_xml: Obj.new(
|
|
229
|
+
percentual: percentual,
|
|
230
|
+
leiaute_simplificado?: leiaute_simplificado?,
|
|
231
|
+
evento: evento,
|
|
232
|
+
recibo: recibo
|
|
233
|
+
)
|
|
222
234
|
)
|
|
223
235
|
end
|
|
224
236
|
|
data/lib/teodoro/empresa.rb
CHANGED
|
@@ -29,12 +29,14 @@ module Teodoro
|
|
|
29
29
|
class Impl # rubocop:disable Metrics/ClassLength
|
|
30
30
|
private
|
|
31
31
|
|
|
32
|
-
def initialize(caminho:, destino:)
|
|
32
|
+
def initialize(caminho:, qtd_de_empresas:, indice:, destino:)
|
|
33
33
|
@caminho = caminho
|
|
34
|
+
@qtd_de_empresas = qtd_de_empresas
|
|
35
|
+
@indice = indice
|
|
34
36
|
@destino = File.join(destino, nome_do_diretorio)
|
|
35
37
|
end
|
|
36
38
|
|
|
37
|
-
attr_reader :caminho, :destino
|
|
39
|
+
attr_reader :caminho, :qtd_de_empresas, :indice, :destino
|
|
38
40
|
|
|
39
41
|
public
|
|
40
42
|
|
|
@@ -57,6 +59,14 @@ module Teodoro
|
|
|
57
59
|
ajustar_nome_do_ultimo_arquivo_emp_data
|
|
58
60
|
end
|
|
59
61
|
|
|
62
|
+
def qtd_de_arquivos_de_origem
|
|
63
|
+
@qtd_de_arquivos_de_origem ||= caminhos_dos_arquivos_de_origem.size
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def qtd_de_arquivos_xml
|
|
67
|
+
@qtd_de_arquivos_xml ||= arquivos_xml.size
|
|
68
|
+
end
|
|
69
|
+
|
|
60
70
|
def destino_dos_arquivos_data
|
|
61
71
|
@destino_dos_arquivos_data ||= File.join(destino, 'data')
|
|
62
72
|
end
|
|
@@ -104,7 +114,7 @@ module Teodoro
|
|
|
104
114
|
private
|
|
105
115
|
|
|
106
116
|
def dar_feedback_para_o_usuario
|
|
107
|
-
puts Rainbow(nome_do_diretorio).green
|
|
117
|
+
puts Rainbow(nome_do_diretorio).green + " (#{indice + 1} de #{qtd_de_empresas})"
|
|
108
118
|
end
|
|
109
119
|
|
|
110
120
|
def nome_do_diretorio
|
|
@@ -140,8 +150,19 @@ module Teodoro
|
|
|
140
150
|
|
|
141
151
|
def arquivos_de_origem
|
|
142
152
|
@arquivos_de_origem ||=
|
|
143
|
-
|
|
144
|
-
.map
|
|
153
|
+
caminhos_dos_arquivos_de_origem
|
|
154
|
+
.map.with_index do |caminho, indice|
|
|
155
|
+
ArquivoDeOrigem.new(
|
|
156
|
+
empresa: self,
|
|
157
|
+
caminho: caminho,
|
|
158
|
+
indice: indice,
|
|
159
|
+
destino_dos_arquivos_xml: destino_dos_arquivos_xml
|
|
160
|
+
)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def caminhos_dos_arquivos_de_origem
|
|
165
|
+
@caminhos_dos_arquivos_de_origem ||= Dir[File.join(caminho, '*.zip')]
|
|
145
166
|
end
|
|
146
167
|
|
|
147
168
|
def carregar_arquivos_xml
|
|
@@ -150,14 +171,18 @@ module Teodoro
|
|
|
150
171
|
|
|
151
172
|
def arquivos_xml
|
|
152
173
|
@arquivos_xml ||=
|
|
153
|
-
|
|
154
|
-
.map { |caminho| ArquivoXML.new(empresa: self, caminho: caminho) }
|
|
174
|
+
caminhos_dos_arquivos_xml
|
|
175
|
+
.map.with_index { |caminho, indice| ArquivoXML.new(empresa: self, caminho: caminho, indice: indice) }
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def caminhos_dos_arquivos_xml
|
|
179
|
+
@caminhos_dos_arquivos_xml ||= Dir[File.join(destino_dos_arquivos_xml, '*.xml')]
|
|
155
180
|
end
|
|
156
181
|
|
|
157
182
|
def classificar_arquivos_xml # rubocop:disable Metrics/MethodLength
|
|
158
183
|
Console.print 'classificando os arquivos XML...' do
|
|
159
184
|
arquivos_xml
|
|
160
|
-
.tap {
|
|
185
|
+
.tap { reinicializar_arquivos_xml }
|
|
161
186
|
.select(&:processavel?)
|
|
162
187
|
.each do |arquivo_xml|
|
|
163
188
|
if arquivo_xml.exclusao_por_recibo?
|
|
@@ -171,17 +196,24 @@ module Teodoro
|
|
|
171
196
|
end
|
|
172
197
|
end
|
|
173
198
|
|
|
199
|
+
def reinicializar_arquivos_xml
|
|
200
|
+
@arquivos_xml = []
|
|
201
|
+
@qtd_de_arquivos_xml = nil
|
|
202
|
+
end
|
|
203
|
+
|
|
174
204
|
def ordenar_arquivos_xml
|
|
175
205
|
Console.print 'ordenando os arquivos XML...' do
|
|
176
206
|
arquivos_xml.sort_by! { [_1.momento_de_processamento_pelo_e_social, _1.nome] }
|
|
207
|
+
arquivos_xml.each.with_index do |arquivo_xml, indice|
|
|
208
|
+
arquivo_xml.indice = indice
|
|
209
|
+
end
|
|
177
210
|
end
|
|
178
211
|
end
|
|
179
212
|
|
|
180
213
|
def validar_que_primeiro_arquivo_xml_eh_s1000
|
|
181
214
|
return if primeiro_arquivo_xml_eh_s1000?
|
|
182
215
|
|
|
183
|
-
|
|
184
|
-
exit
|
|
216
|
+
Teodoro.exit('', Rainbow('Erro! Primeiro arquivo XML (evento) deve ser S-1000.').red)
|
|
185
217
|
end
|
|
186
218
|
|
|
187
219
|
def primeiro_arquivo_xml_eh_s1000?
|
|
@@ -190,20 +222,24 @@ module Teodoro
|
|
|
190
222
|
|
|
191
223
|
def processar_arquivos_xml
|
|
192
224
|
# otimizacao do gerenciamento de memoria
|
|
193
|
-
|
|
225
|
+
while arquivos_xml.any?
|
|
226
|
+
arquivos_xml.first.processar
|
|
227
|
+
arquivos_xml.shift
|
|
228
|
+
end
|
|
194
229
|
end
|
|
195
230
|
|
|
196
231
|
def validar_que_nao_houve_evento_de_retificacao_sem_inclusao_correspondente
|
|
197
232
|
return if arquivo_xml_por_recibo_de_evento_retificado.empty?
|
|
198
233
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
234
|
+
Teodoro.exit(
|
|
235
|
+
'',
|
|
236
|
+
[
|
|
237
|
+
'Erro! Evento(s) de retificação sem inclusão correspondente:',
|
|
238
|
+
*arquivo_xml_por_recibo_de_evento_retificado
|
|
239
|
+
.values
|
|
240
|
+
.map { "#{_1.nome}.xml" }
|
|
241
|
+
].map { Rainbow(_1).red }
|
|
242
|
+
)
|
|
207
243
|
end
|
|
208
244
|
|
|
209
245
|
def salvar_arquivo_de_dados_gerais
|
|
@@ -215,15 +251,21 @@ module Teodoro
|
|
|
215
251
|
end
|
|
216
252
|
|
|
217
253
|
def processar_cargos_gerados
|
|
218
|
-
|
|
254
|
+
Console.print 'gerando arquivos de cargos...' do
|
|
255
|
+
cargos_gerados.each(&:processar)
|
|
256
|
+
end
|
|
219
257
|
end
|
|
220
258
|
|
|
221
259
|
def processar_funcoes_geradas
|
|
222
|
-
|
|
260
|
+
Console.print 'gerando arquivos de funções...' do
|
|
261
|
+
funcoes_geradas.each(&:processar)
|
|
262
|
+
end
|
|
223
263
|
end
|
|
224
264
|
|
|
225
265
|
def setar_proximo_identificador_de_tabela_de_rubricas_nos_arquivos_data_emp
|
|
226
|
-
|
|
266
|
+
Console.print 'definindo próximo identificador de rubrica...' do
|
|
267
|
+
arquivos_data_emp.each(&:setar_proximo_identificador_de_tabela_de_rubricas)
|
|
268
|
+
end
|
|
227
269
|
end
|
|
228
270
|
|
|
229
271
|
def arquivos_data_emp
|
|
@@ -237,7 +279,7 @@ module Teodoro
|
|
|
237
279
|
end
|
|
238
280
|
|
|
239
281
|
def proximo_identificador_de_tabela_de_rubricas
|
|
240
|
-
(ultimo_identificador_de_tabela_de_rubricas || 0) + 1
|
|
282
|
+
@proximo_identificador_de_tabela_de_rubricas ||= (ultimo_identificador_de_tabela_de_rubricas || 0) + 1
|
|
241
283
|
end
|
|
242
284
|
|
|
243
285
|
def ultimo_identificador_de_tabela_de_rubricas
|
|
@@ -257,7 +299,9 @@ module Teodoro
|
|
|
257
299
|
end
|
|
258
300
|
|
|
259
301
|
def ajustar_nome_do_ultimo_arquivo_emp_data
|
|
260
|
-
|
|
302
|
+
Console.print 'ajustando nome do último arquivo da empresa...' do
|
|
303
|
+
File.rename(caminho_do_ultimo_arquivo_emp_data, novo_caminho_do_ultimo_arquivo_emp_data)
|
|
304
|
+
end
|
|
261
305
|
end
|
|
262
306
|
|
|
263
307
|
def caminho_do_ultimo_arquivo_emp_data
|
|
@@ -14,8 +14,7 @@ module Teodoro
|
|
|
14
14
|
def validar_existencia_do_contrato_de_trabalho
|
|
15
15
|
return if empresa.trabalhadores[cpf_do_trabalhador]
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
exit
|
|
17
|
+
Teodoro.exit('', Rainbow('Erro! Evento de início de contrato de trabalho inexistente.').red)
|
|
19
18
|
end
|
|
20
19
|
|
|
21
20
|
def salvar_arquivos_data
|
|
@@ -134,7 +134,9 @@ module Teodoro
|
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def contrato_de_emprego
|
|
137
|
-
@contrato_de_emprego ||=
|
|
137
|
+
@contrato_de_emprego ||=
|
|
138
|
+
contratos_de_emprego[alteracao_contratual.matricula_do_trabalhador]
|
|
139
|
+
.tap { Teodoro.exit('', Rainbow('Erro! S-2200 correspondente não encontrado.').red) unless _1 }
|
|
138
140
|
end
|
|
139
141
|
|
|
140
142
|
def contratos_de_emprego
|
|
@@ -185,7 +187,7 @@ module Teodoro
|
|
|
185
187
|
['ESX_DATAADMISSAO', data_de_admissao, :data],
|
|
186
188
|
['ESX_DATAALTERACAO', data_da_alteracao, :data],
|
|
187
189
|
['cpfTrabalhador', cpf_do_trabalhador],
|
|
188
|
-
%w[nomeTrabalhador nomeTrabalhador], #
|
|
190
|
+
%w[nomeTrabalhador nomeTrabalhador], # TODO: Tales
|
|
189
191
|
['IdentificacaoVinculo_Cpf', cpf_do_trabalhador],
|
|
190
192
|
['IdentificacaoVinculo_Matricula', alteracao_contratual.matricula_do_trabalhador],
|
|
191
193
|
['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
|
|
@@ -22,14 +22,13 @@ module Teodoro
|
|
|
22
22
|
empresa.contratos_de_trabalho_sem_vinculo
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def inicio_de_contrato
|
|
25
|
+
def inicio_de_contrato
|
|
26
26
|
@inicio_de_contrato ||= Obj.new(
|
|
27
27
|
trabalhador: trabalhador,
|
|
28
28
|
matricula_do_trabalhador: evento['infoTSVInicio/matricula'],
|
|
29
29
|
categoria_do_trabalhador: evento['infoTSVInicio/codCateg'],
|
|
30
30
|
data_de_inicio: evento['infoTSVInicio/dtInicio'],
|
|
31
31
|
natureza_da_atividade: evento['infoTSVInicio/natAtividade'],
|
|
32
|
-
matricula: evento['infoTSVInicio/matricula'],
|
|
33
32
|
opcao_pelo_fgts: leiaute.opcao_pelo_fgts,
|
|
34
33
|
data_de_opcao_pelo_fgts: leiaute.data_de_opcao_pelo_fgts,
|
|
35
34
|
recibo: numero_do_recibo
|
|
@@ -239,7 +238,7 @@ module Teodoro
|
|
|
239
238
|
['localTrabGeral_nrInsc', evento['infoTSVInicio/infoComplementares/localTrabGeral/nrInsc']],
|
|
240
239
|
['localTrabGeral_descComp', evento['infoTSVInicio/infoComplementares/localTrabGeral/descComp']],
|
|
241
240
|
['EventoAdmissao_InformacoesInicio_CodigoCategoria', inicio_de_contrato.categoria_do_trabalhador],
|
|
242
|
-
['EventoAdmissao_InformacoesInicio_Matricula', inicio_de_contrato.
|
|
241
|
+
['EventoAdmissao_InformacoesInicio_Matricula', inicio_de_contrato.matricula_do_trabalhador],
|
|
243
242
|
['DescricaoProcEmi', processo_de_emissao_do_evento],
|
|
244
243
|
['IdEventoXml', id_do_evento],
|
|
245
244
|
['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
|
data/lib/teodoro/version.rb
CHANGED
data/lib/teodoro.rb
CHANGED
|
@@ -41,6 +41,11 @@ module Teodoro
|
|
|
41
41
|
Execution.new(args).call
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
def self.exit(*args)
|
|
45
|
+
puts(*args)
|
|
46
|
+
Kernel.exit
|
|
47
|
+
end
|
|
48
|
+
|
|
44
49
|
class Execution
|
|
45
50
|
NOME_DO_PROGRAMA = 'teodoro'.freeze
|
|
46
51
|
|
|
@@ -142,8 +147,7 @@ module Teodoro
|
|
|
142
147
|
end
|
|
143
148
|
|
|
144
149
|
def erro(erro, saiba_mais: false)
|
|
145
|
-
|
|
146
|
-
exit
|
|
150
|
+
Teodoro.exit([erro, *('Saiba mais em sites.google.com/fortestecnologia.com.br/teodoro.' if saiba_mais)])
|
|
147
151
|
end
|
|
148
152
|
|
|
149
153
|
def processar_empresas
|
|
@@ -152,7 +156,23 @@ module Teodoro
|
|
|
152
156
|
end
|
|
153
157
|
|
|
154
158
|
def empresas
|
|
155
|
-
@empresas ||=
|
|
159
|
+
@empresas ||=
|
|
160
|
+
caminhos_das_empresas.map.with_index do |caminho, indice|
|
|
161
|
+
Empresa.new(
|
|
162
|
+
caminho: caminho,
|
|
163
|
+
qtd_de_empresas: qtd_de_empresas,
|
|
164
|
+
indice: indice,
|
|
165
|
+
destino: destino
|
|
166
|
+
)
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def caminhos_das_empresas
|
|
171
|
+
@caminhos_das_empresas ||= Dir[File.join(origem, '*')]
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def qtd_de_empresas
|
|
175
|
+
@qtd_de_empresas ||= caminhos_das_empresas.size
|
|
156
176
|
end
|
|
157
177
|
end
|
|
158
178
|
end
|
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.67.
|
|
4
|
+
version: 0.67.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fortes Tecnologia
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-03-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: nokogiri
|