workbook 0.2.0 → 0.2.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.
Files changed (64) hide show
  1. data/.yardoc/checksums +18 -0
  2. data/.yardoc/object_types +3 -0
  3. data/.yardoc/objects/root.dat +0 -0
  4. data/.yardoc/proxy_types +0 -0
  5. data/Gemfile.lock +1 -1
  6. data/{readme.markdown → README.md} +36 -10
  7. data/doc/RubyXL.html +128 -0
  8. data/doc/RubyXL/Cell.html +202 -0
  9. data/doc/RubyXL/Workbook.html +447 -0
  10. data/doc/Workbook.html +130 -0
  11. data/doc/Workbook/Book.html +1484 -0
  12. data/doc/Workbook/Cell.html +1402 -0
  13. data/doc/Workbook/Format.html +654 -0
  14. data/doc/Workbook/Modules.html +117 -0
  15. data/doc/Workbook/Modules/RawObjectsStorage.html +508 -0
  16. data/doc/Workbook/Modules/TableDiffSort.html +620 -0
  17. data/doc/Workbook/Modules/TypeParser.html +1012 -0
  18. data/doc/Workbook/Readers.html +117 -0
  19. data/doc/Workbook/Readers/CsvReader.html +262 -0
  20. data/doc/Workbook/Readers/TxtReader.html +238 -0
  21. data/doc/Workbook/Readers/XlsReader.html +362 -0
  22. data/doc/Workbook/Readers/XlsShared.html +189 -0
  23. data/doc/Workbook/Readers/XlsxReader.html +295 -0
  24. data/doc/Workbook/Row.html +1939 -0
  25. data/doc/Workbook/Sheet.html +528 -0
  26. data/doc/Workbook/Table.html +883 -0
  27. data/doc/Workbook/Template.html +639 -0
  28. data/doc/Workbook/Writers.html +117 -0
  29. data/doc/Workbook/Writers/CsvTableWriter.html +175 -0
  30. data/doc/Workbook/Writers/XlsWriter.html +865 -0
  31. data/doc/_index.html +336 -0
  32. data/doc/class_list.html +53 -0
  33. data/doc/css/common.css +1 -0
  34. data/doc/css/full_list.css +57 -0
  35. data/doc/css/style.css +328 -0
  36. data/doc/file.README.html +236 -0
  37. data/doc/file_list.html +55 -0
  38. data/doc/frames.html +28 -0
  39. data/doc/index.html +236 -0
  40. data/doc/js/app.js +214 -0
  41. data/doc/js/full_list.js +173 -0
  42. data/doc/js/jquery.js +4 -0
  43. data/doc/method_list.html +972 -0
  44. data/doc/top-level-namespace.html +112 -0
  45. data/lib/workbook/book.rb +38 -29
  46. data/lib/workbook/cell.rb +25 -0
  47. data/lib/workbook/format.rb +9 -2
  48. data/lib/workbook/modules/raw_objects_storage.rb +5 -0
  49. data/lib/workbook/modules/table_diff_sort.rb +8 -6
  50. data/lib/workbook/modules/type_parser.rb +16 -3
  51. data/lib/workbook/readers/xls_reader.rb +1 -70
  52. data/lib/workbook/readers/xls_shared.rb +75 -0
  53. data/lib/workbook/row.rb +89 -17
  54. data/lib/workbook/sheet.rb +26 -0
  55. data/lib/workbook/table.rb +20 -1
  56. data/lib/workbook/template.rb +12 -11
  57. data/lib/workbook/writers/xls_writer.rb +19 -77
  58. data/test/test_modules_table_diff_sort.rb +19 -6
  59. data/test/test_row.rb +54 -0
  60. data/test/test_sheet.rb +8 -0
  61. data/test/test_table.rb +22 -3
  62. data/test/test_writers_xls_writer.rb +3 -0
  63. data/workbook.gemspec +1 -1
  64. metadata +46 -3
@@ -1,26 +1,23 @@
1
1
  require 'workbook/modules/raw_objects_storage'
2
2
 
3
3
  module Workbook
4
- class Template
4
+ # Workbook::Template is a container for different Workbook::Format's and the storage of raw template data that isn't really supported by Workbook, but should survive a typical read/write cyclus.
5
+ class Template
5
6
  include Workbook::Modules::RawObjectsStorage
6
7
 
8
+ # Initialize Workbook::Template
7
9
  def initialize
8
10
  @formats = {}
9
11
  @has_header = true
10
12
  end
11
13
 
14
+ # Whether the template has a predefined header (headers are used )
12
15
  def has_header?
13
16
  @has_header
14
17
  end
15
-
16
- def has_header= boolean
17
- if format.is_a? TrueClass or format.is_a? FalseClass
18
- @has_header = boolean
19
- else
20
- raise ArgumentError, "format should be a boolean, true of false"
21
- end
22
- end
23
18
 
19
+ # Add a Workbook::Format to the template
20
+ # @param [Workbook::Format] format (of a cell) to add to the template
24
21
  def add_format format
25
22
  if format.is_a? Workbook::Format
26
23
  @formats[format.name]=format
@@ -29,10 +26,16 @@ module Workbook
29
26
  end
30
27
  end
31
28
 
29
+ # Return the list of associated formats
30
+ # @return [Hash] A keyed-hash of named formats
32
31
  def formats
33
32
  @formats
34
33
  end
35
34
 
35
+ # Create or find a format by name
36
+ # @return [Workbook::Format] The new or found format
37
+ # @param [String] name of the format (e.g. whatever you want, in diff names such as 'destroyed', 'updated' and 'created' are being used)
38
+ # @param [Symbol] variant can also be a strftime formatting string (e.g. "%Y-%m-%d")
36
39
  def create_or_find_format_by name, variant=:default
37
40
  fs = @formats[name]
38
41
  fs = @formats[name] = {} if fs.nil?
@@ -46,7 +49,5 @@ module Workbook
46
49
  end
47
50
  return @formats[name][variant]
48
51
  end
49
-
50
-
51
52
  end
52
53
  end
@@ -3,79 +3,10 @@ require 'spreadsheet'
3
3
  module Workbook
4
4
  module Writers
5
5
  module XlsWriter
6
- # TODO: find better way to dupe
7
- XLS_COLORS = {:xls_color_1=>'#000000',
8
- :xls_color_2=>'#FFFFFF',
9
- :xls_color_3=>'#FF0000',
10
- :xls_color_4=>'#00FF00',
11
- :xls_color_5=>'#0000FF',
12
- :xls_color_6=>'#FFFF00',
13
- :xls_color_7=>'#FF00FF',
14
- :xls_color_8=>'#00FFFF',
15
- :xls_color_9=>'#800000',
16
- :xls_color_10=>'#008000',
17
- :xls_color_11=>'#000080',
18
- :xls_color_12=>'#808000',
19
- :xls_color_13=>'#800080',
20
- :xls_color_14=>'#008080',
21
- :xls_color_15=>'#C0C0C0',
22
- :xls_color_16=>'#808080',
23
- :xls_color_17=>'#9999FF',
24
- :xls_color_18=>'#993366',
25
- :xls_color_19=>'#FFFFCC',
26
- :xls_color_20=>'#CCFFFF',
27
- :xls_color_21=>'#660066',
28
- :xls_color_22=>'#FF8080',
29
- :xls_color_23=>'#0066CC',
30
- :xls_color_24=>'#CCCCFF',
31
- :xls_color_25=>'#000080',
32
- :xls_color_26=>'#FF00FF',
33
- :xls_color_27=>'#FFFF00',
34
- :xls_color_28=>'#00FFFF',
35
- :xls_color_29=>'#800080',
36
- :xls_color_30=>'#800000',
37
- :xls_color_31=>'#008080',
38
- :xls_color_32=>'#0000FF',
39
- :xls_color_33=>'#00CCFF',
40
- :xls_color_34=>'#CCFFFF',
41
- :xls_color_35=>'#CCFFCC',
42
- :xls_color_36=>'#FFFF99',
43
- :xls_color_37=>'#99CCFF',
44
- :xls_color_38=>'#FF99CC',
45
- :xls_color_39=>'#CC99FF',
46
- :xls_color_40=>'#FFCC99',
47
- :xls_color_41=>'#3366FF',
48
- :xls_color_42=>'#33CCCC',
49
- :xls_color_43=>'#99CC00',
50
- :xls_color_44=>'#FFCC00',
51
- :xls_color_45=>'#FF9900',
52
- :xls_color_46=>'#FF6600',
53
- :xls_color_47=>'#666699',
54
- :xls_color_48=>'#969696',
55
- :xls_color_49=>'#003366',
56
- :xls_color_50=>'#339966',
57
- :xls_color_51=>'#003300',
58
- :xls_color_52=>'#333300',
59
- :xls_color_53=>'#993300',
60
- :xls_color_54=>'#993366',
61
- :xls_color_55=>'#333399',
62
- :xls_color_56=>'#333333',
63
- :black=>'#000000',
64
- :white=>'#FFFFFF',
65
- :red=>'#FF0000',
66
- :green=>'#00FF00',
67
- :blue=>'#0000FF',
68
- :yellow=>'#FFFF00',
69
- :magenta=>'#FF00FF',
70
- :cyan=>'#00FFFF',
71
- :border=>'#FFFFFF',
72
- :text=>'#000000',
73
- :lime=>'#00f94c'
74
- }
75
-
6
+
76
7
  # Generates an Spreadsheet (from the spreadsheet gem) in order to build an XlS
77
8
  #
78
- # @params [Hash] A hash with options (unused so far)
9
+ # @param [Hash] options A hash with options (unused so far)
79
10
  # @return [Spreadsheet] A Spreadsheet object, ready for writing or more lower level operations
80
11
  def to_xls options={}
81
12
  book = init_spreadsheet_template
@@ -86,7 +17,7 @@ module Workbook
86
17
  xls_sheet.row(ri).height= r.format[:height] if r.format
87
18
  r.each_with_index do |c, ci|
88
19
  if c
89
- if r.header?
20
+ if r.first?
90
21
  xls_sheet.columns[ci] ||= Spreadsheet::Column.new(ci,nil)
91
22
  xls_sheet.columns[ci].width= c.format[:width]
92
23
  end
@@ -99,6 +30,10 @@ module Workbook
99
30
  book
100
31
  end
101
32
 
33
+ # Generates an Spreadsheet (from the spreadsheet gem) in order to build an XlS
34
+ #
35
+ # @param [Workbook::Format, Hash] f A Workbook::Format or hash with format-options (:font_weight, :rotation, :background_color, :number_format, :text_direction, :color, :font_family)
36
+ # @return [Spreadsheet::Format] A Spreadsheet format-object, ready for writing or more lower level operations
102
37
  def format_to_xls_format f
103
38
  xlsfmt = nil
104
39
  unless f.is_a? Workbook::Format
@@ -120,23 +55,30 @@ module Workbook
120
55
  return xlsfmt
121
56
  end
122
57
 
58
+ # Attempt to convert html-hex color value to xls color number
59
+ #
60
+ # @param [String] hex color
61
+ # @return [String] xls color
123
62
  def html_color_to_xls_color hex
124
- XLS_COLORS.each do |k,v|
63
+ Workbook::Readers::XlsShared::XLS_COLORS.each do |k,v|
125
64
  return k if (v == hex or (hex and hex != "" and k == hex.to_sym))
126
65
  end
127
66
  return nil
128
67
  end
129
68
 
69
+ # Converts standard (ruby/C++/unix/...) strftime formatting to MS's formatting
70
+ #
71
+ # @param [String, nil] numberformat (nil returns nil)
72
+ # @return [String, nil]
130
73
  def strftime_to_ms_format numberformat
131
74
  return nil if numberformat.nil?
132
- numberformat.gsub('%Y','yyyy').gsub('%A','dddd').gsub('%B','mmmm').gsub('%a','ddd').gsub('%b','mmm').gsub('%y','yy').gsub('%d','dd').gsub('%m','mm').gsub('%y','y').gsub('%y','%%y').gsub('%e','d')
75
+ return numberformat.gsub('%Y','yyyy').gsub('%A','dddd').gsub('%B','mmmm').gsub('%a','ddd').gsub('%b','mmm').gsub('%y','yy').gsub('%d','dd').gsub('%m','mm').gsub('%y','y').gsub('%y','%%y').gsub('%e','d')
133
76
  end
134
77
 
135
78
  # Write the current workbook to Microsoft Excel format (using the spreadsheet gem)
136
79
  #
137
- # @param [String] the filename
138
- # @param [Hash] options, see #to_xls
139
-
80
+ # @param [String] filename
81
+ # @param [Hash] options see #to_xls
140
82
  def write_to_xls filename="#{title}.xls", options={}
141
83
  if to_xls(options).write(filename)
142
84
  return filename
@@ -51,13 +51,13 @@ module Modules
51
51
  assert_equal("a,b,c,d\n1,2,3,4\n\n3,2,3,4\n5,2,3,4\n",align_result[:other].to_csv)
52
52
  assert_equal("a,b,c,d\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n",align_result[:self].to_csv)
53
53
 
54
- tself = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,3,3,4],[3,2,3,4],[5,2,3,4]]).sheet.table
55
- tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[2,2,3,4],[5,2,3,4]]).sheet.table
54
+ tself = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,3,3,4], [3,2,3,4],[5,2,3,4]]).sheet.table
55
+ tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4], [2,2,3,4], [5,2,3,4]]).sheet.table
56
56
  align_result = tself.align tother
57
57
  assert_equal("a,b,c,d\n1,2,3,4\n1,3,3,4\n\n3,2,3,4\n5,2,3,4\n",align_result[:self].to_csv)
58
58
  assert_equal("a,b,c,d\n1,2,3,4\n\n2,2,3,4\n\n5,2,3,4\n",align_result[:other].to_csv)
59
- tself = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4]]).sheet.table
60
- tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,2,3,4],[1,2,3,4],[2,2,3,4],[5,2,3,4]]).sheet.table
59
+ tself = Workbook::Book.new( [['a','b','c','d'],[1,2,3,4], [3,2,3,4],[5,2,3,4]]).sheet.table
60
+ tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,2,3,4],[1,2,3,4],[2,2,3,4], [5,2,3,4]]).sheet.table
61
61
  align_result = tself.align tother
62
62
  assert_equal("a,b,c,d\n1,2,3,4\n\n\n\n3,2,3,4\n5,2,3,4\n",align_result[:self].to_csv)
63
63
  assert_equal("a,b,c,d\n1,2,3,4\n1,2,3,4\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n",align_result[:other].to_csv)
@@ -74,6 +74,19 @@ module Modules
74
74
 
75
75
  end
76
76
 
77
+ def test_with_nil_header
78
+ a = Workbook::Book.new([['a','b',nil],[1,2,3]])
79
+ b = Workbook::Book.new([['a','b','c'],[1,2,3]])
80
+ c = a.sheet.table.diff b.sheet.table
81
+ assert_equal("a,b,(was: c)\n1,2,(was: 3)\n",c.to_csv)
82
+ end
83
+
84
+ # def test_diff_file
85
+ # a = Workbook::Book.open('test/artifacts/private_a_0.xls')
86
+ # b = Workbook::Book.open('test/artifacts/private_a_0.xls')
87
+ # y a.sheet.table.diff b.sheet.table
88
+ # end
89
+
77
90
  # def test_sort_by
78
91
  # b = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,3],[3,2,3,2]]
79
92
  # y b.sheet.table.sort_by{|r| r[:d]}
@@ -98,8 +111,8 @@ module Modules
98
111
  tother = bb.sheet.table
99
112
  diff_result = tself.diff tother
100
113
  assert_equal('a',diff_result.sheet.table.header[0].value)
101
- assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n3,3 (was: 2),3,4\n4,2,3,4\n(was: 5),(was: 2),(was: 3),(was: 4)\n",diff_result.sheet.table.to_csv)
102
- diff_result.write_to_xls
114
+ assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n3,3 (was: 2),3,4\n4,2,3,4\n(was: 5),(was: 2),(was: 3),(was: 4)\n",diff_result.to_csv)
115
+ diff_result.sheet.book.write_to_xls
103
116
  end
104
117
  end
105
118
  end
data/test/test_row.rb CHANGED
@@ -46,9 +46,26 @@ class TestRow < Test::Unit::TestCase
46
46
  r2.table = t
47
47
  assert_equal(false, r2.header?)
48
48
  assert_equal(true, t.first.header?)
49
+ t.header = r2
50
+ assert_equal(true, r2.header?)
51
+ assert_equal(false, t.first.header?)
52
+
49
53
  assert_equal(r1, t.first)
50
54
  end
51
55
 
56
+ def test_first?
57
+ t = Workbook::Table.new
58
+ r1 = Workbook::Row.new
59
+ r1.table = t
60
+ assert_equal(true, r1.first?)
61
+ r2 = Workbook::Row.new
62
+ r2.table = t
63
+ assert_equal(false, r2.first?)
64
+ assert_equal(true, t.first.first?)
65
+
66
+ assert_equal(r1, t.first)
67
+ end
68
+
52
69
  def test_to_symbols
53
70
  r1 = Workbook::Row.new ["test", "asdf-asd", "asdf - asdf", "asdf2"]
54
71
  assert_equal([:test, :asdfasd, :asdf_asdf, :asdf2], r1.to_symbols)
@@ -111,4 +128,41 @@ class TestRow < Test::Unit::TestCase
111
128
  r1 = Workbook::Row.new ["test", "asdf-asd"]
112
129
  assert_equal("test,asdf-asd\n",r1.to_csv)
113
130
  end
131
+
132
+ def test_clone
133
+ b = Workbook::Book.new
134
+ table = b.sheet.table
135
+ table << Workbook::Row.new(["a","b"])
136
+ row = Workbook::Row.new(["1","2"])
137
+ table << row
138
+ table << row
139
+ row[1] = Workbook::Cell.new(3)
140
+ table << table[1].clone
141
+ table.last[1].value = 5
142
+ assert_equal("a,b\n1,3\n1,3\n1,5\n", table.to_csv)
143
+ end
144
+
145
+ def test_clone_has_no_table
146
+ # actually not desired, but for now enforced.
147
+ b = Workbook::Book.new
148
+ table = b.sheet.table
149
+ table << Workbook::Row.new(["a","b"])
150
+ table << Workbook::Row.new([1,2])
151
+ row = table[1].clone
152
+ assert_equal(nil,row[:a])
153
+ assert_equal(nil,row[:b])
154
+ assert_equal(1,row[0].value)
155
+ assert_equal(2,row[1].value)
156
+ end
157
+
158
+ def test_row_hash_index_assignment
159
+ b = Workbook::Book.new
160
+ table = b.sheet.table
161
+ table << Workbook::Row.new(["a","b"])
162
+ row = Workbook::Row.new([],table)
163
+ row[1]= 12
164
+ assert_equal(12, table.last.last.value)
165
+ row[:b]= 15
166
+ assert_equal(15, table.last.last.value)
167
+ end
114
168
  end
data/test/test_sheet.rb CHANGED
@@ -22,5 +22,13 @@ class TestWorkbook < Test::Unit::TestCase
22
22
  assert_equal(w.table,t)
23
23
 
24
24
  end
25
+
26
+ def test_book
27
+ s = Workbook::Sheet.new
28
+ b = s.book
29
+ assert_equal(s.book, b)
30
+ assert_equal(s, b.sheet)
31
+ assert_equal(s.book.sheet, b.sheet.table.sheet)
32
+ end
25
33
 
26
34
  end
data/test/test_table.rb CHANGED
@@ -34,10 +34,29 @@ class TestTable< Test::Unit::TestCase
34
34
  assert_equal(r, t.last)
35
35
 
36
36
  r << 2
37
-
37
+
38
38
  assert_equal(t.last.empty?, false)
39
-
40
-
39
+ end
40
+
41
+ def test_append_row
42
+ t = Workbook::Table.new
43
+ row = t.new_row(["a","b"])
44
+ assert_equal(row, t.header)
45
+ row = Workbook::Row.new([1,2])
46
+ assert_equal(nil, row.table)
47
+ t.push(row)
48
+ assert_equal(t, row.table)
49
+ row = Workbook::Row.new([3,4])
50
+ assert_equal(nil, row.table)
51
+ t << row
52
+ assert_equal(t, row.table)
53
+ end
54
+
55
+ def test_sheet
56
+ t = Workbook::Table.new
57
+ s = t.sheet
58
+ assert_equal(t, s.table)
59
+ assert_equal(t.sheet, s)
41
60
  end
42
61
 
43
62
  end
@@ -42,5 +42,8 @@ module Writers
42
42
  b.init_spreadsheet_template
43
43
  assert_equal(Spreadsheet::Worksheet,b.xls_sheet(100).class)
44
44
  end
45
+ def test_strftime_to_ms_format_nil
46
+ assert_equal(nil, Workbook::Book.new.strftime_to_ms_format(nil))
47
+ end
45
48
  end
46
49
  end
data/workbook.gemspec CHANGED
@@ -5,7 +5,7 @@ require "workbook"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'workbook'
7
7
  s.rubyforge_project = 'workbook'
8
- s.version = '0.2.0'
8
+ s.version = '0.2.1'
9
9
  s.date = '2013-01-10'
10
10
  s.summary = "Workbook is a datastructure to contain books of tables (an anlogy used in e.g. Excel)"
11
11
  s.description = "Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excels and csv's and tab separated, and offers basic diffing and sorting capabilities."
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 0
9
- version: 0.2.0
8
+ - 1
9
+ version: 0.2.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Maarten Brouwers
@@ -79,9 +79,52 @@ extra_rdoc_files: []
79
79
 
80
80
  files:
81
81
  - .gitignore
82
+ - .yardoc/checksums
83
+ - .yardoc/object_types
84
+ - .yardoc/objects/root.dat
85
+ - .yardoc/proxy_types
82
86
  - Gemfile
83
87
  - Gemfile.lock
88
+ - README.md
84
89
  - Rakefile
90
+ - doc/RubyXL.html
91
+ - doc/RubyXL/Cell.html
92
+ - doc/RubyXL/Workbook.html
93
+ - doc/Workbook.html
94
+ - doc/Workbook/Book.html
95
+ - doc/Workbook/Cell.html
96
+ - doc/Workbook/Format.html
97
+ - doc/Workbook/Modules.html
98
+ - doc/Workbook/Modules/RawObjectsStorage.html
99
+ - doc/Workbook/Modules/TableDiffSort.html
100
+ - doc/Workbook/Modules/TypeParser.html
101
+ - doc/Workbook/Readers.html
102
+ - doc/Workbook/Readers/CsvReader.html
103
+ - doc/Workbook/Readers/TxtReader.html
104
+ - doc/Workbook/Readers/XlsReader.html
105
+ - doc/Workbook/Readers/XlsShared.html
106
+ - doc/Workbook/Readers/XlsxReader.html
107
+ - doc/Workbook/Row.html
108
+ - doc/Workbook/Sheet.html
109
+ - doc/Workbook/Table.html
110
+ - doc/Workbook/Template.html
111
+ - doc/Workbook/Writers.html
112
+ - doc/Workbook/Writers/CsvTableWriter.html
113
+ - doc/Workbook/Writers/XlsWriter.html
114
+ - doc/_index.html
115
+ - doc/class_list.html
116
+ - doc/css/common.css
117
+ - doc/css/full_list.css
118
+ - doc/css/style.css
119
+ - doc/file.README.html
120
+ - doc/file_list.html
121
+ - doc/frames.html
122
+ - doc/index.html
123
+ - doc/js/app.js
124
+ - doc/js/full_list.js
125
+ - doc/js/jquery.js
126
+ - doc/method_list.html
127
+ - doc/top-level-namespace.html
85
128
  - lib/workbook.rb
86
129
  - lib/workbook/book.rb
87
130
  - lib/workbook/cell.rb
@@ -92,6 +135,7 @@ files:
92
135
  - lib/workbook/readers/csv_reader.rb
93
136
  - lib/workbook/readers/txt_reader.rb
94
137
  - lib/workbook/readers/xls_reader.rb
138
+ - lib/workbook/readers/xls_shared.rb
95
139
  - lib/workbook/readers/xlsx_reader.rb
96
140
  - lib/workbook/row.rb
97
141
  - lib/workbook/sheet.rb
@@ -99,7 +143,6 @@ files:
99
143
  - lib/workbook/template.rb
100
144
  - lib/workbook/writers/csv_table_writer.rb
101
145
  - lib/workbook/writers/xls_writer.rb
102
- - readme.markdown
103
146
  - test/artifacts/book_with_tabs_and_colours.xls
104
147
  - test/artifacts/book_with_tabs_and_colours.xlsx
105
148
  - test/artifacts/complex_types.xls