saxlsx 1.6.1 → 1.10.0

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
- SHA1:
3
- metadata.gz: 7dc32c3edddd79931a9aa2c524b797621542ab84
4
- data.tar.gz: 741e327689fe7525f0c2613c191c3c9e75a45d7a
2
+ SHA256:
3
+ metadata.gz: dbf7deaac6c1374b387a2a4bd3ec2afe156a653d7fea428c7aaf7c03750d4467
4
+ data.tar.gz: 8f6438c71ac90906eb744cd6088aa9d068a6af50f4a4c10385ec58340c016c34
5
5
  SHA512:
6
- metadata.gz: 2f12ad7f5636ac9bf9a48f2d1b8d22f05e77ab2e40a44ebb314ced6f7d0390be7189ba774c2402c3ec278036ca9efd4489934fbea7a1c0d8d28817e2bd0be174
7
- data.tar.gz: ba0525a308e673c1ab5570545d9698349fab4324c1342c679b6ec8395940cf4ec7da09d2d4331450a486c712f377264bbc89514b551af2c1274bc2fef8fcac22
6
+ metadata.gz: 71f9a9d1a87543144bd80c6478dcc4b2ab48cf6a22b25bbf617564f2bf2538fff0889c9fff0db4f7821d8929213a48f42fe56fad8e209a296d0b77274bb83c75
7
+ data.tar.gz: e40bbc6c0d587f913a88ce588bdf5c90ac3e7d4b60ca134d1f1c65e5fcd21bfbef0d7707fa83d1d5e12141479484523fbf1b2ac85811dfc6dcb5feec77284f67
@@ -0,0 +1,20 @@
1
+ name: Ruby
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Ruby
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby-version }}
18
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
19
+ - name: Run tests
20
+ run: bundle exec rake
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in saxlsx.gemspec
4
4
  gemspec
5
5
 
6
- gem 'axlsx', '~> 2.1.0.pre'
6
+ gem 'caxlsx'
7
7
  gem 'rubyXL'
8
8
  gem 'simple_xlsx_reader'
9
9
  gem 'creek'
data/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  [![Join the chat at https://gitter.im/mak-it/saxlsx](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mak-it/saxlsx?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
4
 
5
- [![Build Status](https://travis-ci.org/mak-it/saxlsx.svg?branch=master)](https://travis-ci.org/mak-it/saxlsx)
6
-
7
5
  **Fast** and memory efficient XLSX reader on top of Ox SAX parser.
8
6
 
9
7
  It reads row by row and doesn't store the whole sheet in memory, so this
@@ -52,30 +50,30 @@ using `auto_format: false`.
52
50
  $ rake bench
53
51
  ```
54
52
 
55
- ruby 2.2.1 on OS X 10.10
53
+ ruby 2.7 on OS X
56
54
 
57
55
  ```
58
56
  Shared Strings
59
57
 
60
58
  user system total real
61
- creek 3.000000 0.070000 3.070000 ( 3.254653)
62
- dullard 2.070000 0.030000 2.100000 ( 2.109380)
63
- oxcelix 1.100000 0.020000 1.120000 ( 1.128109)
64
- roo 11.980000 0.350000 12.330000 ( 12.473732)
65
- rubyXL 3.560000 0.070000 3.630000 ( 3.641981)
66
- saxlsx 0.660000 0.040000 0.700000 ( 0.693199)
67
- simple_xlsx_reader 1.650000 0.030000 1.680000 ( 1.686309)
59
+ creek 1.296539 0.029374 1.325913 ( 1.340820)
60
+ dullard 1.178981 0.025073 1.204054 ( 1.221381)
61
+ oxcelix 0.985258 0.025028 1.010286 ( 1.023730)
62
+ roo 0.971155 0.029964 1.001119 ( 1.016452)
63
+ rubyXL 2.979334 0.055708 3.035042 ( 3.079301)
64
+ saxlsx 0.473398 0.011342 0.484740 ( 0.490247)
65
+ simple_xlsx_reader 1.209074 0.024579 1.233653 ( 1.249957)
68
66
 
69
67
  Inline Strings
70
68
 
71
69
  user system total real
72
- creek 2.960000 0.260000 3.220000 ( 3.304050)
73
- dullard 2.380000 0.220000 2.600000 ( 2.639881)
74
- oxcelix ERROR
75
- roo 11.620000 0.260000 11.880000 ( 12.136643)
76
- rubyXL 4.060000 0.480000 4.540000 ( 4.612416)
77
- saxlsx 0.870000 0.210000 1.080000 ( 1.091133)
78
- simple_xlsx_reader 1.910000 0.040000 1.950000 ( 1.961555)
70
+ creek 1.471115 0.075182 1.546297 ( 1.567045)
71
+ dullard 1.338499 0.085116 1.423615 ( 1.443386)
72
+ oxcelix ERROR
73
+ roo 1.133878 0.052834 1.186712 ( 1.208369)
74
+ rubyXL 3.213630 0.070255 3.283885 ( 3.324428)
75
+ saxlsx 0.667601 0.024265 0.691866 ( 0.696603)
76
+ simple_xlsx_reader 1.350298 0.028411 1.378709 ( 1.396583)
79
77
  ```
80
78
 
81
79
  ## Contributing
data/Rakefile CHANGED
@@ -5,7 +5,6 @@ Bundler::GemHelper.install_tasks
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
  task :default => :spec
7
7
 
8
-
9
8
  task :bench do
10
9
  require './spec/benchmarks.rb'
11
10
  Saxlsx::Benchmarks.new.run
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'bigdecimal'
2
3
  require 'rational'
3
4
  require 'zip'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class BooleanParser
3
4
 
@@ -8,4 +9,4 @@ module Saxlsx
8
9
  end
9
10
 
10
11
  end
11
- end
12
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class ColumnNameGenerator
3
4
  FIRST = 'A'
@@ -14,4 +15,4 @@ module Saxlsx
14
15
  end
15
16
  end
16
17
  end
17
- end
18
+ end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class FileSystem
4
+ IO_METHODS = [:tell, :seek, :read, :close]
3
5
 
4
6
  def self.open(filename)
5
7
  begin
@@ -11,11 +13,16 @@ module Saxlsx
11
13
  end
12
14
 
13
15
  def initialize(filename)
14
- @zip = Zip::File.open filename
16
+ if IO_METHODS.map { |method| filename.respond_to?(method) }.all?
17
+ @zip = Zip::File.open_buffer filename
18
+ @io = true
19
+ else
20
+ @zip = Zip::File.open filename
21
+ end
15
22
  end
16
23
 
17
24
  def close
18
- @zip.close
25
+ @zip.close unless @io
19
26
  end
20
27
 
21
28
  def workbook
@@ -36,4 +43,4 @@ module Saxlsx
36
43
  end
37
44
 
38
45
  end
39
- end
46
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class RowsCollection
3
4
 
@@ -15,21 +16,7 @@ module Saxlsx
15
16
  end
16
17
 
17
18
  def count
18
- unless defined?(@count)
19
- @count = 0
20
- begin
21
- @sheet.each_line('>') do |line|
22
- matches = line.match(/<dimension ref="[^:]+:[A-Z]*(\d+)"/)
23
- if matches
24
- @count = matches[1].to_i
25
- break if @count
26
- end
27
- end
28
- ensure
29
- @sheet.rewind
30
- end
31
- end
32
- @count
19
+ @count ||= RowsCollectionCountParser.count @sheet
33
20
  end
34
21
 
35
22
  alias :size :count
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+ module Saxlsx
3
+ class RowsCollectionCountParser < Ox::Sax
4
+ def self.count(data, &block)
5
+ parser = new
6
+ catch :abort do
7
+ SaxParser.parse parser, data
8
+ end
9
+ parser.count
10
+ end
11
+
12
+ attr_reader :count
13
+
14
+ def initialize
15
+ @count = 0
16
+ end
17
+
18
+ def start_element(name)
19
+ @current_element = name
20
+ if name == :row
21
+ @count += 1
22
+ end
23
+ end
24
+
25
+ def attr(name, value)
26
+ if @current_element == :dimension
27
+ if name == :ref && value
28
+ matches = value.match(/[^:]+:[A-Z]*(\d+)/)
29
+ if matches
30
+ @count = matches[1].to_i
31
+ throw :abort
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class RowsCollectionParser < Ox::Sax
3
4
  SECONDS_IN_DAY = 86400
@@ -1,11 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class SaxParser
3
4
 
4
5
  def self.parse(handler, xml)
5
- Ox.sax_parse(handler, xml)
6
+ Ox.sax_parse(handler, xml, skip: :skip_return)
6
7
  ensure
7
8
  xml.rewind
8
9
  end
9
10
 
10
11
  end
11
- end
12
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class SharedStringCollection
3
4
 
@@ -12,4 +13,4 @@ module Saxlsx
12
13
  end
13
14
 
14
15
  end
15
- end
16
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class SharedStringCollectionParser < Ox::Sax
3
4
 
@@ -15,7 +16,7 @@ module Saxlsx
15
16
  end
16
17
 
17
18
  def start_element(name)
18
- @current_string = '' if name == :si
19
+ @current_string = String.new if name == :si
19
20
  end
20
21
 
21
22
  def end_element(name)
@@ -30,4 +31,4 @@ module Saxlsx
30
31
  end
31
32
 
32
33
  end
33
- end
34
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class Sheet
3
4
 
@@ -24,4 +25,4 @@ module Saxlsx
24
25
  end
25
26
 
26
27
  end
27
- end
28
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class SheetCollection
3
4
 
@@ -13,4 +14,4 @@ module Saxlsx
13
14
  end
14
15
 
15
16
  end
16
- end
17
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class SheetCollectionParser < Ox::Sax
3
4
 
@@ -55,4 +56,4 @@ module Saxlsx
55
56
  end
56
57
 
57
58
  end
58
- end
59
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class StyleCollection
3
4
 
@@ -12,4 +13,4 @@ module Saxlsx
12
13
  end
13
14
 
14
15
  end
15
- end
16
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class StyleCollectionParser < Ox::Sax
3
4
  def self.parse(file_system, &block)
@@ -32,7 +33,7 @@ module Saxlsx
32
33
  if custom_num_fmt_code
33
34
  @block.call custom_num_fmt_code
34
35
  else
35
- @block.call @num_fmt_id
36
+ @block.call @num_fmt_id.to_i
36
37
  end
37
38
  end
38
39
  when :numFmt
@@ -49,4 +50,4 @@ module Saxlsx
49
50
  end
50
51
  end
51
52
  end
52
- end
53
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
- VERSION = '1.6.1'
3
+ VERSION = '1.10.0'
3
4
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Saxlsx
2
3
  class Workbook
3
4
  DATE_SYSTEM_1900 = DateTime.new(1899, 12, 30)
@@ -6,12 +7,12 @@ module Saxlsx
6
7
  attr_accessor :date1904
7
8
  attr_reader :auto_format
8
9
 
9
- def self.open(*args)
10
+ def self.open(filename, **kw_args)
10
11
  begin
11
- workbook = self.new(*args)
12
+ workbook = new(filename, **kw_args)
12
13
  yield workbook
13
14
  ensure
14
- workbook.close
15
+ workbook.close if workbook
15
16
  end
16
17
  end
17
18
 
@@ -50,4 +51,4 @@ module Saxlsx
50
51
  end
51
52
 
52
53
  end
53
- end
54
+ end
@@ -18,13 +18,14 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^spec/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.required_ruby_version = '>= 2.1.0'
21
+ spec.required_ruby_version = '>= 2.5.0'
22
22
 
23
23
  spec.add_dependency 'rubyzip', '~> 1.0'
24
24
  spec.add_dependency 'ox', '~> 2.1'
25
25
 
26
- spec.add_development_dependency 'bundler', "~> 1.5"
27
- spec.add_development_dependency 'rake', '~> 10.1'
28
- spec.add_development_dependency 'rspec', '~> 2.14'
26
+ spec.add_development_dependency 'bundler', ">= 1.5"
27
+ spec.add_development_dependency 'rake', '~> 13.0'
28
+ spec.add_development_dependency 'rspec', '~> 3.10'
29
+ spec.add_development_dependency 'rspec-collection_matchers'
29
30
  spec.add_development_dependency 'simplecov', '~> 0.8'
30
31
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'benchmark'
2
3
  require 'axlsx'
3
4
  require 'saxlsx'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  describe ColumnNameGenerator do
@@ -21,4 +22,4 @@ describe ColumnNameGenerator do
21
22
  end
22
23
  end
23
24
 
24
- end
25
+ end
Binary file
Binary file
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: UTF-8
2
3
  require 'spec_helper'
3
4
 
@@ -35,7 +36,7 @@ describe Sheet do
35
36
  3,
36
37
  DateTime.new(2013, 12, 13, 8, 0, 58),
37
38
  DateTime.new(1970, 1, 1),
38
- BigDecimal.new('3.4028236692093801E+38'),
39
+ BigDecimal('3.4028236692093801E+38'),
39
40
  DateTime.new(2015, 2, 13, 12, 40, 5)
40
41
  ]
41
42
  s.rows[1].should eq [
@@ -92,6 +93,19 @@ describe Sheet do
92
93
  end
93
94
  end
94
95
 
96
+ it 'Handle missing fonts and dimension tags' do
97
+ filename = "#{File.dirname(__FILE__)}/data/SpecSloppy.xlsx"
98
+
99
+ Workbook.open filename do |w|
100
+ w.sheets[0].rows.count.should eq 85
101
+ headers = w.sheets[0].rows.first
102
+ headers.count.should eq 52
103
+ headers.each do |str|
104
+ str.should eq "X"
105
+ end
106
+ end
107
+ end
108
+
95
109
  context 'with 1904 date system' do
96
110
  let(:filename) { "#{File.dirname(__FILE__)}/data/Spec1904.xlsx" }
97
111
 
@@ -107,6 +121,34 @@ describe Sheet do
107
121
  end
108
122
  end
109
123
 
124
+ context 'with mutliline strings (&#10;)' do
125
+ let(:filename) { "#{File.dirname(__FILE__)}/data/SpecMultiline10.xlsx" }
126
+
127
+ it 'should return multiline cells' do
128
+ Workbook.open filename do |w|
129
+ w.sheets[0].tap do |s|
130
+ s.rows[0].should eq [
131
+ "Test\nTest1\nTest3"
132
+ ]
133
+ end
134
+ end
135
+ end
136
+ end
137
+
138
+ context 'with mutliline strings (\n)' do
139
+ let(:filename) { "#{File.dirname(__FILE__)}/data/SpecMultilineN.xlsx" }
140
+
141
+ it 'should return multiline cells' do
142
+ Workbook.open filename do |w|
143
+ w.sheets[0].tap do |s|
144
+ s.rows[0].should eq [
145
+ "Test\nTest1\nTest3"
146
+ ]
147
+ end
148
+ end
149
+ end
150
+ end
151
+
110
152
  context 'with inline strings' do
111
153
  let(:filename) { "#{File.dirname(__FILE__)}/data/SpecInlineStrings.xlsx" }
112
154
 
@@ -133,7 +175,7 @@ describe Sheet do
133
175
  ["Time", DateTime.new(2015, 2, 13, 12, 40, 5)],
134
176
  ["Percentage", 0.9999],
135
177
  ["Fraction", 0.5],
136
- ["Scientific", BigDecimal.new('3.4028236692093801E+38')],
178
+ ["Scientific", BigDecimal('3.4028236692093801E+38')],
137
179
  ["Custom", 123.0],
138
180
  ].each.with_index do |row, i|
139
181
  name, value = row
@@ -160,7 +202,7 @@ describe Sheet do
160
202
  ["Time", DateTime.new(2015, 2, 13, 12, 40, 5)],
161
203
  ["Percentage", 0.9999],
162
204
  ["Fraction", 0.5],
163
- ["Scientific", BigDecimal.new('3.4028236692093801E+38')],
205
+ ["Scientific", BigDecimal('3.4028236692093801E+38')],
164
206
  ["Custom", 123.0],
165
207
  ].each.with_index do |row, i|
166
208
  name, value = row
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rspec/collection_matchers'
1
4
  require 'saxlsx'
2
5
 
3
6
  include Saxlsx
4
7
 
5
8
  RSpec.configure do |config|
6
- config.color_enabled = true
7
- end
9
+ config.color = true
10
+ end
@@ -1,9 +1,17 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Workbook do
4
5
 
5
6
  let(:filename) { "#{File.dirname(__FILE__)}/data/Spec.xlsx" }
6
7
 
8
+ it 'Reads from StringIO' do
9
+ io = StringIO.new File.read(filename)
10
+ Workbook.open io do |w|
11
+ w.should have(5).sheets
12
+ end
13
+ end
14
+
7
15
  it 'Sheets count' do
8
16
  Workbook.open filename do |w|
9
17
  w.should have(5).sheets
@@ -39,8 +47,8 @@ describe Workbook do
39
47
  it 'Shared strings' do
40
48
  Workbook.open filename do |w|
41
49
  w.should have(56).shared_strings
42
- w.shared_strings[0].should eq 'LevenshteinDistance'
43
- w.shared_strings[55].should eq 'TST_ModMan_Insulto_SU_Normal'
50
+ w.shared_strings.should include 'LevenshteinDistance'
51
+ w.shared_strings.should include 'TST_ModMan_Insulto_SU_Normal'
44
52
  end
45
53
  end
46
54
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saxlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgars Beigarts
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-11 00:00:00.000000000 Z
11
+ date: 2021-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.5'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.5'
55
55
  - !ruby/object:Gem::Dependency
@@ -58,28 +58,42 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.1'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.1'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.14'
75
+ version: '3.10'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.14'
82
+ version: '3.10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-collection_matchers
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: simplecov
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -102,8 +116,8 @@ executables:
102
116
  extensions: []
103
117
  extra_rdoc_files: []
104
118
  files:
119
+ - ".github/workflows/ruby.yml"
105
120
  - ".gitignore"
106
- - ".travis.yml"
107
121
  - Gemfile
108
122
  - LICENSE.txt
109
123
  - README.md
@@ -114,6 +128,7 @@ files:
114
128
  - lib/saxlsx/column_name_generator.rb
115
129
  - lib/saxlsx/file_system.rb
116
130
  - lib/saxlsx/rows_collection.rb
131
+ - lib/saxlsx/rows_collection_count_parser.rb
117
132
  - lib/saxlsx/rows_collection_parser.rb
118
133
  - lib/saxlsx/sax_parser.rb
119
134
  - lib/saxlsx/shared_string_collection.rb
@@ -131,7 +146,10 @@ files:
131
146
  - spec/data/Spec.xlsx
132
147
  - spec/data/Spec1904.xlsx
133
148
  - spec/data/SpecInlineStrings.xlsx
149
+ - spec/data/SpecMultiline10.xlsx
150
+ - spec/data/SpecMultilineN.xlsx
134
151
  - spec/data/SpecNumberFormat.xlsx
152
+ - spec/data/SpecSloppy.xlsx
135
153
  - spec/sheet_spec.rb
136
154
  - spec/spec_helper.rb
137
155
  - spec/workbook_spec.rb
@@ -139,7 +157,7 @@ homepage: https://github.com/mak-it/saxlsx
139
157
  licenses:
140
158
  - MIT
141
159
  metadata: {}
142
- post_install_message:
160
+ post_install_message:
143
161
  rdoc_options: []
144
162
  require_paths:
145
163
  - lib
@@ -147,16 +165,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
165
  requirements:
148
166
  - - ">="
149
167
  - !ruby/object:Gem::Version
150
- version: 2.1.0
168
+ version: 2.5.0
151
169
  required_rubygems_version: !ruby/object:Gem::Requirement
152
170
  requirements:
153
171
  - - ">="
154
172
  - !ruby/object:Gem::Version
155
173
  version: '0'
156
174
  requirements: []
157
- rubyforge_project:
158
- rubygems_version: 2.5.1
159
- signing_key:
175
+ rubygems_version: 3.1.4
176
+ signing_key:
160
177
  specification_version: 4
161
178
  summary: Fast xlsx reader on top of Ox SAX parser
162
179
  test_files:
@@ -165,7 +182,10 @@ test_files:
165
182
  - spec/data/Spec.xlsx
166
183
  - spec/data/Spec1904.xlsx
167
184
  - spec/data/SpecInlineStrings.xlsx
185
+ - spec/data/SpecMultiline10.xlsx
186
+ - spec/data/SpecMultilineN.xlsx
168
187
  - spec/data/SpecNumberFormat.xlsx
188
+ - spec/data/SpecSloppy.xlsx
169
189
  - spec/sheet_spec.rb
170
190
  - spec/spec_helper.rb
171
191
  - spec/workbook_spec.rb
@@ -1,6 +0,0 @@
1
- rvm:
2
- - 2.1
3
- - 2.2
4
- - 2.3
5
- - 2.4.0
6
- - ruby-head