dullard 0.0.1 → 0.0.2

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.
@@ -20,16 +20,15 @@ class Dullard::Workbook
20
20
 
21
21
  def read_string_table
22
22
  @string_table = []
23
- state = :top
23
+ state = :entry
24
+ entry = ''
24
25
  Nokogiri::XML::Reader(@zipfs.file.open("xl/sharedStrings.xml")).each do |node|
25
- case state
26
- when :top
27
- if node.name == "t"
28
- state = :entry
29
- end
30
- when :entry
31
- @string_table << node.value
32
- state = :top
26
+ if node.name == "si" and node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
27
+ entry = ''
28
+ elsif node.name == "si" and node.node_type == Nokogiri::XML::Reader::TYPE_END_ELEMENT
29
+ @string_table << entry
30
+ elsif node.value?
31
+ entry << node.value
33
32
  end
34
33
  end
35
34
  @string_table
@@ -56,27 +55,18 @@ class Dullard::Sheet
56
55
  Enumerator.new do |y|
57
56
  state = :top
58
57
  shared = false
59
- row = []
58
+ row = nil
60
59
  Nokogiri::XML::Reader(@workbook.zipfs.file.open("xl/worksheets/sheet#{@id}.xml")).each do |node|
61
- case state
62
- when :top
63
- if node.name == "row"
64
- state = :row
65
- end
66
- when :row
67
- if node.name == "row"
68
- y << row
69
- row = []
70
- else
71
- state = :cell
60
+ if node.name == "row" and node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
61
+ row = []
62
+ elsif node.name == "row" and node.node_type == Nokogiri::XML::Reader::TYPE_END_ELEMENT
63
+ y << row
64
+ elsif node.name == "c" and node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
72
65
  shared = (node.attribute("t") == "s")
73
- end
74
- when :cell
75
- row << (shared ? string_lookup(node.value.to_i) : node.value)
76
- state = :row
66
+ elsif node.value?
67
+ row << (shared ? string_lookup(node.value.to_i) : node.value)
77
68
  end
78
69
  end
79
- y << row
80
70
  end
81
71
  end
82
72
  end
@@ -1,3 +1,3 @@
1
1
  module Dullard
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dullard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70212465314540 !ruby/object:Gem::Requirement
16
+ requirement: &70358439744940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2.6'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70212465314540
24
+ version_requirements: *70358439744940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70212465295320 !ruby/object:Gem::Requirement
27
+ requirement: &70358439744040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70212465295320
35
+ version_requirements: *70358439744040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rubyzip
38
- requirement: &70212465295080 !ruby/object:Gem::Requirement
38
+ requirement: &70358439743400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 0.9.6
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70212465295080
46
+ version_requirements: *70358439743400
47
47
  description:
48
48
  email:
49
49
  - ted@shlashdot.org