ntq_excelsior 0.5.2 → 0.5.4

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: e7c436cc2fa6215955ccad783bf7bb0db0a6962ff19f496bc6a409555f0829e9
4
- data.tar.gz: 68206589fc4d1c14bbed49a581997f007c3114bd3734f8a195386a1a2a611bf4
3
+ metadata.gz: cc8cbf2a89c838237dc9ab67a36e6c610b058ee4636ba2b7d8b1e6c782ffe989
4
+ data.tar.gz: d4ccb408477c98f9cb66cf7dea7e3ae255b1a69690090f58207c7786e9856647
5
5
  SHA512:
6
- metadata.gz: 71e8136e4e6cdbf1474688117c245c3395082bc61a87f782f0d55558d10f1b2a65749dbcd9b32010f5cffd1f7a03b4dcf5b14c42fc4d490b8b4ba2f862fe4aa3
7
- data.tar.gz: 2b98f40828019e1c0ffdc1a344826793b40f69445dcf15665c06a43bd6ea1c3cff670960ee3f026e637e2df65dc1c25dd6cd656a3d22a58163377277d69ee210
6
+ metadata.gz: ca1474e047e0785f7312a3275c8f4fda697c366b6efa156442eb253a9d8b7ead28d3d1997b35562f7300fa3a4cc506e2538a41b111470ba9424365c131775b9e
7
+ data.tar.gz: 2d45cdd5ad98112b37c94e0c60c1b07cdc92dd80a1d28ace095a958958d327d129a51b93fa8e7cfdb77e73a616d3ed5e656c6f1ebd408458025bacbcc7b675fc
data/README.md CHANGED
@@ -92,6 +92,8 @@ class UserImporter < NtqExcelsior::Importer
92
92
 
93
93
  primary_key :email
94
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
95
97
  # autosave false
96
98
 
97
99
  structure [{
@@ -53,7 +53,7 @@ module NtqExcelsior
53
53
  letters << index % 26
54
54
 
55
55
  while index >= 26 do
56
- index = index / 26 - 1
56
+ index = (index / 26) - 1
57
57
  letters << index % 26
58
58
  end
59
59
 
@@ -131,6 +131,9 @@ module NtqExcelsior
131
131
  accessors = accessors.split(".") if accessors.is_a?(String)
132
132
  value = dig_value(record, accessors)
133
133
  end
134
+ if value.is_a?(String)
135
+ type = :string
136
+ end
134
137
  if value.is_a?(Date)
135
138
  value = value.strftime("%Y-%m-%d")
136
139
  styles << :date_format
@@ -144,6 +144,8 @@ 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 = []
@@ -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.2"
4
+ VERSION = "0.5.4"
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.2
4
+ version: 0.5.4
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-13 00:00:00.000000000 Z
11
+ date: 2023-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caxlsx