dullard 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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