ntq_excelsior 1.0.0 → 1.0.2
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/Gemfile.lock +1 -1
- data/lib/ntq_excelsior/importer.rb +9 -7
- data/lib/ntq_excelsior/version.rb +2 -2
- 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: b29b9647c8d1431ec7f81883960af69dbaa8686bb29398e015c30b1d07c6e5f9
|
4
|
+
data.tar.gz: c3b9e0e4fd0718d2cdeea72484f07755dff6376878ae4042599056233f08ae82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc5abd51daaae03d38f51329ee2201e04f758102b0bcc5794e987f033ddead70f04fb7da8755fb9b476742d20d724b0f827790291140c422e15b31c8319a8ab9
|
7
|
+
data.tar.gz: 94a68a1fda84f0a79f1f3ac432622f18582f11e083ce9e4e5878bab5cebaef85bdd92830fcc90457acf9af9ee62270239d508bda6a1a20dd07bb38934c99a9b3
|
data/Gemfile.lock
CHANGED
@@ -54,7 +54,7 @@ module NtqExcelsior
|
|
54
54
|
return @required_headers if @required_headers
|
55
55
|
|
56
56
|
@required_columns = self.class.schema.select { |_field, column_config| !column_config.is_a?(Hash) || !column_config.key?(:required) || column_config[:required] }
|
57
|
-
@required_headers = @required_columns.values.map { |column| get_column_header(column) }.map { |header|
|
57
|
+
@required_headers = @required_columns.values.map { |column| get_column_header(column) }.map { |header| transform_header_to_regexp(header) }
|
58
58
|
if self.class.primary_key && !@required_columns.keys.include?(self.class.primary_key)
|
59
59
|
@required_headers.unshift(Regexp.new(self.class.primary_key.to_s, "i"))
|
60
60
|
end
|
@@ -64,17 +64,19 @@ module NtqExcelsior
|
|
64
64
|
def spreadsheet_data
|
65
65
|
begin
|
66
66
|
spreadsheet_data = spreadsheet.sheet(spreadsheet.sheets[0]).parse(header_search: required_headers)
|
67
|
-
raise 'File is inconsistent, please check all headers of your file for specials characters (, / ; etc...)'
|
67
|
+
raise 'File is inconsistent, please check all headers of your file for specials characters (, / ; etc...)' unless spreadsheet_data.size > 0
|
68
68
|
rescue Roo::HeaderRowNotFoundError => e
|
69
69
|
missing_headers = []
|
70
70
|
|
71
71
|
e.message.slice(1..-1).chop.split(",").map(&:strip).each do |header_missing|
|
72
|
-
header_missing_regex =
|
72
|
+
header_missing_regex = transform_header_to_regexp(header_missing, true)
|
73
73
|
header_found = @required_columns.values.find do |column|
|
74
|
-
|
74
|
+
transform_header_to_regexp(get_column_header(column)) == header_missing_regex
|
75
75
|
end
|
76
|
-
if header_found && header_found.is_a?(Hash)
|
77
|
-
missing_headers << header_found[:humanized_header]
|
76
|
+
if header_found && header_found.is_a?(Hash)
|
77
|
+
missing_headers << header_found[:header].is_a?(String) ? header_found[:header] : (header_found[:humanized_header] || header_missing)
|
78
|
+
elsif header_found&.is_a?(String)
|
79
|
+
missing_headers << header_found
|
78
80
|
else
|
79
81
|
missing_headers << header_missing
|
80
82
|
end
|
@@ -224,7 +226,7 @@ module NtqExcelsior
|
|
224
226
|
column[:header]
|
225
227
|
end
|
226
228
|
|
227
|
-
def
|
229
|
+
def transform_header_to_regexp(header, gsub_enclosure = false)
|
228
230
|
return header unless header.is_a?(String)
|
229
231
|
|
230
232
|
if gsub_enclosure && header.scan(/^\/[\^]?([^(\$\/)]+)[\$]?\/[i]?$/i) && $1
|
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: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: caxlsx
|