teodoro 0.52.0 → 0.54.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 033c3a5f2e2a4c82341dbf4c7cd760e1515e6ca71a9599ebf8141dbc033405d5
4
- data.tar.gz: 56b19eecec7796d366816765af2b09701c3263f65bbafef3b91ba6cc2e571f3f
3
+ metadata.gz: 6c95bf6aed5ccb6a0eaffc68a990462e1249009ee098d96e8695e3a2273851c3
4
+ data.tar.gz: 82d60393a60c808c67c32966f5781a74f98a87709e50ada2f9bc458749ac1b40
5
5
  SHA512:
6
- metadata.gz: 967f129d85ab4770ab33b0de1d59faec79b9faafc5f8f89a217aa853110a00f9299c39be3ff617004c14d3f1fc8e2f392744252799126209b36e1debb90a2d2a
7
- data.tar.gz: dcf467a8bea28a4d65382963aece25259d930b6adb1957e92a48c07a2e3c0327d1fdc7b396cf844de4f097600a22d1aa42204a0b44a8700ae742dc881e041071
6
+ metadata.gz: a65eeffc3731a19c0c731a05413860a3b45813ea66ea3568abfca99143123474e74eb201f5bef2686f9461cb8fd1cfb73293fdf7fd9b5fa128dd10f248cf4650
7
+ data.tar.gz: d8659e2e95c92fe5d33ec18b8bf9d3108ee5bdf1fc61a7806ddecde1a3f5970e3c740147ee1b9cf78c564cea8b5ad80082449867891109d3fcf6064a5548f042
@@ -67,7 +67,7 @@ module Teodoro
67
67
  if inclusao_de_arquivo?
68
68
  chaves_valores
69
69
  elsif atualizacao_de_arquivo?
70
- chaves_valores_do_arquivo_original.merge(chaves_valores)
70
+ chaves_valores.atualizando(chaves_valores_do_arquivo_original)
71
71
  end
72
72
  end
73
73
  end
@@ -100,13 +100,23 @@ module Teodoro
100
100
  @itens = itens
101
101
  .map { Item.new(*_1) }
102
102
  .select(&:selecionar?)
103
- .map { [_1.chave, _1.valor] }
104
103
  end
105
104
 
106
- def_delegators :itens, :map
105
+ def map
106
+ itens
107
+ .map { yield [_1.chave, _1.valor] }
108
+ end
107
109
 
108
- def to_hash
109
- itens.to_h
110
+ def atualizando(chaves_valores)
111
+ chaves_valores
112
+ .dup
113
+ .tap do
114
+ itens.each do |item|
115
+ chaves_valores
116
+ .delete_if { |chave, _| item.semelhante?(chave) }
117
+ end
118
+ end
119
+ .merge(itens.to_h { [_1.chave, _1.valor] })
110
120
  end
111
121
 
112
122
  private
@@ -126,6 +136,14 @@ module Teodoro
126
136
  !valor.vazio? || opcoes[:manter_se_vazio]
127
137
  end
128
138
 
139
+ def semelhante?(outra_chave)
140
+ chave.match?(/_\d+_/) &&
141
+ [chave, outra_chave]
142
+ .map { _1.gsub(/_\d+_/, '#') }
143
+ .uniq
144
+ .size == 1
145
+ end
146
+
129
147
  private
130
148
 
131
149
  attr_reader :opcoes
@@ -126,7 +126,7 @@ module Teodoro
126
126
  end
127
127
 
128
128
  def softwares_house
129
- evento.*('infoEmpregador/*/infoCadastro/softwareHouse')
129
+ evento.*('infoEmpregador/*/infoCadastro/softwareHouse') # rubocop:disable Style/OperatorMethodCall
130
130
  end
131
131
  end
132
132
  end
@@ -136,7 +136,7 @@ module Teodoro
136
136
  end
137
137
  end
138
138
 
139
- def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
139
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity
140
140
  [
141
141
  Obj.new(
142
142
  operacao: :inclusao,
@@ -224,7 +224,7 @@ module Teodoro
224
224
  ['EventoAdmissao_Contato_EmailPrincipal', trabalhador.contato.email_principal],
225
225
  ['EventoAdmissao_Contato_TelefoneAlternativo', trabalhador.contato.fone_alternativo],
226
226
  ['EventoAdmissao_Contato_EmailAlternativo', trabalhador.contato.email_alternativo],
227
- *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
227
+ *evento.*('trabalhador/dependente').map.with_index do |dependente, seq|
228
228
  [
229
229
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
230
230
  ["EventoAdmissao_Dependente_#{seq}_DataNascimento", dependente['dtNascto'], :data],
@@ -379,7 +379,19 @@ module Teodoro
379
379
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS', leiaute.data_de_opcao_pelo_fgts, :data],
380
380
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS', leiaute.opcao_pelo_fgts],
381
381
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', admissao.natureza_da_atividade],
382
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', admissao.tipo_de_admissao]
382
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', admissao.tipo_de_admissao],
383
+ *evento.*('trabalhador/dependente').map.with_index do |dependente, seq|
384
+ [
385
+ ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
386
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimento", dependente['dtNascto'], :data],
387
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimentoFormatada", dependente['dtNascto'], :data],
388
+ ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
389
+ ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
390
+ ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
391
+ ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
392
+ ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
393
+ ]
394
+ end.sum([])
383
395
  # rubocop:enable Layout/LineLength
384
396
  ]
385
397
  )
@@ -211,7 +211,7 @@ module Teodoro
211
211
  ['EventoAdmissao_Contato_TelefonePrincipal', trabalhador.contato.fone_principal],
212
212
  ['EventoAdmissao_Contato_EmailPrincipal', trabalhador.contato.email_principal],
213
213
  ['EventoAdmissao_Contato_TelefoneAlternativo', trabalhador.contato.fone_alternativo],
214
- *evento.*('alteracao/dadosTrabalhador/dependente').map.with_index(1) do |dependente, seq|
214
+ *evento.*('alteracao/dadosTrabalhador/dependente').map.with_index do |dependente, seq|
215
215
  [
216
216
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
217
217
  ["EventoAdmissao_Dependente_#{seq}_DataNascimento", dependente['dtNascto'], :data],
@@ -295,7 +295,19 @@ module Teodoro
295
295
  ['EventoAdmissao_Contato_TelefonePrincipal', trabalhador.contato.fone_principal],
296
296
  ['EventoAdmissao_Contato_EmailPrincipal', trabalhador.contato.email_principal],
297
297
  ['EventoAdmissao_Contato_TelefoneAlternativo', trabalhador.contato.fone_alternativo],
298
- ['EventoAdmissao_Contato_EmailAlternativo', trabalhador.contato.email_alternativo]
298
+ ['EventoAdmissao_Contato_EmailAlternativo', trabalhador.contato.email_alternativo],
299
+ *evento.*('alteracao/dadosTrabalhador/dependente').map.with_index do |dependente, seq|
300
+ [
301
+ ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
302
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimento", dependente['dtNascto'], :data],
303
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimentoFormatada", dependente['dtNascto'], :data],
304
+ ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
305
+ ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
306
+ ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
307
+ ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
308
+ ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
309
+ ]
310
+ end.sum([])
299
311
  # rubocop:enable Layout/LineLength
300
312
  ]
301
313
  )
@@ -199,7 +199,7 @@ module Teodoro
199
199
  ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
200
200
  ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
201
201
  ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
202
- *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
202
+ *evento.*('trabalhador/dependente').map.with_index do |dependente, seq|
203
203
  [
204
204
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
205
205
  ["EventoAdmissao_Dependente_#{seq}_DataNascimento", dependente['dtNascto'], :data],
@@ -349,7 +349,18 @@ module Teodoro
349
349
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS', leiaute.data_de_opcao_pelo_fgts, :data],
350
350
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS', leiaute.opcao_pelo_fgts],
351
351
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', inicio_de_contrato.natureza_da_atividade],
352
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao']
352
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao'],
353
+ *evento.*('trabalhador/dependente').map.with_index do |dependente, seq|
354
+ [
355
+ ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
356
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimento", dependente['dtNascto'], :data],
357
+ ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
358
+ ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
359
+ ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
360
+ ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
361
+ ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
362
+ ]
363
+ end.sum([])
353
364
  # rubocop:enable Layout/LineLength
354
365
  ]
355
366
  )
@@ -1,3 +1,3 @@
1
1
  module Teodoro
2
- VERSION = '0.52.0'.freeze
2
+ VERSION = '0.54.0'.freeze
3
3
  end
data/lib/teodoro/xml.rb CHANGED
@@ -16,7 +16,7 @@ module Teodoro
16
16
  node_set = xml.css("/*/#{path.join('/')}")
17
17
 
18
18
  raise if node_set.size > 1
19
- return if node_set.size.zero?
19
+ return if node_set.empty?
20
20
 
21
21
  node = node_set[0]
22
22
  if node.css('*').empty?
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.52.0
4
+ version: 0.54.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fortes Tecnologia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-25 00:00:00.000000000 Z
11
+ date: 2023-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -80,104 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: byebug
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: rspec
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop-performance
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: rubocop-rspec
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: simplecov
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
83
  description:
182
84
  email:
183
85
  executables:
@@ -261,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
163
  - !ruby/object:Gem::Version
262
164
  version: '0'
263
165
  requirements: []
264
- rubygems_version: 3.3.26
166
+ rubygems_version: 3.4.3
265
167
  signing_key:
266
168
  specification_version: 4
267
169
  summary: ''