workbook 0.3.1 → 0.4

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 (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
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: Workbook::Book
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
 
@@ -93,7 +93,7 @@
93
93
 
94
94
 
95
95
  <dt class="r2">Includes:</dt>
96
- <dd class="r2"><span class='object_link'><a href="Readers/CsvReader.html" title="Workbook::Readers::CsvReader (module)">Readers::CsvReader</a></span>, <span class='object_link'><a href="Readers/TxtReader.html" title="Workbook::Readers::TxtReader (module)">Readers::TxtReader</a></span>, <span class='object_link'><a href="Readers/XlsReader.html" title="Workbook::Readers::XlsReader (module)">Readers::XlsReader</a></span>, <span class='object_link'><a href="Readers/XlsShared.html" title="Workbook::Readers::XlsShared (module)">Readers::XlsShared</a></span>, <span class='object_link'><a href="Readers/XlsxReader.html" title="Workbook::Readers::XlsxReader (module)">Readers::XlsxReader</a></span>, <span class='object_link'><a href="Writers/XlsWriter.html" title="Workbook::Writers::XlsWriter (module)">Writers::XlsWriter</a></span></dd>
96
+ <dd class="r2"><span class='object_link'><a href="Readers/CsvReader.html" title="Workbook::Readers::CsvReader (module)">Readers::CsvReader</a></span>, <span class='object_link'><a href="Readers/OdsReader.html" title="Workbook::Readers::OdsReader (module)">Readers::OdsReader</a></span>, <span class='object_link'><a href="Readers/TxtReader.html" title="Workbook::Readers::TxtReader (module)">Readers::TxtReader</a></span>, <span class='object_link'><a href="Readers/XlsReader.html" title="Workbook::Readers::XlsReader (module)">Readers::XlsReader</a></span>, <span class='object_link'><a href="Readers/XlsShared.html" title="Workbook::Readers::XlsShared (module)">Readers::XlsShared</a></span>, <span class='object_link'><a href="Readers/XlsxReader.html" title="Workbook::Readers::XlsxReader (module)">Readers::XlsxReader</a></span>, <span class='object_link'><a href="Writers/HtmlWriter.html" title="Workbook::Writers::HtmlWriter (module)">Writers::HtmlWriter</a></span>, <span class='object_link'><a href="Writers/XlsWriter.html" title="Workbook::Writers::XlsWriter (module)">Writers::XlsWriter</a></span></dd>
97
97
 
98
98
 
99
99
 
@@ -222,6 +222,31 @@ reference to a template class, storing shared formatting options.</p>
222
222
  <p>Create an instance from a file, using open.</p>
223
223
  </div></span>
224
224
 
225
+ </li>
226
+
227
+
228
+ <li class="public ">
229
+ <span class="summary_signature">
230
+
231
+ <a href="#read-class_method" title="read (class method)">+ (Workbook::Book) <strong>read</strong>(stringio_or_string, filetype) </a>
232
+
233
+
234
+
235
+ </span>
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+ <span class="summary_desc"><div class='inline'>
246
+ <p>Create an instance from the given stream or string, which should be in CSV
247
+ or TXT format.</p>
248
+ </div></span>
249
+
225
250
  </li>
226
251
 
227
252
 
@@ -425,6 +450,30 @@ to the extension determined loaded.</p>
425
450
  default is a new sheet).</p>
426
451
  </div></span>
427
452
 
453
+ </li>
454
+
455
+
456
+ <li class="public ">
457
+ <span class="summary_signature">
458
+
459
+ <a href="#read-instance_method" title="#read (instance method)">- (Object) <strong>read</strong>(stringio_or_string, filetype) </a>
460
+
461
+
462
+
463
+ </span>
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+ <span class="summary_desc"><div class='inline'>
474
+ <p>Load the CSV data contained in the given StringIO or String object.</p>
475
+ </div></span>
476
+
428
477
  </li>
429
478
 
430
479
 
@@ -449,6 +498,30 @@ default is a new sheet).</p>
449
498
  <p>Sheet returns the first sheet of a workbook, or an empty one.</p>
450
499
  </div></span>
451
500
 
501
+ </li>
502
+
503
+
504
+ <li class="public ">
505
+ <span class="summary_signature">
506
+
507
+ <a href="#text_to_utf8-instance_method" title="#text_to_utf8 (instance method)">- (Object) <strong>text_to_utf8</strong>(text) </a>
508
+
509
+
510
+
511
+ </span>
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+ <span class="summary_desc"><div class='inline'>
522
+ <p>Helper method to convert text in a file to UTF-8.</p>
523
+ </div></span>
524
+
452
525
  </li>
453
526
 
454
527
 
@@ -476,7 +549,7 @@ default is a new sheet).</p>
476
549
 
477
550
 
478
551
  <h3 class="inherited">Methods included from <span class='object_link'><a href="Readers/CsvReader.html" title="Workbook::Readers::CsvReader (module)">Readers::CsvReader</a></span></h3>
479
- <p class="inherited"><span class='object_link'><a href="Readers/CsvReader.html#load_csv-instance_method" title="Workbook::Readers::CsvReader#load_csv (method)">#load_csv</a></span>, <span class='object_link'><a href="Readers/CsvReader.html#parse_csv-instance_method" title="Workbook::Readers::CsvReader#parse_csv (method)">#parse_csv</a></span></p>
552
+ <p class="inherited"><span class='object_link'><a href="Readers/CsvReader.html#csv_lib-instance_method" title="Workbook::Readers::CsvReader#csv_lib (method)">#csv_lib</a></span>, <span class='object_link'><a href="Readers/CsvReader.html#load_csv-instance_method" title="Workbook::Readers::CsvReader#load_csv (method)">#load_csv</a></span>, <span class='object_link'><a href="Readers/CsvReader.html#parse_csv-instance_method" title="Workbook::Readers::CsvReader#parse_csv (method)">#parse_csv</a></span></p>
480
553
 
481
554
 
482
555
 
@@ -487,7 +560,18 @@ default is a new sheet).</p>
487
560
 
488
561
 
489
562
  <h3 class="inherited">Methods included from <span class='object_link'><a href="Readers/XlsxReader.html" title="Workbook::Readers::XlsxReader (module)">Readers::XlsxReader</a></span></h3>
490
- <p class="inherited"><span class='object_link'><a href="Readers/XlsxReader.html#load_xlsx-instance_method" title="Workbook::Readers::XlsxReader#load_xlsx (method)">#load_xlsx</a></span>, <span class='object_link'><a href="Readers/XlsxReader.html#ms_formatting_to_strftime-instance_method" title="Workbook::Readers::XlsxReader#ms_formatting_to_strftime (method)">#ms_formatting_to_strftime</a></span>, <span class='object_link'><a href="Readers/XlsxReader.html#parse_xlsx-instance_method" title="Workbook::Readers::XlsxReader#parse_xlsx (method)">#parse_xlsx</a></span></p>
563
+ <p class="inherited"><span class='object_link'><a href="Readers/XlsxReader.html#load_xlsx-instance_method" title="Workbook::Readers::XlsxReader#load_xlsx (method)">#load_xlsx</a></span>, <span class='object_link'><a href="Readers/XlsxReader.html#parse_xlsx-instance_method" title="Workbook::Readers::XlsxReader#parse_xlsx (method)">#parse_xlsx</a></span></p>
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Readers/OdsReader.html" title="Workbook::Readers::OdsReader (module)">Readers::OdsReader</a></span></h3>
574
+ <p class="inherited"><span class='object_link'><a href="Readers/OdsReader.html#load_ods-instance_method" title="Workbook::Readers::OdsReader#load_ods (method)">#load_ods</a></span>, <span class='object_link'><a href="Readers/OdsReader.html#parse_ods-instance_method" title="Workbook::Readers::OdsReader#parse_ods (method)">#parse_ods</a></span>, <span class='object_link'><a href="Readers/OdsReader.html#parse_ods_style-instance_method" title="Workbook::Readers::OdsReader#parse_ods_style (method)">#parse_ods_style</a></span>, <span class='object_link'><a href="Readers/OdsReader.html#set_format_property-instance_method" title="Workbook::Readers::OdsReader#set_format_property (method)">#set_format_property</a></span></p>
491
575
 
492
576
 
493
577
 
@@ -498,7 +582,18 @@ default is a new sheet).</p>
498
582
 
499
583
 
500
584
  <h3 class="inherited">Methods included from <span class='object_link'><a href="Readers/XlsReader.html" title="Workbook::Readers::XlsReader (module)">Readers::XlsReader</a></span></h3>
501
- <p class="inherited"><span class='object_link'><a href="Readers/XlsReader.html#load_xls-instance_method" title="Workbook::Readers::XlsReader#load_xls (method)">#load_xls</a></span>, <span class='object_link'><a href="Readers/XlsReader.html#ms_formatting_to_strftime-instance_method" title="Workbook::Readers::XlsReader#ms_formatting_to_strftime (method)">#ms_formatting_to_strftime</a></span>, <span class='object_link'><a href="Readers/XlsReader.html#parse_xls-instance_method" title="Workbook::Readers::XlsReader#parse_xls (method)">#parse_xls</a></span>, <span class='object_link'><a href="Readers/XlsReader.html#xls_color_to_html_hex-instance_method" title="Workbook::Readers::XlsReader#xls_color_to_html_hex (method)">#xls_color_to_html_hex</a></span></p>
585
+ <p class="inherited"><span class='object_link'><a href="Readers/XlsReader.html#load_xls-instance_method" title="Workbook::Readers::XlsReader#load_xls (method)">#load_xls</a></span>, <span class='object_link'><a href="Readers/XlsReader.html#parse_xls-instance_method" title="Workbook::Readers::XlsReader#parse_xls (method)">#parse_xls</a></span></p>
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Writers/HtmlWriter.html" title="Workbook::Writers::HtmlWriter (module)">Writers::HtmlWriter</a></span></h3>
596
+ <p class="inherited"><span class='object_link'><a href="Writers/HtmlWriter.html#to_html-instance_method" title="Workbook::Writers::HtmlWriter#to_html (method)">#to_html</a></span>, <span class='object_link'><a href="Writers/HtmlWriter.html#write_to_html-instance_method" title="Workbook::Writers::HtmlWriter#write_to_html (method)">#write_to_html</a></span></p>
502
597
 
503
598
 
504
599
 
@@ -567,25 +662,24 @@ based on the array</p>
567
662
  <pre class="lines">
568
663
 
569
664
 
570
- 26
571
- 27
572
- 28
573
- 29
574
665
  30
575
666
  31
576
- 32</pre>
667
+ 32
668
+ 33
669
+ 34
670
+ 35
671
+ 36</pre>
577
672
  </td>
578
673
  <td>
579
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 26</span>
580
-
581
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_initialize identifier id'>initialize</span> <span class='rubyid_sheet identifier id'>sheet</span><span class='assign token'>=</span><span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Sheet constant id'>Sheet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='lbrack token'>[</span><span class='rbrack token'>]</span><span class='comma token'>,</span> <span class='rubyid_self self kw'>self</span><span class='comma token'>,</span> <span class='rubyid_options identifier id'>options</span><span class='assign token'>=</span><span class='lbrace token'>{</span><span class='rbrace token'>}</span><span class='rparen token'>)</span>
582
- <span class='rubyid_if if kw'>if</span> <span class='rubyid_sheet identifier id'>sheet</span><span class='dot token'>.</span><span class='rubyid_is_a? fid id'>is_a?</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Sheet constant id'>Sheet</span>
583
- <span class='rubyid_push identifier id'>push</span> <span class='rubyid_sheet identifier id'>sheet</span>
584
- <span class='rubyid_else else kw'>else</span>
585
- <span class='rubyid_push identifier id'>push</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Sheet constant id'>Sheet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_sheet identifier id'>sheet</span><span class='comma token'>,</span> <span class='rubyid_self self kw'>self</span><span class='comma token'>,</span> <span class='rubyid_options identifier id'>options</span><span class='rparen token'>)</span>
586
- <span class='rubyid_end end kw'>end</span>
587
- <span class='rubyid_end end kw'>end</span>
588
- </pre>
674
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 30</span>
675
+
676
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span> <span class='id identifier rubyid_sheet'>sheet</span><span class='op'>=</span><span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Sheet</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
677
+ <span class='kw'>if</span> <span class='id identifier rubyid_sheet'>sheet</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Sheet</span>
678
+ <span class='id identifier rubyid_push'>push</span> <span class='id identifier rubyid_sheet'>sheet</span>
679
+ <span class='kw'>else</span>
680
+ <span class='id identifier rubyid_push'>push</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Sheet</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_sheet'>sheet</span><span class='comma'>,</span> <span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
681
+ <span class='kw'>end</span>
682
+ <span class='kw'>end</span></pre>
589
683
  </td>
590
684
  </tr>
591
685
  </table>
@@ -642,17 +736,16 @@ based on the array</p>
642
736
  <pre class="lines">
643
737
 
644
738
 
645
- 35
646
- 36
647
- 37</pre>
739
+ 39
740
+ 40
741
+ 41</pre>
648
742
  </td>
649
743
  <td>
650
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 35</span>
744
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 39</span>
651
745
 
652
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_template identifier id'>template</span>
653
- <span class='rubyid_@template ivar id'>@template</span>
654
- <span class='rubyid_end end kw'>end</span>
655
- </pre>
746
+ <span class='kw'>def</span> <span class='id identifier rubyid_template'>template</span>
747
+ <span class='ivar'>@template</span>
748
+ <span class='kw'>end</span></pre>
656
749
  </td>
657
750
  </tr>
658
751
  </table>
@@ -704,17 +797,16 @@ based on the array</p>
704
797
  <pre class="lines">
705
798
 
706
799
 
707
- 48
708
- 49
709
- 50</pre>
800
+ 52
801
+ 53
802
+ 54</pre>
710
803
  </td>
711
804
  <td>
712
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 48</span>
805
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 52</span>
713
806
 
714
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_title identifier id'>title</span>
715
- <span class='rubyid_@title ivar id'>@title</span>
716
- <span class='rubyid_end end kw'>end</span>
717
- </pre>
807
+ <span class='kw'>def</span> <span class='id identifier rubyid_title'>title</span>
808
+ <span class='ivar'>@title</span>
809
+ <span class='kw'>end</span></pre>
718
810
  </td>
719
811
  </tr>
720
812
  </table>
@@ -810,21 +902,120 @@ of the file, this option allows you to override the default.</p>
810
902
  <pre class="lines">
811
903
 
812
904
 
813
- 124
814
- 125
815
- 126
816
- 127
817
- 128</pre>
905
+ 150
906
+ 151
907
+ 152
908
+ 153
909
+ 154</pre>
910
+ </td>
911
+ <td>
912
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 150</span>
913
+
914
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span><span class='op'>=</span><span class='kw'>nil</span>
915
+ <span class='id identifier rubyid_wb'>wb</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
916
+ <span class='id identifier rubyid_wb'>wb</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span>
917
+ <span class='kw'>return</span> <span class='id identifier rubyid_wb'>wb</span>
918
+ <span class='kw'>end</span></pre>
919
+ </td>
920
+ </tr>
921
+ </table>
922
+ </div>
923
+
924
+ <div class="method_details ">
925
+ <h3 class="signature " id="read-class_method">
926
+
927
+ + (<tt><span class='object_link'><a href="" title="Workbook::Book (class)">Workbook::Book</a></span></tt>) <strong>read</strong>(stringio_or_string, filetype)
928
+
929
+
930
+
931
+
932
+
933
+ </h3><div class="docstring">
934
+ <div class="discussion">
935
+
936
+ <p>Create an instance from the given stream or string, which should be in CSV
937
+ or TXT format</p>
938
+
939
+
940
+ </div>
941
+ </div>
942
+ <div class="tags">
943
+ <p class="tag_title">Parameters:</p>
944
+ <ul class="param">
945
+
946
+ <li>
947
+
948
+ <span class='name'>stringio_or_string</span>
949
+
950
+
951
+ <span class='type'>(<tt>StringIO</tt>)</span>
952
+
953
+
954
+
955
+ &mdash;
956
+ <div class='inline'>
957
+ <p>StringIO stream or String object, with data in CSV or TXT format</p>
958
+ </div>
959
+
960
+ </li>
961
+
962
+ <li>
963
+
964
+ <span class='name'>filetype</span>
965
+
966
+
967
+ <span class='type'>(<tt>Symbol</tt>)</span>
968
+
969
+
970
+
971
+ &mdash;
972
+ <div class='inline'>
973
+ <p>(currently only :csv or :txt), indicating the format of the first parameter</p>
974
+ </div>
975
+
976
+ </li>
977
+
978
+ </ul>
979
+
980
+ <p class="tag_title">Returns:</p>
981
+ <ul class="return">
982
+
983
+ <li>
984
+
985
+
986
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Workbook::Book (class)">Workbook::Book</a></span></tt>)</span>
987
+
988
+
989
+
990
+ &mdash;
991
+ <div class='inline'>
992
+ <p>A new instance</p>
993
+ </div>
994
+
995
+ </li>
996
+
997
+ </ul>
998
+
999
+ </div><table class="source_code">
1000
+ <tr>
1001
+ <td>
1002
+ <pre class="lines">
1003
+
1004
+
1005
+ 161
1006
+ 162
1007
+ 163
1008
+ 164
1009
+ 165</pre>
818
1010
  </td>
819
1011
  <td>
820
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 124</span>
821
-
822
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_open identifier id'>open</span> <span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span> <span class='rubyid_extension identifier id'>extension</span><span class='assign token'>=</span><span class='rubyid_nil nil kw'>nil</span>
823
- <span class='rubyid_wb identifier id'>wb</span> <span class='assign token'>=</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span>
824
- <span class='rubyid_wb identifier id'>wb</span><span class='dot token'>.</span><span class='rubyid_open identifier id'>open</span> <span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span> <span class='rubyid_extension identifier id'>extension</span>
825
- <span class='rubyid_return return kw'>return</span> <span class='rubyid_wb identifier id'>wb</span>
826
- <span class='rubyid_end end kw'>end</span>
827
- </pre>
1012
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 161</span>
1013
+
1014
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_stringio_or_string'>stringio_or_string</span><span class='comma'>,</span> <span class='id identifier rubyid_filetype'>filetype</span><span class='rparen'>)</span>
1015
+ <span class='id identifier rubyid_wb'>wb</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1016
+ <span class='id identifier rubyid_wb'>wb</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_stringio_or_string'>stringio_or_string</span><span class='comma'>,</span> <span class='id identifier rubyid_filetype'>filetype</span><span class='rparen'>)</span>
1017
+ <span class='id identifier rubyid_wb'>wb</span>
1018
+ <span class='kw'>end</span></pre>
828
1019
  </td>
829
1020
  </tr>
830
1021
  </table>
@@ -882,23 +1073,22 @@ of the file, this option allows you to override the default.</p>
882
1073
  <pre class="lines">
883
1074
 
884
1075
 
885
- 133
886
- 134
887
- 135
888
- 136
889
- 137
890
- 138</pre>
1076
+ 181
1077
+ 182
1078
+ 183
1079
+ 184
1080
+ 185
1081
+ 186</pre>
891
1082
  </td>
892
1083
  <td>
893
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 133</span>
894
-
895
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_create_or_open_sheet_at identifier id'>create_or_open_sheet_at</span> <span class='rubyid_index identifier id'>index</span>
896
- <span class='rubyid_s identifier id'>s</span> <span class='assign token'>=</span> <span class='rubyid_self self kw'>self</span><span class='lbrack token'>[</span><span class='rubyid_index identifier id'>index</span><span class='rbrack token'>]</span>
897
- <span class='rubyid_s identifier id'>s</span> <span class='assign token'>=</span> <span class='rubyid_self self kw'>self</span><span class='lbrack token'>[</span><span class='rubyid_index identifier id'>index</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Sheet constant id'>Sheet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_s identifier id'>s</span> <span class='eq op'>==</span> <span class='rubyid_nil nil kw'>nil</span>
898
- <span class='rubyid_s identifier id'>s</span><span class='dot token'>.</span><span class='rubyid_book identifier id'>book</span> <span class='assign token'>=</span> <span class='rubyid_self self kw'>self</span>
899
- <span class='rubyid_s identifier id'>s</span>
900
- <span class='rubyid_end end kw'>end</span>
901
- </pre>
1084
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 181</span>
1085
+
1086
+ <span class='kw'>def</span> <span class='id identifier rubyid_create_or_open_sheet_at'>create_or_open_sheet_at</span> <span class='id identifier rubyid_index'>index</span>
1087
+ <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='id identifier rubyid_index'>index</span><span class='rbracket'>]</span>
1088
+ <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='id identifier rubyid_index'>index</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Sheet</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>if</span> <span class='id identifier rubyid_s'>s</span> <span class='op'>==</span> <span class='kw'>nil</span>
1089
+ <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_book'>book</span> <span class='op'>=</span> <span class='kw'>self</span>
1090
+ <span class='id identifier rubyid_s'>s</span>
1091
+ <span class='kw'>end</span></pre>
902
1092
  </td>
903
1093
  </tr>
904
1094
  </table>
@@ -968,17 +1158,16 @@ of the file, this option allows you to override the default.</p>
968
1158
  <pre class="lines">
969
1159
 
970
1160
 
971
- 115
972
- 116
973
- 117</pre>
1161
+ 141
1162
+ 142
1163
+ 143</pre>
974
1164
  </td>
975
1165
  <td>
976
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 115</span>
1166
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 141</span>
977
1167
 
978
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_file_extension identifier id'>file_extension</span><span class='lparen token'>(</span><span class='rubyid_filename identifier id'>filename</span><span class='rparen token'>)</span>
979
- <span class='rubyid_File constant id'>File</span><span class='dot token'>.</span><span class='rubyid_extname identifier id'>extname</span><span class='lparen token'>(</span><span class='rubyid_filename identifier id'>filename</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='rubyid_gsub identifier id'>gsub</span><span class='lparen token'>(</span><span class='string val'>'.'</span><span class='comma token'>,</span><span class='string val'>''</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='rubyid_downcase identifier id'>downcase</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_filename identifier id'>filename</span>
980
- <span class='rubyid_end end kw'>end</span>
981
- </pre>
1168
+ <span class='kw'>def</span> <span class='id identifier rubyid_file_extension'>file_extension</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span>
1169
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_extname'>extname</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span> <span class='kw'>if</span> <span class='id identifier rubyid_filename'>filename</span>
1170
+ <span class='kw'>end</span></pre>
982
1171
  </td>
983
1172
  </tr>
984
1173
  </table>
@@ -1028,17 +1217,16 @@ of the file, this option allows you to override the default.</p>
1028
1217
  <pre class="lines">
1029
1218
 
1030
1219
 
1031
- 70
1032
- 71
1033
- 72</pre>
1220
+ 74
1221
+ 75
1222
+ 76</pre>
1034
1223
  </td>
1035
1224
  <td>
1036
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 70</span>
1225
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 74</span>
1037
1226
 
1038
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_has_contents? fid id'>has_contents?</span>
1039
- <span class='rubyid_sheet identifier id'>sheet</span><span class='dot token'>.</span><span class='rubyid_has_contents? fid id'>has_contents?</span>
1040
- <span class='rubyid_end end kw'>end</span>
1041
- </pre>
1227
+ <span class='kw'>def</span> <span class='id identifier rubyid_has_contents?'>has_contents?</span>
1228
+ <span class='id identifier rubyid_sheet'>sheet</span><span class='period'>.</span><span class='id identifier rubyid_has_contents?'>has_contents?</span>
1229
+ <span class='kw'>end</span></pre>
1042
1230
  </td>
1043
1231
  </tr>
1044
1232
  </table>
@@ -1127,27 +1315,26 @@ e.g. ‘txt’, ‘csv’ or ‘xls’)</p>
1127
1315
  <pre class="lines">
1128
1316
 
1129
1317
 
1130
- 79
1131
- 80
1132
- 81
1133
- 82
1134
1318
  83
1135
1319
  84
1136
1320
  85
1137
- 86</pre>
1321
+ 86
1322
+ 87
1323
+ 88
1324
+ 89
1325
+ 90</pre>
1138
1326
  </td>
1139
1327
  <td>
1140
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 79</span>
1141
-
1142
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_open identifier id'>open</span> <span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span> <span class='rubyid_extension identifier id'>extension</span><span class='assign token'>=</span><span class='rubyid_nil nil kw'>nil</span>
1143
- <span class='rubyid_extension identifier id'>extension</span> <span class='assign token'>=</span> <span class='rubyid_file_extension identifier id'>file_extension</span><span class='lparen token'>(</span><span class='rubyid_filename identifier id'>filename</span><span class='rparen token'>)</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_extension identifier id'>extension</span>
1144
- <span class='rubyid_if if kw'>if</span> <span class='lbrack token'>[</span><span class='string val'>'txt'</span><span class='comma token'>,</span><span class='string val'>'csv'</span><span class='comma token'>,</span><span class='string val'>'xml'</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='rubyid_include? fid id'>include?</span><span class='lparen token'>(</span><span class='rubyid_extension identifier id'>extension</span><span class='rparen token'>)</span>
1145
- <span class='rubyid_open_text identifier id'>open_text</span> <span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span> <span class='rubyid_extension identifier id'>extension</span>
1146
- <span class='rubyid_else else kw'>else</span>
1147
- <span class='rubyid_open_binary identifier id'>open_binary</span> <span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span> <span class='rubyid_extension identifier id'>extension</span>
1148
- <span class='rubyid_end end kw'>end</span>
1149
- <span class='rubyid_end end kw'>end</span>
1150
- </pre>
1328
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 83</span>
1329
+
1330
+ <span class='kw'>def</span> <span class='id identifier rubyid_open'>open</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span><span class='op'>=</span><span class='kw'>nil</span>
1331
+ <span class='id identifier rubyid_extension'>extension</span> <span class='op'>=</span> <span class='id identifier rubyid_file_extension'>file_extension</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_extension'>extension</span>
1332
+ <span class='kw'>if</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>txt</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>csv</span><span class='tstring_end'>'</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>xml</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_extension'>extension</span><span class='rparen'>)</span>
1333
+ <span class='id identifier rubyid_open_text'>open_text</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span>
1334
+ <span class='kw'>else</span>
1335
+ <span class='id identifier rubyid_open_binary'>open_binary</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span>
1336
+ <span class='kw'>end</span>
1337
+ <span class='kw'>end</span></pre>
1151
1338
  </td>
1152
1339
  </tr>
1153
1340
  </table>
@@ -1237,21 +1424,20 @@ e.g. ‘txt’, ‘csv’ or ‘xls’)</p>
1237
1424
  <pre class="lines">
1238
1425
 
1239
1426
 
1240
- 93
1241
- 94
1242
- 95
1243
- 96
1244
- 97</pre>
1427
+ 97
1428
+ 98
1429
+ 99
1430
+ 100
1431
+ 101</pre>
1245
1432
  </td>
1246
1433
  <td>
1247
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 93</span>
1248
-
1249
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_open_binary identifier id'>open_binary</span> <span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span> <span class='rubyid_extension identifier id'>extension</span><span class='assign token'>=</span><span class='rubyid_nil nil kw'>nil</span>
1250
- <span class='rubyid_extension identifier id'>extension</span> <span class='assign token'>=</span> <span class='rubyid_file_extension identifier id'>file_extension</span><span class='lparen token'>(</span><span class='rubyid_filename identifier id'>filename</span><span class='rparen token'>)</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_extension identifier id'>extension</span>
1251
- <span class='rubyid_f identifier id'>f</span> <span class='assign token'>=</span> <span class='rubyid_File constant id'>File</span><span class='dot token'>.</span><span class='rubyid_open identifier id'>open</span><span class='lparen token'>(</span><span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span><span class='string val'>'rb'</span><span class='rparen token'>)</span>
1252
- <span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='dstring node'>&quot;load_#{extension}&quot;</span><span class='dot token'>.</span><span class='rubyid_to_sym identifier id'>to_sym</span><span class='comma token'>,</span><span class='rubyid_f identifier id'>f</span><span class='rparen token'>)</span>
1253
- <span class='rubyid_end end kw'>end</span>
1254
- </pre>
1434
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 97</span>
1435
+
1436
+ <span class='kw'>def</span> <span class='id identifier rubyid_open_binary'>open_binary</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span><span class='op'>=</span><span class='kw'>nil</span>
1437
+ <span class='id identifier rubyid_extension'>extension</span> <span class='op'>=</span> <span class='id identifier rubyid_file_extension'>file_extension</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_extension'>extension</span>
1438
+ <span class='id identifier rubyid_f'>f</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>rb</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1439
+ <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>load_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_extension'>extension</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span><span class='id identifier rubyid_f'>f</span><span class='rparen'>)</span>
1440
+ <span class='kw'>end</span></pre>
1255
1441
  </td>
1256
1442
  </tr>
1257
1443
  </table>
@@ -1322,27 +1508,24 @@ e.g. ‘txt’, ‘csv’ or ‘xls’)</p>
1322
1508
  <pre class="lines">
1323
1509
 
1324
1510
 
1325
- 103
1326
- 104
1327
- 105
1328
- 106
1329
1511
  107
1330
1512
  108
1331
1513
  109
1332
- 110</pre>
1514
+ 110
1515
+ 111
1516
+ 112
1517
+ 113</pre>
1333
1518
  </td>
1334
1519
  <td>
1335
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 103</span>
1336
-
1337
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_open_text identifier id'>open_text</span> <span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span> <span class='rubyid_extension identifier id'>extension</span><span class='assign token'>=</span><span class='rubyid_nil nil kw'>nil</span>
1338
- <span class='rubyid_extension identifier id'>extension</span> <span class='assign token'>=</span> <span class='rubyid_file_extension identifier id'>file_extension</span><span class='lparen token'>(</span><span class='rubyid_filename identifier id'>filename</span><span class='rparen token'>)</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_extension identifier id'>extension</span>
1339
- <span class='rubyid_f identifier id'>f</span> <span class='assign token'>=</span> <span class='rubyid_File constant id'>File</span><span class='dot token'>.</span><span class='rubyid_open identifier id'>open</span><span class='lparen token'>(</span><span class='rubyid_filename identifier id'>filename</span><span class='comma token'>,</span><span class='string val'>'r'</span><span class='rparen token'>)</span>
1340
- <span class='rubyid_t identifier id'>t</span> <span class='assign token'>=</span> <span class='rubyid_f identifier id'>f</span><span class='dot token'>.</span><span class='rubyid_read identifier id'>read</span>
1341
- <span class='rubyid_detected_encoding identifier id'>detected_encoding</span> <span class='assign token'>=</span> <span class='rubyid_CharDet constant id'>CharDet</span><span class='dot token'>.</span><span class='rubyid_detect identifier id'>detect</span><span class='lparen token'>(</span><span class='rubyid_t identifier id'>t</span><span class='rparen token'>)</span><span class='lbrack token'>[</span><span class='string val'>'encoding'</span><span class='rbrack token'>]</span>
1342
- <span class='rubyid_t identifier id'>t</span> <span class='assign token'>=</span> <span class='rubyid_Iconv constant id'>Iconv</span><span class='dot token'>.</span><span class='rubyid_conv identifier id'>conv</span><span class='lparen token'>(</span><span class='string val'>&quot;UTF-8//TRANSLIT//IGNORE&quot;</span><span class='comma token'>,</span><span class='rubyid_detected_encoding identifier id'>detected_encoding</span><span class='comma token'>,</span><span class='rubyid_t identifier id'>t</span><span class='rparen token'>)</span>
1343
- <span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='dstring node'>&quot;load_#{extension}&quot;</span><span class='dot token'>.</span><span class='rubyid_to_sym identifier id'>to_sym</span><span class='comma token'>,</span><span class='rubyid_t identifier id'>t</span><span class='rparen token'>)</span>
1344
- <span class='rubyid_end end kw'>end</span>
1345
- </pre>
1520
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 107</span>
1521
+
1522
+ <span class='kw'>def</span> <span class='id identifier rubyid_open_text'>open_text</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span><span class='op'>=</span><span class='kw'>nil</span>
1523
+ <span class='id identifier rubyid_extension'>extension</span> <span class='op'>=</span> <span class='id identifier rubyid_file_extension'>file_extension</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_extension'>extension</span>
1524
+ <span class='id identifier rubyid_f'>f</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>r</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1525
+ <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span>
1526
+ <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_text_to_utf8'>text_to_utf8</span><span class='lparen'>(</span><span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
1527
+ <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>load_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_extension'>extension</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span><span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
1528
+ <span class='kw'>end</span></pre>
1346
1529
  </td>
1347
1530
  </tr>
1348
1531
  </table>
@@ -1392,17 +1575,112 @@ default is a new sheet)</p>
1392
1575
  <pre class="lines">
1393
1576
 
1394
1577
 
1395
- 55
1396
- 56
1397
- 57</pre>
1578
+ 59
1579
+ 60
1580
+ 61</pre>
1398
1581
  </td>
1399
1582
  <td>
1400
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 55</span>
1583
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 59</span>
1401
1584
 
1402
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_push identifier id'>push</span> <span class='rubyid_sheet identifier id'>sheet</span><span class='assign token'>=</span><span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Sheet constant id'>Sheet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span>
1403
- <span class='rubyid_super super kw'>super</span><span class='lparen token'>(</span><span class='rubyid_sheet identifier id'>sheet</span><span class='rparen token'>)</span>
1404
- <span class='rubyid_end end kw'>end</span>
1405
- </pre>
1585
+ <span class='kw'>def</span> <span class='id identifier rubyid_push'>push</span> <span class='id identifier rubyid_sheet'>sheet</span><span class='op'>=</span><span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Sheet</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1586
+ <span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_sheet'>sheet</span><span class='rparen'>)</span>
1587
+ <span class='kw'>end</span></pre>
1588
+ </td>
1589
+ </tr>
1590
+ </table>
1591
+ </div>
1592
+
1593
+ <div class="method_details ">
1594
+ <h3 class="signature " id="read-instance_method">
1595
+
1596
+ - (<tt>Object</tt>) <strong>read</strong>(stringio_or_string, filetype)
1597
+
1598
+
1599
+
1600
+
1601
+
1602
+ </h3><div class="docstring">
1603
+ <div class="discussion">
1604
+
1605
+ <p>Load the CSV data contained in the given StringIO or String object</p>
1606
+
1607
+
1608
+ </div>
1609
+ </div>
1610
+ <div class="tags">
1611
+ <p class="tag_title">Parameters:</p>
1612
+ <ul class="param">
1613
+
1614
+ <li>
1615
+
1616
+ <span class='name'>stringio_or_string</span>
1617
+
1618
+
1619
+ <span class='type'>(<tt>StringIO</tt>)</span>
1620
+
1621
+
1622
+
1623
+ &mdash;
1624
+ <div class='inline'>
1625
+ <p>StringIO stream or String object, with data in CSV format</p>
1626
+ </div>
1627
+
1628
+ </li>
1629
+
1630
+ <li>
1631
+
1632
+ <span class='name'>filetype</span>
1633
+
1634
+
1635
+ <span class='type'>(<tt>Symbol</tt>)</span>
1636
+
1637
+
1638
+
1639
+ &mdash;
1640
+ <div class='inline'>
1641
+ <p>(currently only :csv or :txt), indicating the format of the first parameter</p>
1642
+ </div>
1643
+
1644
+ </li>
1645
+
1646
+ </ul>
1647
+
1648
+ <p class="tag_title">Raises:</p>
1649
+ <ul class="raise">
1650
+
1651
+ <li>
1652
+
1653
+
1654
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
1655
+
1656
+
1657
+
1658
+ </li>
1659
+
1660
+ </ul>
1661
+
1662
+ </div><table class="source_code">
1663
+ <tr>
1664
+ <td>
1665
+ <pre class="lines">
1666
+
1667
+
1668
+ 171
1669
+ 172
1670
+ 173
1671
+ 174
1672
+ 175
1673
+ 176</pre>
1674
+ </td>
1675
+ <td>
1676
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 171</span>
1677
+
1678
+ <span class='kw'>def</span> <span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_stringio_or_string'>stringio_or_string</span><span class='comma'>,</span> <span class='id identifier rubyid_filetype'>filetype</span><span class='rparen'>)</span>
1679
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>The filetype parameter should be either :csv or :txt</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='lbracket'>[</span><span class='symbol'>:csv</span><span class='comma'>,</span> <span class='symbol'>:txt</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_filetype'>filetype</span><span class='rparen'>)</span>
1680
+ <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_stringio_or_string'>stringio_or_string</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:read</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_stringio_or_string'>stringio_or_string</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span> <span class='op'>:</span> <span class='id identifier rubyid_stringio_or_string'>stringio_or_string</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1681
+ <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_text_to_utf8'>text_to_utf8</span><span class='lparen'>(</span><span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
1682
+ <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:parse_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filetype'>filetype</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
1683
+ <span class='kw'>end</span></pre>
1406
1684
  </td>
1407
1685
  </tr>
1408
1686
  </table>
@@ -1452,19 +1730,109 @@ default is a new sheet)</p>
1452
1730
  <pre class="lines">
1453
1731
 
1454
1732
 
1455
- 62
1456
- 63
1457
- 64
1458
- 65</pre>
1733
+ 66
1734
+ 67
1735
+ 68
1736
+ 69</pre>
1459
1737
  </td>
1460
1738
  <td>
1461
- <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 62</span>
1739
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 66</span>
1740
+
1741
+ <span class='kw'>def</span> <span class='id identifier rubyid_sheet'>sheet</span>
1742
+ <span class='id identifier rubyid_push'>push</span> <span class='const'>Workbook</span><span class='op'>::</span><span class='const'>Sheet</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>unless</span> <span class='id identifier rubyid_first'>first</span>
1743
+ <span class='id identifier rubyid_first'>first</span>
1744
+ <span class='kw'>end</span></pre>
1745
+ </td>
1746
+ </tr>
1747
+ </table>
1748
+ </div>
1749
+
1750
+ <div class="method_details ">
1751
+ <h3 class="signature " id="text_to_utf8-instance_method">
1752
+
1753
+ - (<tt>Object</tt>) <strong>text_to_utf8</strong>(text)
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+ </h3><div class="docstring">
1760
+ <div class="discussion">
1761
+
1762
+ <p>Helper method to convert text in a file to UTF-8</p>
1763
+
1764
+
1765
+ </div>
1766
+ </div>
1767
+ <div class="tags">
1768
+ <p class="tag_title">Parameters:</p>
1769
+ <ul class="param">
1770
+
1771
+ <li>
1772
+
1773
+ <span class='name'>text</span>
1774
+
1775
+
1776
+ <span class='type'>(<tt>String</tt>)</span>
1777
+
1778
+
1779
+
1780
+ &mdash;
1781
+ <div class='inline'>
1782
+ <p>a string to convert</p>
1783
+ </div>
1784
+
1785
+ </li>
1786
+
1787
+ </ul>
1788
+
1789
+
1790
+ </div><table class="source_code">
1791
+ <tr>
1792
+ <td>
1793
+ <pre class="lines">
1794
+
1462
1795
 
1463
- <span class='rubyid_def def kw'>def</span> <span class='rubyid_sheet identifier id'>sheet</span>
1464
- <span class='rubyid_push identifier id'>push</span> <span class='rubyid_Workbook constant id'>Workbook</span><span class='colon2 op'>::</span><span class='rubyid_Sheet constant id'>Sheet</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_first identifier id'>first</span>
1465
- <span class='rubyid_first identifier id'>first</span>
1466
- <span class='rubyid_end end kw'>end</span>
1467
- </pre>
1796
+ 119
1797
+ 120
1798
+ 121
1799
+ 122
1800
+ 123
1801
+ 124
1802
+ 125
1803
+ 126
1804
+ 127
1805
+ 128
1806
+ 129
1807
+ 130
1808
+ 131
1809
+ 132
1810
+ 133
1811
+ 134
1812
+ 135
1813
+ 136</pre>
1814
+ </td>
1815
+ <td>
1816
+ <pre class="code"><span class="info file"># File 'lib/workbook/book.rb', line 119</span>
1817
+
1818
+ <span class='kw'>def</span> <span class='id identifier rubyid_text_to_utf8'>text_to_utf8</span> <span class='id identifier rubyid_text'>text</span>
1819
+ <span class='kw'>if</span> <span class='const'>RUBY_VERSION</span> <span class='op'>&lt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1.9</span><span class='tstring_end'>'</span></span>
1820
+ <span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>rchardet</span><span class='tstring_end'>'</span></span>
1821
+ <span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>iconv</span><span class='tstring_end'>'</span></span>
1822
+ <span class='id identifier rubyid_detected_encoding'>detected_encoding</span> <span class='op'>=</span> <span class='const'>CharDet</span><span class='period'>.</span><span class='id identifier rubyid_detect'>detect</span><span class='lparen'>(</span><span class='id identifier rubyid_text'>text</span><span class='rparen'>)</span>
1823
+ <span class='id identifier rubyid_detected_encoding'>detected_encoding</span> <span class='op'>=</span> <span class='id identifier rubyid_detected_encoding'>detected_encoding</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>encoding</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1824
+ <span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='const'>Iconv</span><span class='period'>.</span><span class='id identifier rubyid_conv'>conv</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>UTF-8//TRANSLIT//IGNORE</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='id identifier rubyid_detected_encoding'>detected_encoding</span><span class='comma'>,</span><span class='id identifier rubyid_text'>text</span><span class='rparen'>)</span>
1825
+ <span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\xEF\xBB\xBF</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='comment'># removing the BOM...
1826
+ </span> <span class='kw'>else</span>
1827
+ <span class='kw'>unless</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_valid_encoding?'>valid_encoding?</span> <span class='kw'>and</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_encoding'>encoding</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>UTF-8</span><span class='tstring_end'>&quot;</span></span>
1828
+ <span class='comment'># TODO: had some ruby 1.9 problems with rchardet ... but ideally it or a similar functionality will be reintroduced
1829
+ </span> <span class='id identifier rubyid_source_encoding'>source_encoding</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_valid_encoding?'>valid_encoding?</span> <span class='op'>?</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_encoding'>encoding</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>US-ASCII</span><span class='tstring_end'>&quot;</span></span>
1830
+ <span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_encode'>encode</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>UTF-8</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_source_encoding'>source_encoding</span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='symbol'>:invalid</span><span class='op'>=&gt;</span><span class='symbol'>:replace</span><span class='comma'>,</span> <span class='symbol'>:undef</span><span class='op'>=&gt;</span><span class='symbol'>:replace</span><span class='comma'>,</span> <span class='symbol'>:replace</span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
1831
+ <span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\u0000</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='comment'># TODO: this cleanup of nil values isn't supposed to be needed...
1832
+ </span> <span class='kw'>end</span>
1833
+ <span class='kw'>end</span>
1834
+ <span class='kw'>return</span> <span class='id identifier rubyid_text'>text</span>
1835
+ <span class='kw'>end</span></pre>
1468
1836
  </td>
1469
1837
  </tr>
1470
1838
  </table>
@@ -1475,9 +1843,9 @@ default is a new sheet)</p>
1475
1843
  </div>
1476
1844
 
1477
1845
  <div id="footer">
1478
- Generated on Thu Jan 17 13:16:04 2013 by
1846
+ Generated on Sun May 5 14:58:07 2013 by
1479
1847
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1480
- 0.8.3 (ruby-1.8.7).
1848
+ 0.8.5.2 (ruby-1.9.3).
1481
1849
  </div>
1482
1850
 
1483
1851
  </body>