workbook 0.3.1 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/.yardoc/checksums +21 -18
  2. data/.yardoc/object_types +0 -0
  3. data/.yardoc/objects/root.dat +0 -0
  4. data/Gemfile.lock +4 -4
  5. data/README.md +8 -5
  6. data/doc/RubyXL/Cell.html +18 -19
  7. data/doc/RubyXL/Workbook.html +116 -114
  8. data/doc/RubyXL.html +3 -3
  9. data/doc/Workbook/Book.html +513 -145
  10. data/doc/Workbook/Cell.html +181 -170
  11. data/doc/Workbook/Format.html +591 -77
  12. data/doc/Workbook/Modules/RawObjectsStorage.html +39 -45
  13. data/doc/Workbook/Modules/TableDiffSort.html +225 -87
  14. data/doc/Workbook/Modules/TypeParser.html +182 -131
  15. data/doc/Workbook/Modules.html +3 -3
  16. data/doc/Workbook/Readers/CsvReader.html +101 -39
  17. data/doc/Workbook/Readers/OdsReader.html +564 -0
  18. data/doc/Workbook/Readers/TxtReader.html +12 -14
  19. data/doc/Workbook/Readers/XlsReader.html +154 -138
  20. data/doc/Workbook/Readers/XlsShared.html +71 -72
  21. data/doc/Workbook/Readers/XlsxReader.html +89 -82
  22. data/doc/Workbook/Readers.html +6 -6
  23. data/doc/Workbook/Row.html +421 -206
  24. data/doc/Workbook/Sheet.html +379 -32
  25. data/doc/Workbook/Table.html +328 -90
  26. data/doc/Workbook/Template.html +55 -60
  27. data/doc/Workbook/Writers/CsvTableWriter.html +33 -8
  28. data/doc/Workbook/Writers/HtmlWriter.html +393 -0
  29. data/doc/Workbook/Writers/XlsWriter.html +132 -92
  30. data/doc/Workbook/Writers.html +5 -5
  31. data/doc/Workbook.html +16 -4
  32. data/doc/_index.html +45 -15
  33. data/doc/class_list.html +1 -1
  34. data/doc/css/style.css +10 -0
  35. data/doc/file.README.html +53 -48
  36. data/doc/frames.html +1 -1
  37. data/doc/index.html +53 -48
  38. data/doc/method_list.html +232 -56
  39. data/doc/top-level-namespace.html +3 -3
  40. data/lib/workbook/book.rb +27 -1
  41. data/lib/workbook/format.rb +46 -7
  42. data/lib/workbook/modules/type_parser.rb +8 -1
  43. data/lib/workbook/readers/ods_reader.rb +93 -0
  44. data/lib/workbook/row.rb +7 -0
  45. data/lib/workbook/sheet.rb +10 -0
  46. data/lib/workbook/version.rb +1 -1
  47. data/lib/workbook/writers/html_writer.rb +56 -0
  48. data/test/artifacts/book_with_tabs_and_colours.ods +0 -0
  49. data/test/artifacts/complex_types.ods +0 -0
  50. data/test/artifacts/excel_different_types.ods +0 -0
  51. data/test/artifacts/simple_sheet.ods +0 -0
  52. data/test/test_book.rb +6 -0
  53. data/test/test_format.rb +39 -0
  54. data/test/test_modules_type_parser.rb +2 -0
  55. data/test/test_readers_csv_reader.rb +44 -0
  56. data/test/test_readers_ods_reader.rb +51 -0
  57. data/test/test_readers_txt_reader.rb +53 -0
  58. data/test/test_row.rb +12 -0
  59. data/test/test_sheet.rb +12 -0
  60. data/test/test_writers_html_writer.rb +37 -0
  61. data/workbook.gemspec +2 -2
  62. metadata +21 -4
data/doc/index.html CHANGED
@@ -2,11 +2,11 @@
2
2
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
4
  <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Documentation by YARD 0.8.3
9
+ &mdash; Documentation by YARD 0.8.5.2
10
10
 
11
11
  </title>
12
12
 
@@ -99,63 +99,63 @@
99
99
 
100
100
  <p>Simply initialize a simple spreadsheet using:</p>
101
101
 
102
- <pre class="code ruby"><code><span class='rubyid_b identifier id'>b</span> <span class='assign token'>=</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Book constant id'>Book</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span>
102
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_b'>b</span> <span class='op'>=</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Book</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
103
103
  </code></pre>
104
104
 
105
105
  <p>or</p>
106
106
 
107
- <pre class="code ruby"><code><span class='rubyid_b identifier id'>b</span> <span class='assign token'>=</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Book constant id'>Book</span><span class='dot token'>.</span><span class='rubyid_open identifier id'>open</span> <span class='rubyid_filename identifier id'>filename</span>
107
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_b'>b</span> <span class='op'>=</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Book</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span> <span class='id identifier rubyid_filename'>filename</span>
108
108
  </code></pre>
109
109
 
110
110
  <p>Calling</p>
111
111
 
112
- <pre class="code ruby"><code><span class='rubyid_s identifier id'>s</span> <span class='assign token'>=</span> <span class='rubyid_b identifier id'>b</span><span class='dot token'>.</span><span class='rubyid_sheet identifier id'>sheet</span>
113
- <span class='rubyid_t identifier id'>t</span> <span class='assign token'>=</span> <span class='rubyid_s identifier id'>s</span><span class='dot token'>.</span><span class='rubyid_table identifier id'>table</span>
112
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='id identifier rubyid_b'>b</span><span class='period'>.</span><span class='id identifier rubyid_sheet'>sheet</span>
113
+ <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_table'>table</span>
114
114
  </code></pre>
115
115
 
116
- <p>will give you an the first Sheet and Table (if one doesn&#8217;t exist it is created on the fly).</p>
116
+ <p>will give you an the first Sheet and Table (if one doesnt exist it is created on the fly).</p>
117
117
 
118
118
  <p>You can initialize with simple 2-d array like this:</p>
119
119
 
120
- <pre class="code ruby"><code><span class='rubyid_b identifier id'>b</span> <span class='assign token'>=</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Book constant id'>Book</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span> <span class='lbrack token'>[</span><span class='lbrack token'>[</span><span class='string val'>'a'</span><span class='comma token'>,</span><span class='string val'>'b'</span><span class='rbrack token'>]</span><span class='comma token'>,</span><span class='lbrack token'>[</span><span class='integer val'>1</span><span class='comma token'>,</span><span class='integer val'>2</span><span class='rbrack token'>]</span><span class='comma token'>,</span><span class='lbrack token'>[</span><span class='integer val'>3</span><span class='comma token'>,</span><span class='integer val'>4</span><span class='rbrack token'>]</span><span class='comma token'>,</span><span class='lbrack token'>[</span><span class='integer val'>5</span><span class='comma token'>,</span><span class='integer val'>6</span><span class='rbrack token'>]</span><span class='rbrack token'>]</span>
121
- <span class='rubyid_t identifier id'>t</span> <span class='assign token'>=</span> <span class='rubyid_s identifier id'>s</span><span class='dot token'>.</span><span class='rubyid_sheet identifier id'>sheet</span><span class='dot token'>.</span><span class='rubyid_table identifier id'>table</span>
120
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_b'>b</span> <span class='op'>=</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Book</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbracket'>[</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>a</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>b</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>2</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='lbracket'>[</span><span class='int'>3</span><span class='comma'>,</span><span class='int'>4</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='lbracket'>[</span><span class='int'>5</span><span class='comma'>,</span><span class='int'>6</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
121
+ <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_sheet'>sheet</span><span class='period'>.</span><span class='id identifier rubyid_table'>table</span>
122
122
  </code></pre>
123
123
 
124
124
  <p>Subsequently you look up values in the table like this:</p>
125
125
 
126
- <pre class="code ruby"><code><span class='rubyid_t identifier id'>t</span><span class='lbrack token'>[</span><span class='integer val'>1</span><span class='rbrack token'>]</span><span class='lbrack token'>[</span><span class='symbol val'>:b</span><span class='rbrack token'>]</span>
127
- <span class='comment val'># returns &lt;Workbook::Cel @value=2&gt;</span>
128
- </code></pre>
126
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_t'>t</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:b</span><span class='rbracket'>]</span>
127
+ <span class='comment'># returns &lt;Workbook::Cel @value=2&gt;
128
+ </span></code></pre>
129
129
 
130
130
  <p>which is equivalent to</p>
131
131
 
132
- <pre class="code ruby"><code><span class='rubyid_t identifier id'>t</span><span class='lbrack token'>[</span><span class='integer val'>1</span><span class='rbrack token'>]</span><span class='lbrack token'>[</span><span class='integer val'>1</span><span class='rbrack token'>]</span>
132
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_t'>t</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
133
133
  </code></pre>
134
134
 
135
- <p>Of course you&#8217;ll be able to write a new value back to it. If you just enter a value, formatting of the original cell will be maintained.</p>
135
+ <p>Of course youll be able to write a new value back to it. If you just enter a value, formatting of the original cell will be maintained.</p>
136
136
 
137
- <pre class="code ruby"><code><span class='rubyid_t identifier id'>t</span><span class='lbrack token'>[</span><span class='integer val'>1</span><span class='rbrack token'>]</span><span class='lbrack token'>[</span><span class='symbol val'>:b</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='integer val'>5</span>
137
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_t'>t</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:b</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='int'>5</span>
138
138
  </code></pre>
139
139
 
140
140
  <p>If you want to use an existing file as a template (which you can create in Excel to create nice looking templates),
141
141
  simply clone the row, and add it back:</p>
142
142
 
143
- <pre class="code ruby"><code><span class='rubyid_b identifier id'>b</span> <span class='assign token'>=</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Book constant id'>Book</span><span class='dot token'>.</span><span class='rubyid_open identifier id'>open</span><span class='lparen token'>(</span><span class='string val'>&quot;template.xls&quot;</span><span class='rparen token'>)</span>
144
- <span class='rubyid_table identifier id'>table</span> <span class='assign token'>=</span> <span class='rubyid_b identifier id'>b</span><span class='dot token'>.</span><span class='rubyid_sheet identifier id'>sheet</span><span class='dot token'>.</span><span class='rubyid_table identifier id'>table</span>
145
- <span class='rubyid_template_row identifier id'>template_row</span> <span class='assign token'>=</span> <span class='rubyid_table identifier id'>table</span><span class='lbrack token'>[</span><span class='integer val'>1</span><span class='rbrack token'>]</span> <span class='comment val'># can be any, but I typically have a well</span>
146
- <span class='comment val'># formatted header row + an example template </span>
147
- <span class='comment val'># row for the data</span>
148
- <span class='lbrack token'>[</span><span class='integer val'>1</span><span class='comma token'>,</span><span class='integer val'>2</span><span class='comma token'>,</span><span class='integer val'>3</span><span class='comma token'>,</span><span class='integer val'>4</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='rubyid_each identifier id'>each</span> <span class='rubyid_do do kw'>do</span> <span class='bitor op'>|</span><span class='rubyid_v identifier id'>v</span><span class='bitor op'>|</span>
149
- <span class='rubyid_new_row identifier id'>new_row</span> <span class='assign token'>=</span> <span class='rubyid_template_row identifier id'>template_row</span><span class='dot token'>.</span><span class='rubyid_clone identifier id'>clone</span>
150
- <span class='rubyid_table identifier id'>table</span> <span class='lshft op'>&lt;&lt;</span> <span class='rubyid_new_row identifier id'>new_row</span> <span class='comment val'># to use the symbol style header references, </span>
151
- <span class='comment val'># the row first needs to be added back to the </span>
152
- <span class='comment val'># table</span>
153
- <span class='rubyid_new_row identifier id'>new_row</span><span class='lbrack token'>[</span><span class='symbol val'>:a</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='rubyid_v identifier id'>v</span>
154
- <span class='rubyid_end end kw'>end</span>
155
- <span class='rubyid_table identifier id'>table</span><span class='dot token'>.</span><span class='rubyid_delete identifier id'>delete</span><span class='lparen token'>(</span><span class='rubyid_template_row identifier id'>template_row</span><span class='rparen token'>)</span> <span class='comment val'># you don't want the template to show up</span>
156
- <span class='comment val'># in the endresult</span>
157
- <span class='rubyid_b identifier id'>b</span><span class='dot token'>.</span><span class='rubyid_write identifier id'>write</span><span class='lparen token'>(</span><span class='string val'>&quot;result.xls&quot;</span><span class='rparen token'>)</span> <span class='comment val'># write it!</span>
158
- </code></pre>
143
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_b'>b</span> <span class='op'>=</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Book</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>template.xls</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
144
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>=</span> <span class='id identifier rubyid_b'>b</span><span class='period'>.</span><span class='id identifier rubyid_sheet'>sheet</span><span class='period'>.</span><span class='id identifier rubyid_table'>table</span>
145
+ <span class='id identifier rubyid_template_row'>template_row</span> <span class='op'>=</span> <span class='id identifier rubyid_table'>table</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='comment'># can be any, but I typically have a well
146
+ </span> <span class='comment'># formatted header row + an example template
147
+ </span> <span class='comment'># row for the data
148
+ </span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>2</span><span class='comma'>,</span><span class='int'>3</span><span class='comma'>,</span><span class='int'>4</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
149
+ <span class='id identifier rubyid_new_row'>new_row</span> <span class='op'>=</span> <span class='id identifier rubyid_template_row'>template_row</span><span class='period'>.</span><span class='id identifier rubyid_clone'>clone</span>
150
+ <span class='id identifier rubyid_table'>table</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_new_row'>new_row</span> <span class='comment'># to use the symbol style header references,
151
+ </span> <span class='comment'># the row first needs to be added back to the
152
+ </span> <span class='comment'># table
153
+ </span> <span class='id identifier rubyid_new_row'>new_row</span><span class='lbracket'>[</span><span class='symbol'>:a</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span>
154
+ <span class='kw'>end</span>
155
+ <span class='id identifier rubyid_table'>table</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_template_row'>template_row</span><span class='rparen'>)</span> <span class='comment'># you don't want the template to show up
156
+ </span> <span class='comment'># in the endresult
157
+ </span><span class='id identifier rubyid_b'>b</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>result.xls</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='comment'># write it!
158
+ </span></code></pre>
159
159
 
160
160
  <!-- Feature *to implement*:
161
161
 
@@ -175,23 +175,23 @@ On my wishlist: In the future I hope to return the cell value directly, without
175
175
 
176
176
  <h3 id="sorting">Sorting</h3>
177
177
 
178
- <p>Sorting leaves the header alone, if it exists, and doesn&#8217;t complain about comparing strings with dates with floats (Ever found OpenOffice Calc or Excel complainging about its inability to compare integers and strings? We&#8217;re talking spreadsheet here). When classes are different the following (default) order is used: Numbers, Strings, Dates and Times, Booleans and Nils (empty values).</p>
178
+ <p>Sorting leaves the header alone, if it exists, and doesnt complain about comparing strings with dates with floats (Ever found OpenOffice Calc or Excel complainging about its inability to compare integers and strings? Were talking spreadsheet here). When classes are different the following (default) order is used: Numbers, Strings, Dates and Times, Booleans and Nils (empty values).</p>
179
179
 
180
- <pre class="code ruby"><code><span class='rubyid_t identifier id'>t</span><span class='dot token'>.</span><span class='rubyid_sort identifier id'>sort</span>
180
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span>
181
181
  </code></pre>
182
182
 
183
183
  <p><em>To implement</em>:</p>
184
184
 
185
- <p>To some extent, sort_by works, it doesn&#8217;t, however, adhere to the header settings&#8230; </p>
185
+ <p>To some extent, sort_by works, it doesnt, however, adhere to the header settings </p>
186
186
 
187
- <pre class="code ruby"><code><span class='rubyid_t identifier id'>t</span><span class='dot token'>.</span><span class='rubyid_sort_by identifier id'>sort_by</span> <span class='lbrace token'>{</span><span class='bitor op'>|</span><span class='rubyid_r identifier id'>r</span><span class='bitor op'>|</span> <span class='rubyid_r identifier id'>r</span><span class='lbrack token'>[</span><span class='symbol val'>:b</span><span class='rbrack token'>]</span><span class='rbrace token'>}</span>
187
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_sort_by'>sort_by</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_r'>r</span><span class='op'>|</span> <span class='id identifier rubyid_r'>r</span><span class='lbracket'>[</span><span class='symbol'>:b</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
188
188
  </code></pre>
189
189
 
190
190
  <h3 id="comparing-tables">Comparing tables</h3>
191
191
 
192
192
  <p>Simply call on a Workbook::Table</p>
193
193
 
194
- <pre class="code ruby"><code><span class='rubyid_t1 identifier id'>t1</span><span class='dot token'>.</span><span class='rubyid_diff identifier id'>diff</span> <span class='rubyid_t2 identifier id'>t2</span>
194
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_t1'>t1</span><span class='period'>.</span><span class='id identifier rubyid_diff'>diff</span> <span class='id identifier rubyid_t2'>t2</span>
195
195
  </code></pre>
196
196
 
197
197
  <p>And a new book with a new sheet/table will be returned containing the differences between the two tables.</p>
@@ -200,16 +200,20 @@ On my wishlist: In the future I hope to return the cell value directly, without
200
200
 
201
201
  <p>Currently writing is limited to the following formats. Templating support is still limited.</p>
202
202
 
203
- <pre class="code ruby"><code><span class='rubyid_b identifier id'>b</span><span class='dot token'>.</span><span class='rubyid_to_xls identifier id'>to_xls</span> <span class='comment val'># returns a spreadsheet workbook</span>
204
- <span class='rubyid_b identifier id'>b</span><span class='dot token'>.</span><span class='rubyid_write_to_xls identifier id'>write_to_xls</span> <span class='rubyid_filename identifier id'>filename</span> <span class='comment val'># writes to filename</span>
205
- <span class='rubyid_t identifier id'>t</span><span class='dot token'>.</span><span class='rubyid_to_csv identifier id'>to_csv</span> <span class='comment val'># returns a csv-string (called on tables)</span>
206
- </code></pre>
203
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_b'>b</span><span class='period'>.</span><span class='id identifier rubyid_to_xls'>to_xls</span> <span class='comment'># returns a spreadsheet workbook
204
+ </span><span class='id identifier rubyid_b'>b</span><span class='period'>.</span><span class='id identifier rubyid_write_to_xls'>write_to_xls</span> <span class='id identifier rubyid_filename'>filename</span> <span class='comment'># writes to filename
205
+ </span><span class='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_to_csv'>to_csv</span> <span class='comment'># returns a csv-string (called on tables)
206
+ </span></code></pre>
207
207
 
208
208
  <p>In case you want to display the table in HTML, some conversion is offered to convert text/background properties to css-entities. Internally the hash storing style elements tries to map to CSS where possible.</p>
209
209
 
210
+ <h2 id="compatibility">Compatibility</h2>
211
+
212
+ <p>Workbook should be compatible with ruby 1.8.7 and 1.9.3. Check <a href="https://travis-ci.org/murb/workbook">Travis for Workbook’s current build status</a> <a href="https://travis-ci.org/murb/workbook"><img src="https://travis-ci.org/murb/workbook.png?branch=master" alt="Build Status" /></a>. </p>
213
+
210
214
  <h2 id="alternatives">Alternatives</h2>
211
215
 
212
- <p>The <a href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&amp;q=spreadsheet">ruby toolbox lists plenty of alternatives</a>, that just didn&#8217;t suit my needs.</p>
216
+ <p>The <a href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&amp;q=spreadsheet">ruby toolbox lists plenty of alternatives</a>, that just didnt suit my needs.</p>
213
217
 
214
218
  <h2 id="license">License</h2>
215
219
 
@@ -218,18 +222,19 @@ On my wishlist: In the future I hope to return the cell value directly, without
218
222
  <p>Workbook uses the following gems:</p>
219
223
 
220
224
  <ul>
221
- <li><a href="https://github.com/zdavatz/spreadsheet">Spreadsheet</a> Used for reading and writing old style .xls files (Copyright (c) 2010 ywesee GmbH (mhatakeyama@ywesee.com, zdavatz@ywesee.com); GPL3 (License required for closed implementations))</li>
222
- <li><a href="http://code.google.com/p/ruby-ole/">ruby-ole</a> Used in the Spreadsheet Gem (Copyright (c) 2007-2010 Charles Lowe; MIT)</li>
223
- <li><a href="http://fastercsv.rubyforge.org/">FasterCSV</a> Used for reading CSV (comma separated text) and TXT (tab separated text) files (Copyright (c) James Edward Gray II; GPL2 &amp; Ruby License)</li>
224
- <li><a href="http://rubyforge.org/projects/rchardet">rchardet</a> Used for detecting encoding in CSV and TXT importers (Copyright (c) JMHodges; LGPL)</li>
225
- <li><a href="https://github.com/gilt/rubyXL">RubyXL</a> Used for reading the newer .xlsx files (Copyright (c) 2011 Vivek Bhagwat; MIT-Licensed)</li>
225
+ <li><a href="https://github.com/zdavatz/spreadsheet">Spreadsheet</a> Used for reading and writing old style .xls files (Copyright © 2010 ywesee GmbH (mhatakeyama@ywesee.com, zdavatz@ywesee.com); GPL3 (License required for closed implementations))</li>
226
+ <li><a href="http://code.google.com/p/ruby-ole/">ruby-ole</a> Used in the Spreadsheet Gem (Copyright © 2007-2010 Charles Lowe; MIT)</li>
227
+ <li><a href="http://fastercsv.rubyforge.org/">FasterCSV</a> Used for reading CSV (comma separated text) and TXT (tab separated text) files (Copyright © James Edward Gray II; GPL2 &amp; Ruby License)</li>
228
+ <li><a href="http://rubyforge.org/projects/rchardet">rchardet</a> Used for detecting encoding in CSV and TXT importers (Copyright © JMHodges; LGPL)</li>
229
+ <li><a href="https://github.com/gilt/rubyXL">RubyXL</a> Used for reading the newer .xlsx files (Copyright © 2011 Vivek Bhagwat; MIT-Licensed)</li>
230
+ <li><a href="http://nokogiri.org/">Nokogiri</a> Used for reading ODS documents (Copyright © 2008 - 2012 Aaron Patterson, Mike Dalessio, Charles Nutter, Sergio Arbeo, Patrick Mahoney, Yoko Harada; MIT Licensed)</li>
226
231
  </ul>
227
232
  </div></div>
228
233
 
229
234
  <div id="footer">
230
- Generated on Thu Jan 17 13:15:55 2013 by
235
+ Generated on Sun May 5 14:58:04 2013 by
231
236
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
232
- 0.8.3 (ruby-1.8.7).
237
+ 0.8.5.2 (ruby-1.9.3).
233
238
  </div>
234
239
 
235
240
  </body>