ntq_excelsior 0.5.1 → 0.5.3

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: d625de9852ec2a7f9ed5d97f4ae6cd73f2420fe3aea228b10baff171525dbc6d
4
- data.tar.gz: 8e956d58ac4a5556f059f2c093cd57c9148c9f2d3d9aa1f8fba04a2a1ed6a769
3
+ metadata.gz: c83e96aa4574d61fab90bd411335709ee1bfc7553866b9a622921d1e8a9d23df
4
+ data.tar.gz: 45ed1db546080412b594bb3e2af1d5ec0f15df57bb80c65f7d51d6a86ca1627b
5
5
  SHA512:
6
- metadata.gz: 7379be5c7679ff1c8126ce0bd39381053e23c8179bdcc50c3f70382e0ce1ffe217d215a02e64c494d0e026e74e4e4908338526a3476e1d3dbf0ea87c58b27b99
7
- data.tar.gz: 6239406502286f7ea1a68ebcbf85f4c9c6b72bd4c55fbd9c2247fd2208a3f5a2d0e500256b339a41bc5357dd03281cff9bd83d253c39257237412f1c9bc84496
6
+ metadata.gz: c5a6cde69fea2f857b25090b68fdd3b7055646a341a4be7b9a53428ca2f318234c708199da2e678a65d2703c6dc28384eb51416eeba611a4efae12e829dff8cc
7
+ data.tar.gz: 99be33b0725e28427bc973a293429a19cd4d89669f397bd96ae74a209233e6e0529f2cf1c249c6936a8c14d5648abf400fdf4e762d5faee9838144a431e0518e
data/README.md CHANGED
@@ -45,6 +45,7 @@ class UserExporter < NtqExcelsior::Exporter
45
45
  },
46
46
  {
47
47
  title: 'Email',
48
+ header_styles: [:blue],
48
49
  resolve: 'email'
49
50
  },
50
51
  {
@@ -91,6 +92,8 @@ class UserImporter < NtqExcelsior::Importer
91
92
 
92
93
  primary_key :email
93
94
 
95
+ ## if set to save, the record will not be save automatically after import_line
96
+ ## Errors have to be added to the @errors hash manually
94
97
  # autosave false
95
98
 
96
99
  structure [{
@@ -99,7 +99,7 @@ module NtqExcelsior
99
99
  headers.each do |header|
100
100
  width = header[:width] || 1
101
101
  row[:values] << header[:title] || ''
102
- row[:styles] << get_styles(header[:styles])
102
+ row[:styles] << get_styles(header[:header_styles] || header[:styles])
103
103
  if width > 1
104
104
  colspan = width - 1
105
105
  row[:values].push(*Array.new(colspan, nil))
@@ -144,11 +144,13 @@ module NtqExcelsior
144
144
 
145
145
  def import_line(line, save: true)
146
146
  record = find_or_initialize_record(line)
147
+ return { status: :not_found } unless record
148
+
147
149
  @success = false
148
150
  @action = nil
149
151
  @errors = []
150
152
 
151
- if (!self.class.autoset.nil? || self.class.autoset)
153
+ if (self.class.autoset)
152
154
  record = set_record_fields(record, line)
153
155
  end
154
156
 
@@ -173,11 +175,14 @@ module NtqExcelsior
173
175
  at = 0
174
176
  errors_lines = []
175
177
  success_count = 0
178
+ not_found_count = 0
176
179
  lines.each_with_index do |line, index|
177
- break if errors_lines.size == self.class.max_error_count
180
+ break if errors_lines.size == self.class.max_error_count
178
181
 
179
182
  result = import_line(line.with_indifferent_access, save: true)
180
183
  case result[:status]
184
+ when :not_found
185
+ not_found_count += 1
181
186
  when :success
182
187
  success_count += 1
183
188
  when :error
@@ -188,12 +193,12 @@ module NtqExcelsior
188
193
 
189
194
  if @status_tracker&.is_a?(Proc)
190
195
  at = (((index + 1).to_d / lines.size) * 100.to_d)
191
- @status_tracker.call(at)
196
+ @status_tracker.call(at)
192
197
  end
193
198
  end
194
199
 
195
- { success_count: success_count, errors: errors_lines }
200
+ { success_count: success_count, not_found_count: not_found_count, errors: errors_lines }
196
201
  end
197
202
 
198
203
  end
199
- end
204
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NtqExcelsior
4
- VERSION = "0.5.1"
4
+ VERSION = "0.5.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ntq_excelsior
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-02 00:00:00.000000000 Z
11
+ date: 2023-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caxlsx