ntq_excelsior 1.0.0 → 1.0.2

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: b1b7c2ea8995dcb68450bc1771e8fef43e04dc6aeea67b585783378bf68bd8c1
4
- data.tar.gz: a8f6b916a1b0cca7e6ee306a9453ac802d0ce859eb1f3bf82d1aa4d8e991ef40
3
+ metadata.gz: b29b9647c8d1431ec7f81883960af69dbaa8686bb29398e015c30b1d07c6e5f9
4
+ data.tar.gz: c3b9e0e4fd0718d2cdeea72484f07755dff6376878ae4042599056233f08ae82
5
5
  SHA512:
6
- metadata.gz: 0efaeba2512cd02f8770014c4a02c06b7245e6e42db275bd0f4d5f2a5455ca54b1aaec40fc221086d50795e706b1ec5594a5054cb7a3d6b04898abf57d795d39
7
- data.tar.gz: 3db4c3881a7a1677bd6a61b820384657cc25b2041f78463b175597b3032932f94550c7a8b941b975b18e571383dbdeb90e0e99618c873915c6aa57815c9fab0a
6
+ metadata.gz: dc5abd51daaae03d38f51329ee2201e04f758102b0bcc5794e987f033ddead70f04fb7da8755fb9b476742d20d724b0f827790291140c422e15b31c8319a8ab9
7
+ data.tar.gz: 94a68a1fda84f0a79f1f3ac432622f18582f11e083ce9e4e5878bab5cebaef85bdd92830fcc90457acf9af9ee62270239d508bda6a1a20dd07bb38934c99a9b3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ntq_excelsior (1.0.0)
4
+ ntq_excelsior (1.0.2)
5
5
  caxlsx (< 4)
6
6
  roo (< 3)
7
7
 
@@ -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| tranform_header_to_regexp(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 = tranform_header_to_regexp(header_missing, true)
72
+ header_missing_regex = transform_header_to_regexp(header_missing, true)
73
73
  header_found = @required_columns.values.find do |column|
74
- tranform_header_to_regexp(get_column_header(column)) == header_missing_regex
74
+ transform_header_to_regexp(get_column_header(column)) == header_missing_regex
75
75
  end
76
- if header_found && header_found.is_a?(Hash) && header_found[:humanized_header].present?
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 tranform_header_to_regexp(header, gsub_enclosure = false)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NtqExcelsior
4
- VERSION = "1.0.0"
5
- end
4
+ VERSION = "1.0.2"
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: 1.0.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-04 00:00:00.000000000 Z
11
+ date: 2023-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caxlsx