sheets 1.1.0 → 1.1.1

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.
data/.travis.yml CHANGED
@@ -3,4 +3,5 @@ rvm:
3
3
  - 1.9.2
4
4
  - 1.9.3
5
5
  - ree
6
- - rbx
6
+ - rbx
7
+ - jruby
@@ -54,14 +54,13 @@ class Sheets::Parsers::NokogiriXlsxParser < Sheets::Parsers::Base
54
54
  @shared_strings ||= Nokogiri::XML( zipfile.read("xl/sharedStrings.xml") ).css('si>t').collect(&:text)
55
55
  end
56
56
 
57
- # returns an array of strings containing the worksheet ids from the workbook
58
- def worksheet_ids
59
- @sheet_ids ||= workbook.css('sheets>sheet').collect {|sheet| sheet.attribute('sheetId').value }
57
+ def number_of_worksheets
58
+ @number_of_worksheets ||= workbook.css("sheets > sheet").size
60
59
  end
61
60
 
62
61
  # returns an array of nokogiri documents for each worksheet
63
62
  def worksheets
64
- @worksheets ||= worksheet_ids.collect {|sheet_id| Nokogiri::XML( zipfile.read("xl/worksheets/sheet#{sheet_id}.xml") ) }
63
+ @worksheets ||= (1..number_of_worksheets).collect { |n| Nokogiri::XML(zipfile.read("xl/worksheets/sheet#{n}.xml")) }
65
64
  end
66
65
 
67
66
  # returns a date object representing the start of the serial date system for this sheet
@@ -76,4 +75,4 @@ class Sheets::Parsers::NokogiriXlsxParser < Sheets::Parsers::Base
76
75
  end
77
76
  end.call
78
77
  end
79
- end
78
+ end
@@ -1,3 +1,3 @@
1
1
  module Sheets
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
Binary file
@@ -0,0 +1,10 @@
1
+ class TestNokogiriXlsxParser < Test::Unit::TestCase
2
+ def setup
3
+ file_path = File.expand_path("../../data/reordered_workbooks.xlsx", __FILE__)
4
+ @sheet = Sheets::Parsers::NokogiriXlsxParser.new(File.read(file_path), :xlsx, file_path)
5
+ end
6
+
7
+ def test_does_not_raise_error_when_second_workbook_has_id_of_3
8
+ assert_nothing_raised { @sheet.to_array }
9
+ end
10
+ end
metadata CHANGED
@@ -1,90 +1,87 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sheets
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 1
8
- - 0
9
- version: 1.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Bradley J. Spaulding
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-11-29 00:00:00 -05:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- segments:
26
- - 0
27
- - 6
28
- - 5
29
- - 2
30
- version: 0.6.5.2
31
- requirement: *id001
12
+ date: 2012-10-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
32
15
  name: spreadsheet
33
- prerelease: false
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.6.5.2
34
22
  type: :runtime
35
- - !ruby/object:Gem::Dependency
36
- version_requirements: &id002 !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- segments:
41
- - 0
42
- - 9
43
- - 4
44
- version: 0.9.4
45
- requirement: *id002
46
- name: rubyzip
47
23
  prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.6.5.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: rubyzip
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 0.9.4
48
38
  type: :runtime
49
- - !ruby/object:Gem::Dependency
50
- version_requirements: &id003 !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- segments:
55
- - 1
56
- - 4
57
- - 3
58
- - 1
59
- version: 1.4.3.1
60
- requirement: *id003
61
- name: nokogiri
62
39
  prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.9.4
46
+ - !ruby/object:Gem::Dependency
47
+ name: nokogiri
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.4.3.1
63
54
  type: :runtime
64
- - !ruby/object:Gem::Dependency
65
- version_requirements: &id004 !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "="
68
- - !ruby/object:Gem::Version
69
- segments:
70
- - 0
71
- - 9
72
- - 2
73
- version: 0.9.2
74
- requirement: *id004
75
- name: rake
76
55
  prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.4.3.1
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - '='
68
+ - !ruby/object:Gem::Version
69
+ version: 0.9.2
77
70
  type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - '='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.2
78
78
  description: Work with spreadsheets easily in a native ruby format.
79
- email:
79
+ email:
80
80
  - brad.spaulding@gmail.com
81
81
  executables: []
82
-
83
82
  extensions: []
84
-
85
83
  extra_rdoc_files: []
86
-
87
- files:
84
+ files:
88
85
  - .gitignore
89
86
  - .travis.yml
90
87
  - Gemfile
@@ -106,6 +103,7 @@ files:
106
103
  - lib/sheets/version.rb
107
104
  - sheets.gemspec
108
105
  - test/base_test.rb
106
+ - test/data/reordered_workbooks.xlsx
109
107
  - test/data/roo_issue_28885_test.xlsx
110
108
  - test/data/simple.csv
111
109
  - test/data/simple.ods
@@ -115,44 +113,49 @@ files:
115
113
  - test/parseable_test.rb
116
114
  - test/parsers/basic_parsers_test.rb
117
115
  - test/parsers/csv_parser_test.rb
116
+ - test/parsers/nokogiri_xlsx_parser_test.rb
118
117
  - test/renderable_test.rb
119
118
  - test/renderers/basic_renderers_test.rb
120
119
  - test/renderers/csv_renderer_test.rb
121
120
  - test/renderers/excel_renderer_test.rb
122
121
  - test/results.json
123
122
  - test/test_helper.rb
124
- has_rdoc: true
125
123
  homepage: https://github.com/bspaulding/Sheets
126
124
  licenses: []
127
-
128
125
  post_install_message:
129
126
  rdoc_options: []
130
-
131
- require_paths:
127
+ require_paths:
132
128
  - lib
133
- required_ruby_version: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- segments:
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ segments:
138
136
  - 0
139
- version: "0"
140
- required_rubygems_version: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- segments:
137
+ hash: -333247326234641115
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ segments:
145
145
  - 0
146
- version: "0"
146
+ hash: -333247326234641115
147
147
  requirements: []
148
-
149
148
  rubyforge_project: sheets
150
- rubygems_version: 1.3.6
149
+ rubygems_version: 1.8.24
151
150
  signing_key:
152
151
  specification_version: 3
153
- summary: Sheets provides a Facade for importing spreadsheets that gives the application control. Any Spreadsheet can be represented as either (1) a two dimensional array, or (2) an array of hashes. Sheets' goal is to convert any spreadsheet format to one of these native Ruby data structures.
154
- test_files:
152
+ summary: Sheets provides a Facade for importing spreadsheets that gives the application
153
+ control. Any Spreadsheet can be represented as either (1) a two dimensional array,
154
+ or (2) an array of hashes. Sheets' goal is to convert any spreadsheet format to
155
+ one of these native Ruby data structures.
156
+ test_files:
155
157
  - test/base_test.rb
158
+ - test/data/reordered_workbooks.xlsx
156
159
  - test/data/roo_issue_28885_test.xlsx
157
160
  - test/data/simple.csv
158
161
  - test/data/simple.ods
@@ -162,6 +165,7 @@ test_files:
162
165
  - test/parseable_test.rb
163
166
  - test/parsers/basic_parsers_test.rb
164
167
  - test/parsers/csv_parser_test.rb
168
+ - test/parsers/nokogiri_xlsx_parser_test.rb
165
169
  - test/renderable_test.rb
166
170
  - test/renderers/basic_renderers_test.rb
167
171
  - test/renderers/csv_renderer_test.rb