xsv 0.3.8 → 0.3.9

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: 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