xsv 0.3.8 → 0.3.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee84dde820110bc0a0589f2d9bea811ec537c60eec89a6393ba8daaa956dd9fe
4
- data.tar.gz: fea2b0b705cd4a231a0dd6a7f721607c8f3411413fcfc101cd8ea21d794e57e0
3
+ metadata.gz: c2aa2ded79ad696b69629b1c3056b565cd348b9583cb52aa5f8e32610a44d011
4
+ data.tar.gz: f66b3222504d6bd96c1c93c136cba30ba83bdb0c29bc52ce807d570f07788ba1
5
5
  SHA512:
6
- metadata.gz: 75d44ca538496f4d14a92eb2b51a01e0ab9e5da7995e9e7ff5a7e910d960442cd3291da9ee143393fe16cd4786cad0cff9fdc9a3175c57df6e7938f76c784df1
7
- data.tar.gz: da29709a4f7e0a5748eb99fc9c3514634573d3e3cfa63baaf3729976c07ff3cd49c6f2e50a58e8707e34429f5f15a3854a6973ad1934708a2a746b811ab8fb52
6
+ metadata.gz: c8a0c855084362664bc1ce05ba0a5f8cb5e2f43523fb87b5fdef1af388177be96fc8e0be8328b60d84a84cf09b6911ea28ec68023fe6c48c9b56b07a19540921
7
+ data.tar.gz: d632a005b2cf1c1a800d67142736029f318e78f5cc69aef74a3eb6e79ce95cce5af1d188923e134f836bb7a7604cad2ec21b185fce1a0c741412c9868e6bdd75
@@ -1,5 +1,9 @@
1
1
  # Xsv Changelog
2
2
 
3
+ ## 0.3.9 - 2020-03-16
4
+
5
+ - Fix an edge case issue with row_skip and empty rows
6
+
3
7
  ## 0.3.8 - 2020-03-11
4
8
 
5
9
  - Improve compatibility with files exported from LibreOffice
@@ -12,7 +12,7 @@ module Xsv
12
12
  when "s"
13
13
  @workbook.shared_strings[@current_value.to_i]
14
14
  when "str", "inlineStr"
15
- @current_value
15
+ @current_value.dup
16
16
  when "e" # N/A
17
17
  nil
18
18
  when nil, "n"
@@ -46,7 +46,7 @@ module Xsv
46
46
  @empty_row = empty_row
47
47
  @workbook = workbook
48
48
  @row_skip = row_skip
49
- @row_index = 0 - @row_skip
49
+ @row_index = 0
50
50
  @current_row = {}
51
51
  @current_row_attrs = {}
52
52
  @current_cell = {}
@@ -102,20 +102,23 @@ module Xsv
102
102
  @current_row[@headers[col_index]] = format_cell
103
103
  end
104
104
  when :row
105
- if @row_index < 0
106
- @row_index += 1
105
+ @real_row_number = @current_row_attrs[:r].to_i
106
+ @adjusted_row_number = @real_row_number - @row_skip
107
+
108
+ if @real_row_number <= @row_skip
107
109
  return
108
110
  end
109
111
 
110
112
  @row_index += 1
111
113
 
112
114
  # Skip first row if we're in hash mode
113
- return if @row_index == 1 && @mode == :hash
115
+ return if @adjusted_row_number == 1 && @mode == :hash
114
116
 
115
117
  # Pad empty rows
116
- while @row_index < @current_row_attrs[:r].to_i - @row_skip
118
+ while @row_index < @adjusted_row_number
117
119
  @block.call(@empty_row)
118
120
  @row_index += 1
121
+ next
119
122
  end
120
123
 
121
124
  # Do not return empty trailing rows
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Xsv
3
- VERSION = "0.3.8"
3
+ VERSION = "0.3.9"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xsv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martijn Storck
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-11 00:00:00.000000000 Z
11
+ date: 2020-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip