saxlsx 1.6.1 → 1.10.0

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