teodoro 0.52.0 → 0.53.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 033c3a5f2e2a4c82341dbf4c7cd760e1515e6ca71a9599ebf8141dbc033405d5
4
- data.tar.gz: 56b19eecec7796d366816765af2b09701c3263f65bbafef3b91ba6cc2e571f3f
3
+ metadata.gz: dd34ee757236c62c751e76cd584e81e092e853f8e246da10b4447e55639e30ff
4
+ data.tar.gz: c8a960cb3fe7c80e7036469c65cca46667bfcb834608166573288b34aa29157f
5
5
  SHA512:
6
- metadata.gz: 967f129d85ab4770ab33b0de1d59faec79b9faafc5f8f89a217aa853110a00f9299c39be3ff617004c14d3f1fc8e2f392744252799126209b36e1debb90a2d2a
7
- data.tar.gz: dcf467a8bea28a4d65382963aece25259d930b6adb1957e92a48c07a2e3c0327d1fdc7b396cf844de4f097600a22d1aa42204a0b44a8700ae742dc881e041071
6
+ metadata.gz: 529aee68e44b7dd71ff7ccce18e71bfecae1ed359c85214085b537b2b9338322f1177de6a0ef71611be4eb61739fbd7ee5578329d71100821c2b99a8588e598c
7
+ data.tar.gz: cea95710787b976ec3ae72522507bc56be964571ad1cff47e367e668514c86cc3a23e11422904227f4482204e1439e00ceebea2a86591b6055205614d8e4b4a7
@@ -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,
@@ -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(1) 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
  )
@@ -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(1) 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
  )
@@ -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(1) 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.53.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.53.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-02 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: ''