roo 1.13.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -0
  3. data/.simplecov +4 -0
  4. data/.travis.yml +13 -0
  5. data/CHANGELOG.md +500 -0
  6. data/Gemfile +16 -10
  7. data/Guardfile +24 -0
  8. data/LICENSE +3 -1
  9. data/README.md +254 -0
  10. data/Rakefile +23 -23
  11. data/examples/roo_soap_client.rb +28 -31
  12. data/examples/roo_soap_server.rb +4 -6
  13. data/examples/write_me.rb +9 -10
  14. data/lib/roo/base.rb +303 -388
  15. data/lib/roo/csv.rb +120 -113
  16. data/lib/roo/excelx/comments.rb +24 -0
  17. data/lib/roo/excelx/extractor.rb +20 -0
  18. data/lib/roo/excelx/relationships.rb +26 -0
  19. data/lib/roo/excelx/shared_strings.rb +40 -0
  20. data/lib/roo/excelx/sheet_doc.rb +202 -0
  21. data/lib/roo/excelx/styles.rb +62 -0
  22. data/lib/roo/excelx/workbook.rb +59 -0
  23. data/lib/roo/excelx.rb +452 -484
  24. data/lib/roo/font.rb +17 -0
  25. data/lib/roo/libre_office.rb +5 -0
  26. data/lib/roo/link.rb +15 -0
  27. data/lib/roo/{openoffice.rb → open_office.rb} +678 -496
  28. data/lib/roo/spreadsheet.rb +20 -23
  29. data/lib/roo/utils.rb +78 -0
  30. data/lib/roo/version.rb +3 -0
  31. data/lib/roo.rb +18 -24
  32. data/roo.gemspec +20 -204
  33. data/spec/lib/roo/base_spec.rb +1 -4
  34. data/spec/lib/roo/csv_spec.rb +21 -13
  35. data/spec/lib/roo/excelx/format_spec.rb +7 -6
  36. data/spec/lib/roo/excelx_spec.rb +388 -11
  37. data/spec/lib/roo/libreoffice_spec.rb +16 -6
  38. data/spec/lib/roo/openoffice_spec.rb +2 -8
  39. data/spec/lib/roo/spreadsheet_spec.rb +40 -12
  40. data/spec/lib/roo/utils_spec.rb +106 -0
  41. data/spec/spec_helper.rb +2 -1
  42. data/test/test_generic_spreadsheet.rb +19 -67
  43. data/test/test_helper.rb +9 -56
  44. data/test/test_roo.rb +252 -477
  45. metadata +63 -302
  46. data/CHANGELOG +0 -417
  47. data/Gemfile.lock +0 -78
  48. data/README.markdown +0 -126
  49. data/VERSION +0 -1
  50. data/lib/roo/excel.rb +0 -355
  51. data/lib/roo/excel2003xml.rb +0 -300
  52. data/lib/roo/google.rb +0 -292
  53. data/lib/roo/roo_rails_helper.rb +0 -83
  54. data/lib/roo/worksheet.rb +0 -18
  55. data/spec/lib/roo/excel2003xml_spec.rb +0 -15
  56. data/spec/lib/roo/excel_spec.rb +0 -17
  57. data/spec/lib/roo/google_spec.rb +0 -64
  58. data/test/files/1900_base.xls +0 -0
  59. data/test/files/1900_base.xlsx +0 -0
  60. data/test/files/1904_base.xls +0 -0
  61. data/test/files/1904_base.xlsx +0 -0
  62. data/test/files/Bibelbund.csv +0 -3741
  63. data/test/files/Bibelbund.ods +0 -0
  64. data/test/files/Bibelbund.xls +0 -0
  65. data/test/files/Bibelbund.xlsx +0 -0
  66. data/test/files/Bibelbund.xml +0 -62518
  67. data/test/files/Bibelbund1.ods +0 -0
  68. data/test/files/Pfand_from_windows_phone.xlsx +0 -0
  69. data/test/files/bad_excel_date.xls +0 -0
  70. data/test/files/bbu.ods +0 -0
  71. data/test/files/bbu.xls +0 -0
  72. data/test/files/bbu.xlsx +0 -0
  73. data/test/files/bbu.xml +0 -152
  74. data/test/files/bode-v1.ods.zip +0 -0
  75. data/test/files/bode-v1.xls.zip +0 -0
  76. data/test/files/boolean.csv +0 -2
  77. data/test/files/boolean.ods +0 -0
  78. data/test/files/boolean.xls +0 -0
  79. data/test/files/boolean.xlsx +0 -0
  80. data/test/files/boolean.xml +0 -112
  81. data/test/files/borders.ods +0 -0
  82. data/test/files/borders.xls +0 -0
  83. data/test/files/borders.xlsx +0 -0
  84. data/test/files/borders.xml +0 -144
  85. data/test/files/bug-numbered-sheet-names.xlsx +0 -0
  86. data/test/files/bug-row-column-fixnum-float.xls +0 -0
  87. data/test/files/bug-row-column-fixnum-float.xml +0 -127
  88. data/test/files/comments.ods +0 -0
  89. data/test/files/comments.xls +0 -0
  90. data/test/files/comments.xlsx +0 -0
  91. data/test/files/csvtypes.csv +0 -1
  92. data/test/files/datetime.ods +0 -0
  93. data/test/files/datetime.xls +0 -0
  94. data/test/files/datetime.xlsx +0 -0
  95. data/test/files/datetime.xml +0 -142
  96. data/test/files/datetime_floatconv.xls +0 -0
  97. data/test/files/datetime_floatconv.xml +0 -148
  98. data/test/files/dreimalvier.ods +0 -0
  99. data/test/files/emptysheets.ods +0 -0
  100. data/test/files/emptysheets.xls +0 -0
  101. data/test/files/emptysheets.xlsx +0 -0
  102. data/test/files/emptysheets.xml +0 -105
  103. data/test/files/excel2003.xml +0 -21140
  104. data/test/files/false_encoding.xls +0 -0
  105. data/test/files/false_encoding.xml +0 -132
  106. data/test/files/file_item_error.xlsx +0 -0
  107. data/test/files/formula.ods +0 -0
  108. data/test/files/formula.xls +0 -0
  109. data/test/files/formula.xlsx +0 -0
  110. data/test/files/formula.xml +0 -134
  111. data/test/files/formula_parse_error.xls +0 -0
  112. data/test/files/formula_parse_error.xml +0 -1833
  113. data/test/files/formula_string_error.xlsx +0 -0
  114. data/test/files/html-escape.ods +0 -0
  115. data/test/files/link.xls +0 -0
  116. data/test/files/link.xlsx +0 -0
  117. data/test/files/matrix.ods +0 -0
  118. data/test/files/matrix.xls +0 -0
  119. data/test/files/named_cells.ods +0 -0
  120. data/test/files/named_cells.xls +0 -0
  121. data/test/files/named_cells.xlsx +0 -0
  122. data/test/files/no_spreadsheet_file.txt +0 -1
  123. data/test/files/numbers1.csv +0 -18
  124. data/test/files/numbers1.ods +0 -0
  125. data/test/files/numbers1.xls +0 -0
  126. data/test/files/numbers1.xlsx +0 -0
  127. data/test/files/numbers1.xml +0 -312
  128. data/test/files/numeric-link.xlsx +0 -0
  129. data/test/files/only_one_sheet.ods +0 -0
  130. data/test/files/only_one_sheet.xls +0 -0
  131. data/test/files/only_one_sheet.xlsx +0 -0
  132. data/test/files/only_one_sheet.xml +0 -67
  133. data/test/files/paragraph.ods +0 -0
  134. data/test/files/paragraph.xls +0 -0
  135. data/test/files/paragraph.xlsx +0 -0
  136. data/test/files/paragraph.xml +0 -127
  137. data/test/files/prova.xls +0 -0
  138. data/test/files/ric.ods +0 -0
  139. data/test/files/simple_spreadsheet.ods +0 -0
  140. data/test/files/simple_spreadsheet.xls +0 -0
  141. data/test/files/simple_spreadsheet.xlsx +0 -0
  142. data/test/files/simple_spreadsheet.xml +0 -225
  143. data/test/files/simple_spreadsheet_from_italo.ods +0 -0
  144. data/test/files/simple_spreadsheet_from_italo.xls +0 -0
  145. data/test/files/simple_spreadsheet_from_italo.xml +0 -242
  146. data/test/files/so_datetime.csv +0 -7
  147. data/test/files/style.ods +0 -0
  148. data/test/files/style.xls +0 -0
  149. data/test/files/style.xlsx +0 -0
  150. data/test/files/style.xml +0 -154
  151. data/test/files/time-test.csv +0 -2
  152. data/test/files/time-test.ods +0 -0
  153. data/test/files/time-test.xls +0 -0
  154. data/test/files/time-test.xlsx +0 -0
  155. data/test/files/time-test.xml +0 -131
  156. data/test/files/type_excel.ods +0 -0
  157. data/test/files/type_excel.xlsx +0 -0
  158. data/test/files/type_excelx.ods +0 -0
  159. data/test/files/type_excelx.xls +0 -0
  160. data/test/files/type_openoffice.xls +0 -0
  161. data/test/files/type_openoffice.xlsx +0 -0
  162. data/test/files/whitespace.ods +0 -0
  163. data/test/files/whitespace.xls +0 -0
  164. data/test/files/whitespace.xlsx +0 -0
  165. data/test/files/whitespace.xml +0 -184
  166. data/test/rm_sub_test.rb +0 -12
  167. data/test/rm_test.rb +0 -7
  168. data/website/index.html +0 -385
  169. data/website/index.txt +0 -423
  170. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  171. data/website/stylesheets/screen.css +0 -130
  172. data/website/template.rhtml +0 -48
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2469a06f8110bdaa52d7a0aa1b9c5c870034b3d8
4
- data.tar.gz: 5211e3ae85961fc29376156120569220cbfbbe7b
3
+ metadata.gz: 67acb8a7cbbb8c526865f95e6b93f37313b6d373
4
+ data.tar.gz: 48cf05f82b1a5e64c2b2549f08afbc3544e575dc
5
5
  SHA512:
6
- metadata.gz: bbae1e0e681f369f4ec0ee8c71a880c3b6fe24cc815cde0b337bd63e77a0103edf04b77de320a212e772a8ac1a68ad9ee5f5be3b52672806fbc18592536db83d
7
- data.tar.gz: 91a54b399f41ee9d459b9bb3868c5cd2990963297c274f4dc5f4a78034137a8c617f9ac34db75418e8f0989683219637cb9a096536259e9cb76fe9cca780b132
6
+ metadata.gz: 0c77744d3f264952565934a3d49966bcaa80bd4f7b1a388164ded5a89873347e1f0fec00c074839a60f03982e6c37044b448568bb493a062c37c58dbf9fc5095
7
+ data.tar.gz: 42b35d1b9a8b55a5d10f41803cec60da00c902853ec38a5ee44bbd5ab2736f60637ef0a91a470cdbe2503a5bb06009e3c87c9f3f571eccbc3d7de4e8caf9c1c2
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ /pkg/
2
+ /log/
3
+ /coverage/
4
+ .ruby-version
5
+ .project
6
+ *.lock
7
+ .idea
data/.simplecov ADDED
@@ -0,0 +1,4 @@
1
+ SimpleCov.start do
2
+ add_filter 'spec'
3
+ add_filter 'test'
4
+ end
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 2.1
5
+ - 2.2.0
6
+ - ruby-head
7
+ - jruby-19mode # JRuby in 1.9 mode
8
+ - rbx-2
9
+ matrix:
10
+ allow_failures:
11
+ - rvm: ruby-head
12
+ - rvm: jruby-19mode
13
+ bundler_args: --without local_development
data/CHANGELOG.md ADDED
@@ -0,0 +1,500 @@
1
+ ## [2.0.0beta1] [unreleased]
2
+ ### Added
3
+ - Added optional support for hidden sheets in Excelx and LibreOffice files [#177](https://github.com/roo-rb/roo/pull/177)
4
+ - Roo::OpenOffice can be used to open encrypted workbooks. [#157](https://github.com/roo-rb/roo/pull/157)
5
+ - Added streaming for parsing of large Excelx Sheets. [#69](https://github.com/roo-rb/roo/pull/69)
6
+ - Added Roo::Base#first_last_row_col_for_sheet [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
7
+ - Added Roo::Base#collect_last_row_col_for_sheet [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
8
+ - Added Roo::Base::MAX_ROW_COL, Roo::Base::MIN_ROW_COL [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
9
+ - Extract Roo::Font to replace equivalent uses in Excelx and OpenOffice. [23e19de](https://github.com/roo-rb/roo/commit/23e19de1ccc64b2b02a80090ff6666008a29c43b)
10
+ - Roo::Utils [3169a0e](https://github.com/roo-rb/roo/commit/3169a0e803ce742d2cbf9be834d27a5098a68638)
11
+ - Roo::ExcelxComments [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
12
+ [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
13
+ - Roo::Excelx::Relationships [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
14
+ - Roo::Excelx::SheetDoc [0a43341](https://github.com/roo-rb/roo/commit/0a433413210b5559dc92d743a72a1f38ee775f5f)
15
+ [c2bb7b8](https://github.com/roo-rb/roo/commit/c2bb7b8614f4ff1dff6b7bdbda0ded125ae549c7)
16
+ +- Roo::Excelx::Styles [c2bb7b8](https://github.com/roo-rb/roo/commit/c2bb7b8614f4ff1dff6b7bdbda0ded125ae549c7)
17
+ +- Roo::Excelx::Workbook [c2bb7b8](https://github.com/roo-rb/roo/commit/c2bb7b8614f4ff1dff6b7bdbda0ded125ae549c7)
18
+ - Switch from Spreadsheet::Link to Roo::Link [ee67321](https://github.com/roo-rb/roo/commit/ee6732144f3616631d19ade0c5490e1678231ce2)
19
+ - Roo::Base#to_csv: Added separator parameter (defaults to ",") [#102](https://github.com/roo-rb/roo/pull/102)
20
+ - Added development development gems [#104](https://github.com/roo-rb/roo/pull/104)
21
+
22
+ ### Changed
23
+ - Reduced size of published gem. [#194](https://github.com/roo-rb/roo/pull/194)
24
+ - Stream the reading of the dimensions [#192](https://github.com/roo-rb/roo/pull/192)
25
+ - Return `nil` when a querying a cell that doesn't exist (instead of a NoMethodError) [#192](https://github.com/roo-rb/roo/pull/192), [#165](https://github.com/roo-rb/roo/pull/165)
26
+ - Roo::OpenOffice#formula? now returns a `Boolean` instead of a `String` or `nil` [#191](https://github.com/roo-rb/roo/pull/191)
27
+ - Added a less verbose Roo::Base#inspect. It no longer returns the entire object. [#188](https://github.com/roo-rb/roo/pull/188), [#186](https://github.com/roo-rb/roo/pull/186)
28
+ - Memoize Roo::Utils.split_coordinate [#180](https://github.com/roo-rb/roo/pull/180)
29
+ - Roo::Base: use regular expressions for extracting headers [#173](https://github.com/roo-rb/roo/pull/173)
30
+ - Roo::Base: memoized `first_row`/`last_row` `first_column`/`last_column` and changed the default value of the `sheet` argument from `nil` to `default_sheet` [a0dd800](https://github.com/roo-rb/roo/commit/a0dd800d5cf0de052583afa91bf82f8802ede9a0)
31
+ - Roo::Base: changed the order of arguments for `to_csv` to (filename = nil, separator = ',', sheet = default_sheet) from (filename=nil,sheet=nil) [1e82a21](https://github.com/roo-rb/roo/commit/1e82a218087ba34379ae7312214911b104333e2c)
32
+ - In OpenOffice / LibreOffice, load the content xml lazily. Leave the tmpdir open so that reading may take place after initialize. The OS will be responsible for cleaning it up. [adb204b](https://github.com/roo-rb/roo/commit/a74157adb204bc93d289c5708e8e79e143d09037)
33
+ - Lazily initialize @default_sheet, to avoid reading the sheets earlier than necessary. Use the #default_sheet accessor instead. [704e3dc](https://github.com/roo-rb/roo/commit/704e3dca1692d84ac4877f04a7e46238772d423b)
34
+ - Roo::Base#default_sheet is no longer an attr_reader [704e3dc](https://github.com/roo-rb/roo/commit/704e3dca1692d84ac4877f04a7e46238772d423b)
35
+ - In Excelx, load styles, shared strings and the workbook lazily. Leave the tmpdir open so that reading may take place after initialize. The OS will be responsible for cleaning it up. [a973237](https://github.com/roo-rb/roo/commit/a9732372f531e435a3330d8ab5bd44ce2cb57b0b), [4834e20c](https://github.com/roo-rb/roo/commit/4834e20c6c4d2086414c43f8b0cc2d1413b45a61), [e49a1da](https://github.com/roo-rb/roo/commit/e49a1da22946918992873e8cd5bacc15ea2c73c4)
36
+ - Change the tmpdir prefix from oo_ to roo_ [102d5fc](https://github.com/roo-rb/roo/commit/102d5fce30b46e928807bc60f607f81956ed898b)
37
+ - Accept the tmpdir_root option in Roo::Excelx [0e325b6](https://github.com/roo-rb/roo/commit/0e325b68f199ff278b26bd621371ed42fa999f24)
38
+ - Refactored Excelx#comment? [0fb90ec](https://github.com/roo-rb/roo/commit/0fb90ecf6a8f422ef16a7105a1d2c42d611556c3)
39
+ - Refactored Roo::Base#find, #find_by_row, #find_by_conditions. [1ccedab](https://github.com/roo-rb/roo/commit/1ccedab3fb656f4614f0a85e9b0a286ad83f5c1e)
40
+ - Extended Roo::Spreadsheet.open so that it accepts Tempfiles and other arguments responding to `path`. Note they require an :extension option to be declared, as the tempfile mangles the extension. [#84](https://github.com/roo-rb/roo/pull/84).
41
+
42
+ ### Fixed
43
+ - Process sheets from Numbers 3.1 xlsx files in the right order. [#196](https://github.com/roo-rb/roo/pull/196), [#181](https://github.com/roo-rb/roo/pull/181), [#114](https://github.com/roo-rb/roo/pull/114)
44
+ - Fixed comments for xlsx files exported from Google [#197](https://github.com/roo-rb/roo/pull/197)
45
+ - Fixed Roo::Excelx#celltype to return :link when appropriate.
46
+ - Fixed type coercion of ids. [#192](https://github.com/roo-rb/roo/pull/192)
47
+ - Clean option only removes spaces and control characters instead of removing all characters outside of the ASCII range. [#176](https://github.com/roo-rb/roo/pull/176)
48
+ - Fixed parse method with `clean` option [#184](https://github.com/roo-rb/roo/pull/184)
49
+ - Fixed some memory issues.
50
+ - Fixed Roo::Utils.number_to_letter [#180](https://github.com/roo-rb/roo/pull/180)
51
+ - Fixed merged cells return value. Instead of only the top-left cell returning a value, all merged cells return that value instead of returning nil. [#171](https://github.com/roo-rb/roo/pull/171)
52
+ - Handle headers with brackets [#162](https://github.com/roo-rb/roo/pull/162)
53
+ - Roo::Base#sheet method was not returning the sheet specified when using either an index or name [#160](https://github.com/roo-rb/roo/pull/160)
54
+ - Properly process paths with spaces. [#142](https://github.com/roo-rb/roo/pull/142), [#121](https://github.com/roo-rb/roo/pull/121), [#94](https://github.com/roo-rb/roo/pull/94), [4e7d7d1](https://github.com/roo-rb/roo/commit/4e7d7d18d37654b0c73b229f31ea0d305c7e90ff)
55
+ - Disambiguate #open call in Excelx#extract_file. [#125](https://github.com/roo-rb/roo/pull/125)
56
+ - Fixed that #parse-ing with a hash of columns not in the document would fail mysteriously. [#129](https://github.com/roo-rb/roo/pull/129)
57
+ - Fixed Excelx issue when reading hyperlinks [#123](https://github.com/roo-rb/roo/pull/123)
58
+ - Fixed invalid test case [#124](https://github.com/roo-rb/roo/pull/124)
59
+ - Fixed error in test helper file_diff [56e2e61](https://github.com/roo-rb/roo/commit/56e2e61d1ad9185d8ab0d4af4b32928f07fdaad0)
60
+ - Stopped `inspect` from being called recursively. [#115](https://github.com/roo-rb/roo/pull/115)
61
+ - Fixes for Excelx Datetime cells. [#104](https://github.com/roo-rb/roo/pull/104), [#120](https://github.com/roo-rb/roo/pull/120)
62
+ - Prevent ArgumentError when using `find` [#100](https://github.com/roo-rb/roo/pull/100)
63
+ - Export to_csv converts link cells to url [#93](https://github.com/roo-rb/roo/pull/93), [#108](https://github.com/roo-rb/roo/pull/108)
64
+
65
+ ### Removed
66
+ - Roo::Excel - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
67
+ - Roo::Excel2003XML - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
68
+ - Roo::Google - Extracted to roo-google gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
69
+ - Roo::OpenOffice::Font - Refactored into Roo::Font
70
+ - Removed Roo::OpenOffice.extract_content [a74157a](https://github.com/roo-rb/roo/commit/a74157adb204bc93d289c5708e8e79e143d09037)
71
+ - Removed OpenOffice.process_zipfile [835368e](https://github.com/roo-rb/roo/commit/835368e1d29c1530f00bf9caa07704b17370e38f)
72
+ - Roo::OpenOffice#comment?
73
+ - Roo::ZipFile - Removed the Roo::ZipFile abstraction. Roo now depends on rubyzip 1.0.0+ [d466950](https://github.com/roo-rb/roo/commit/d4669503b5b80c1d30f035177a2b0e4b56fc49ce)
74
+ - SpreadSheet::Worksheet - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
75
+ - Spreadsheet - Extracted to roo-xls gem. [a7edbec](https://github.com/roo-rb/roo/commit/a7edbec2eb44344611f82cff89a82dac31ec0d79)
76
+
77
+ ## [1.13.2] - 2013-12-23
78
+ ### Fixed
79
+ - Fix that Excelx link-cells would blow up if the value wasn't a string. Due to the way Spreadsheet::Link is implemented the link text must be treated as a string. #92
80
+
81
+ ## [1.13.1] - 2013-12-23
82
+ ### Fixed
83
+ - Fix that Excelx creation could blow up due to nil rels files. #90
84
+
85
+ ## [1.13.0] - 2013-12-05
86
+ ### Changed / Added
87
+ - Support extracting link data from Excel and Excelx spreadsheets,
88
+ via Excel#read_cell() and Excelx#hyperlink(?). #47
89
+ - Support setting the Excel Spreadsheet mode via the :mode option. #88
90
+ - Support Spreadsheet.open with a declared :extension that includes a leading '.'. #73
91
+ - Enable file type detection for URI's with parameters / anchors. #51
92
+
93
+ ### Fixed
94
+ - Fix that CSV#each_row could overwrite the filename when run against a uri. #77
95
+ - Fix that #to_matrix wasn't respecting the sheet argument. #87
96
+
97
+ ## [1.12.2] - 2013-09-11
98
+ ### Changed / Added
99
+ - Support rubyzip >= 1.0.0. #65
100
+ - Fix typo in deprecation notices. #63
101
+
102
+ ## [1.12.1] - 2013-08-18
103
+ ### Changed / Added
104
+ - Support :boolean fields for CSV export via #cell_to_csv. #59
105
+
106
+ ### Fixed
107
+ - Fix that Excelx would error on files with gaps in the numbering of their
108
+ internal sheet#.xml files. #58
109
+ - Fix that Base#info to preserve the original value of #default_sheet. #44
110
+
111
+ ## [1.12.0] - 2013-08-18
112
+ ### Deprecated
113
+ - Rename Openoffice -> OpenOffice, Libreoffice -> LibreOffice, Csv -> CSV, and redirect the old names to the new constants
114
+ - Enable Roo::Excel, Excel2003XML, Excelx, OpenOffice to accept an options hash, and deprecate the old method argument based approach to supplying them options
115
+ - Roo's roo_rails_helper, aka the `spreadsheet` html-generating view method is currently deprecated with no replacement. If you find it helpful, tell http://github.com/Empact or extract it yourself.
116
+
117
+ ### Changed / Added
118
+ - Add Roo::Excelx#load_xml so that people can customize to their data, e.g. #23
119
+ - Enable passing csv_options to Roo::CSV, which are passed through to the underlying CSV call.
120
+ - Enable passing options through from Roo::Spreadsheet to any Roo type.
121
+ - Enable passing an :extension option to Roo::Spreadsheet.new, which will override the extension detected on in the path #15
122
+ - Switch from google-spreadsheet-ruby to google_drive for Roo::Google access #40
123
+ - Make all the classes consistent in that #read_cells is only effective if the sheet has not been read.
124
+ - Roo::Google supports login via oauth :access_token. #61
125
+ - Roo::Excel now exposes its Spreadsheet workbook via #workbook
126
+ - Pull #load_xml down into Roo::Base, and use it in Excel2003XML and OpenOffice.
127
+
128
+ ### Changed
129
+ - #formula? now returns truthy or falsey, rather than true/false.
130
+ - Base#longest_sheet was moved to Excel, as it only worked under Excel
131
+
132
+ ### Fixed
133
+ - Fix that Roo::CSV#parse(headers: true) would blow up. #37
134
+
135
+ ## [1.11.2] - 2013-04-10
136
+
137
+ ### Fixed
138
+ - Fix that Roo::Spreadsheet.open wasn't tolerant to case differences.
139
+ - Fix that Roo::Excel2003XML loading was broken #27
140
+ - Enable loading Roo::Csv files from uris, just as other file types #31
141
+ - Fix that Excelx "m/d/yy h:mm" was improperly being interpreted as date rather
142
+ than datetime #29
143
+
144
+ ## [1.11.1] - 2013-03-18
145
+ ### Fixed
146
+ - Exclude test/log/roo.log test log file from the gemspec in order to avoid a
147
+ rubygems warning: #26
148
+
149
+ ## [1.11.0] - 2013-03-14
150
+ ### Changed / Added
151
+ - Support ruby 2.0.0 by replacing Iconv with String#encode #19
152
+ - Excelx: Loosen the format detection rules such that more are
153
+ successfully detected #20
154
+ - Delete the roo binary, which was useless and not declared in the gemspec
155
+
156
+ ### Changed
157
+ - Drop support for ruby 1.8.x or lower. Required in order to easily support 2.0.0.
158
+
159
+ ## [1.10.3] - 2013-03-03
160
+ ### Fixed
161
+ - Support both nokogiri 1.5.5 and 1.5.6 (Karsten Richter) #18
162
+
163
+ ### Changed / Added
164
+ - Relax our nokogiri dependency back to 1.4.0, as we have no particular reason
165
+ to require a newer version.
166
+
167
+ ## [1.10.2] - 2013-02-03
168
+ ### Fixed
169
+ - Support opening URIs with query strings https://github.com/Empact/roo/commit/abf94bdb59cabc16d4f7764025e88e3661983525
170
+ - Support both http: & https: urls https://github.com/Empact/roo/commit/fc5c5899d96dd5f9fbb68125d0efc8ce9be2c7e1
171
+
172
+ ## [1.10.1] - 2011-11-14
173
+ ### Fixed
174
+ - forgot dependency 'rubyzip'
175
+ - at least one external application does create xlsx-files with different internal file names which differ from the original file names of Excel. Solution: ignore lower-/upper case in file names.
176
+
177
+ ## [1.10.0] - 2011-10-10
178
+ ### Changed / Added
179
+ - New class Csv.
180
+ - Openoffice, Libreoffice: new method 'labels'
181
+ - Excelx: implemented all methods concerning labels
182
+ - Openoffice, Excelx: new methods concerning comments (comment, comment? and comments)
183
+
184
+ ### Fixed
185
+ - XLSX: some cells were not recognized correctly from a spreadsheet file from a windows mobile phone.
186
+ - labels: Moved to a separate methode. There were problems if there was an access to a label before read_cells were called.
187
+
188
+ ## [1.9.7] - 2011-08-27
189
+ ### Fixed
190
+ - Openoffice: Better way for extracting formula strings, some characters were deleted at the formula string.
191
+
192
+ ## [1.9.6] - 2011-08-03
193
+ ### Changed / Added
194
+ - new class Libreoffice (Libreoffice should do exactly the same as the Openoffice
195
+ class. It's just another name. Technically, Libreoffice is inherited from
196
+ the Openoffice class with no new methods.
197
+
198
+ ### Fixed
199
+ - Openoffice: file type check, deletion of temporary files not in ensure clause
200
+ - Cell type :datetime was not handled in the to_csv method
201
+ - Better deletion of temporary directories if something went wrong
202
+
203
+ ## [1.9.5] - 2011-06-25
204
+ ### Changed / Added
205
+ - Method #formulas moved to generic-spreadsheet class (the Excel version is
206
+ overwritten because the spreadsheet gem currently does not support
207
+ formulas.
208
+
209
+ ### Fixed
210
+ - Openoffice/Excelx/Google: #formulas of an empty sheet should not result
211
+ in an error message. Instead it should return an empty array.
212
+ - Openoffice/Excelx/Google: #to_yaml of an empty sheet should not result
213
+ in an error message. Instead it should return an empty string.
214
+ - Openoffice/Excelx/Google: #to_matrix of an empty sheet should not result
215
+ in an error message. Instead it should return an empty matrix.
216
+
217
+ ## [1.9.4] - 2011-06-23
218
+ ### Changed / Added
219
+ - removed gem 'builder'. Functionality goes to gem 'nokogiri'.
220
+
221
+ ### Fixed
222
+ - Excel: remove temporary files if spreadsheed-file is not an excel file
223
+ and an exception was raised
224
+ - Excelx: a referenced cell with a string had the content 0.0 not the
225
+ correct string
226
+ - Fixed a problem with a date cell which was not recognized as a Date
227
+ object (see 2011-05-21 in excelx.rb)
228
+
229
+ ## [1.9.3] - 2010-02-12
230
+ ### Changed / Added
231
+ - new method 'to_matrix'
232
+
233
+ ### Fixed
234
+ - missing dependencies defined
235
+
236
+ ## [1.9.2] - 2009-12-08
237
+ ### Fixed
238
+ - double quoting of '"' fixed
239
+
240
+ ## [1.9.1] - 2009-11-10
241
+ ### Fixed
242
+ - syntax in nokogiri methods
243
+ - missing dependency ...rubyzip
244
+
245
+ ## [1.9.0] - 2009-10-29
246
+ ### Changed / Added
247
+ - Ruby 1.9 compatible
248
+ - oo.aa42 as a shortcut of oo.cell('aa',42)
249
+ - oo.aa42('sheet1') as a shortcut of oo.cell('aa',42,'sheet1')
250
+ - oo.anton as a reference to a cell labelled 'anton' (or any other label name)
251
+ (currently only for Openoffice spreadsheets)
252
+
253
+ ## [1.2.3] - 2009-01-04
254
+ ### Fixed
255
+ - fixed encoding in #cell at exported Google-spreadsheets (.xls)
256
+
257
+ ## [1.2.2] - 2008-12-14
258
+ ### Changed / Added
259
+ - added celltype :datetime in Excelx
260
+ - added celltype :datetime in Google
261
+
262
+ ## [1.2.1] - 2008-11-13
263
+ ### Changed / Added
264
+ - added celltype :datetime in Openoffice and Excel
265
+
266
+ ## [1.2.0] - 2008-08-24
267
+ ### Changed / Added
268
+ - Excelx: improved the detection of cell type and conversion into roo types
269
+ - All: to_csv: changed boundaries from first_row,1..last_row,last_column to 1,1..last_row,last_column
270
+ - All: Environment variable "ROO_TMP" indicate where temporary directories will be created (if not set the default is the current working directory)
271
+
272
+ ### Fixed
273
+ - Excel: improved the detection of last_row/last_column (parseexcel-gem bug?)
274
+ - Excel/Excelx/Openoffice: temporary directories were not removed at opening a file of the wrong type
275
+
276
+ ## [1.1.0] - 2008-07-26
277
+ ### Changed / Added
278
+ - Excel: speed improvements
279
+ - Changed the behavior of reading files with the wrong type
280
+
281
+ ### Fixed
282
+ - Google: added normalize in set_value method
283
+ - Excel: last_row in Excel class did not work properly under some circumstances
284
+ - all: fixed a bug in #to_xml if there is an empty sheet
285
+
286
+ ## [1.0.2] - 2008-07-04
287
+ ### Fixed
288
+ - Excelx: fixed a bug when there are .xml.rels files in the XLSX archive
289
+ - Excelx: fixed a bug with celltype recognition (see comment with "2008-07-03")
290
+
291
+ ## [1.0.1] - 2008-06-30
292
+ ### Fixed
293
+ - Excel: row/column method Fixnum/Float confusion
294
+
295
+ ## [1.0.0] - 2008-05-28
296
+ ### Changed / Added
297
+ - support of Excel's new .xlsx file format
298
+ - method #to_xml for exporting a spreadsheet to an xml representation
299
+
300
+ ### Fixed
301
+ - fixed a bug with excel-spreadsheet character conversion under Macintosh Darwin
302
+
303
+ ## [0.9.4] - 2008-04-22
304
+ ### Fixed
305
+ - fixed a bug with excel-spreadsheet character conversion under Solaris
306
+
307
+ ## [0.9.3] - 2008-03-25
308
+ ### Fixed
309
+ - no more tmp directories if an invalid spreadsheet file was openend
310
+
311
+ ## [0.9.2] - 2008-03-24
312
+ ### Changed / Added
313
+ - new celltype :time
314
+
315
+ ### Fixed
316
+ - time values like '23:15' are handled as seconds from midnight
317
+
318
+ ## [0.9.1] - 2008-03-23
319
+ ### Changed / Added
320
+ - additional 'sheet' parameter in Google#set_value
321
+
322
+ ### Fixed
323
+ - fixed a bug within Google#set_value. thanks to davecahill <dpcahill@gmail.com> for the patch.
324
+
325
+ ## [0.9.0] - 2008-01-24
326
+ ### Changed / Added
327
+ - better support of roo spreadsheets in rails views
328
+
329
+ ## [0.8.5] - 2008-01-16
330
+ ### Fixed
331
+ - fixed a bug within #to_cvs and explicit call of a sheet
332
+
333
+ ## [0.8.4] - 2008-01-01
334
+ ### Fixed
335
+ - fixed 'find_by_condition' for excel sheets (header_line= --> GenericSpredsheet)
336
+
337
+ ## [0.8.3] - 2007-12-31
338
+ ### Fixed
339
+ - another fix for the encoding issue in excel sheet-names
340
+ - reactived the Excel#find method which has been disappeared in the last restructoring, moved to GenericSpreadsheet
341
+
342
+ ## [0.8.2] - 2007-12-28
343
+ ### Changed / Added
344
+ - basename() only in method #info
345
+
346
+ ### Fixed
347
+ - changed logging-method to mysql-database in test code with AR, table column 'class' => 'class_name'
348
+ - reactived the Excel#to_csv method which has been disappeared in the last restructoring
349
+
350
+ ## [0.8.1] - 2007-12-22
351
+ ### Fixed
352
+ - fixed a bug with first/last-row/column in empty sheet
353
+ - #info prints now '- empty -' if a sheet within a document is empty
354
+ - tried to fix the iconv conversion problem
355
+
356
+ ## [0.8.0] - 2007-12-15
357
+ ### Changed / Added
358
+ - Google online spreadsheets were implemented
359
+ - some methods common to more than one class were factored out to the GenericSpreadsheet (virtual) class
360
+
361
+ ## [0.7.0] - 2007-11-23
362
+ ### Changed / Added
363
+ - Openoffice/Excel: the most methods can be called with an option 'sheet'
364
+ parameter which will be used instead of the default sheet
365
+ - Excel: improved the speed of CVS output
366
+ - Openoffice/Excel: new method #column
367
+ - Openoffice/Excel: new method #find
368
+ - Openoffice/Excel: new method #info
369
+ - better exception if a spreadsheet file does not exist
370
+
371
+ ## [0.6.1] - 2007-10-06
372
+ ### Changed / Added
373
+ - Openoffice: percentage-values are now treated as numbers (not strings)
374
+ - Openoffice: refactoring
375
+
376
+ ### Fixed
377
+ - Openoffice: repeating date-values in a line are now handled correctly
378
+
379
+ ## [0.6.0] - 2007-10-06
380
+ ### Changed / Added
381
+ - csv-output to stdout or file
382
+
383
+ ## [0.5.4] - 2007-08-27
384
+ ### Fixed
385
+ - Openoffice: fixed a bug with internal representation of a spreadsheet (thanks to Ric Kamicar for the patch)
386
+
387
+ ## [0.5.3] - 2007-08-26
388
+ ### Changed / Added
389
+ - Openoffice: can now read zip-ed files
390
+ - Openoffice: can now read files from http://-URL over the net
391
+
392
+ ## [0.5.2] - 2007-08-26
393
+ ### Fixed
394
+ - excel: removed debugging output
395
+
396
+ ## [0.5.1] - 2007-08-26
397
+ ### Changed / Added
398
+ - Openoffice: Exception if an illegal sheet-name is selected
399
+ - Openoffice/Excel: no need to set a default_sheet if there is only one in
400
+ the document
401
+ - Excel: can now read zip-ed files
402
+ - Excel: can now read files from http://-URL over the net
403
+
404
+ ## [0.5.0] - 2007-07-20
405
+ ### Changed / Added
406
+ - Excel-objects: the methods default_sheet= and sheets can now handle names instead of numbers
407
+ ### Changedd the celltype methods to return symbols, not strings anymore (possible values are :formula, :float, :string, :date, :percentage (if you need strings you can convert it with .to_s)
408
+ - tests can now run on the client machine (not only my machine), if there are not public released files involved these tests are skipped
409
+
410
+ ## [0.4.1] - 2007-06-27
411
+ ### Fixed
412
+ - there was ONE false require-statement which led to misleading error messageswhen this gem was used
413
+
414
+ ## [0.4.0] - 2007-06-27
415
+ ### Changed / Added
416
+ - robustness: Exception if no default_sheet was set
417
+ - new method reload() implemented
418
+ - about 15 % more method documentation
419
+ - optimization: huge increase of speed (no need to use fixed borders anymore)
420
+ - added the method 'formulas' which gives you all formulas in a spreadsheet
421
+ - added the method 'set' which can set cells to a certain value
422
+ - added the method 'to_yaml' which can produce output for importing in a (rails) database
423
+
424
+ ### Fixed
425
+ - ..row_as_letter methods were nonsense - removed
426
+ - @cells_read should be reset if the default_sheet is changed
427
+ - error in excel-part: strings are now converted to utf-8 (the parsexcel-gem gave me an error with my test data, which could not converted to .to_s using latin1 encoding)
428
+ - fixed bug when default_sheet is changed
429
+
430
+ ## [0.3.0] - 2007-06-20
431
+ ### Changed / Added
432
+ - Openoffice: formula support
433
+
434
+ ## [0.2.7] - 2007-06-20
435
+ ### Fixed
436
+ - Excel: float-numbers were truncated to integer
437
+
438
+ ## [0.2.6] - 2007-06-19
439
+ ### Fixed
440
+ - Openoffice: two or more consecutive cells with string content failed
441
+
442
+ ## [0.2.5] - 2007-06-17
443
+ ### Changed / Added
444
+ - Excel: row method implemented
445
+ - more tests
446
+
447
+ ### Fixed
448
+ - Openoffice: row method fixed
449
+
450
+ ## [0.2.4] - 2007-06-16
451
+ ### Fixed
452
+ - ID 11605 Two cols with same value: crash roo (openoffice version only)
453
+
454
+ ## [0.2.3] - 2007-06-02
455
+ ### Changed / Added
456
+ - more robust call att Excel#default_sheet= when called with a name
457
+ - new method empty?
458
+ - refactoring
459
+
460
+ ### Fixed
461
+ - bugfix in Excel#celltype
462
+ - bugfix (running under windows only) in closing the temp file before removing it
463
+
464
+ ## [0.2.2] - 2007-06-01
465
+ ### Fixed
466
+ - correct pathname for running with windows
467
+
468
+ ## [0.2.2] - 2007-06-01
469
+ ### Fixed
470
+ - incorrect dependencies fixed
471
+
472
+ ## [0.2.0] - 2007-06-01
473
+ ### Changed / Added
474
+ - support for MS-Excel Spreadsheets
475
+
476
+ ## [0.1.2] - 2007-05-31
477
+ ### Changed / Added
478
+ - cells with more than one character, like 'AA' can now be handled
479
+
480
+ ## [0.1.1] - 2007-05-31
481
+ ### Fixed
482
+ - bugfixes in first/last methods
483
+
484
+ ## [0.1.0] - 2007-05-31
485
+ ### Changed / Added
486
+ - new methods first/last row/column
487
+ - new method officeversion
488
+
489
+ ## [0.0.3] - 2007-05-30
490
+ ### Changed / Added
491
+ - new method row()
492
+
493
+ ## [0.0.2] - 2007-05-30
494
+ ### Changed / Added
495
+ - fixed some bugs
496
+ - more ways to access a cell
497
+
498
+ ## [0.0.1] - 2007-05-25
499
+ ### Changed / Added
500
+ - Initial release
data/Gemfile CHANGED
@@ -1,18 +1,24 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
 
3
- gem 'spreadsheet', '> 0.6.4'
4
- gem 'nokogiri'
5
- gem 'rubyzip'
6
-
7
- group :development do
8
- gem 'google_drive'
9
- gem 'jeweler'
10
- end
3
+ gemspec
11
4
 
12
5
  group :test do
13
6
  # additional testing libs
14
7
  gem 'webmock'
15
8
  gem 'shoulda'
16
- gem 'rspec'
9
+ gem 'rspec', '>= 3.0.0'
17
10
  gem 'vcr'
11
+ gem 'simplecov', '>= 0.9.0', require: false
12
+ gem 'coveralls', require: false
13
+ end
14
+
15
+ group :local_development do
16
+ gem 'terminal-notifier-guard', require: false if RUBY_PLATFORM.downcase.include?('darwin')
17
+ gem 'guard-rspec', '>= 4.3.1', require: false
18
+ gem 'guard-minitest', require: false
19
+ gem 'guard-bundler', require: false
20
+ gem 'guard-preek', require: false
21
+ gem 'guard-rubocop', require: false
22
+ gem 'guard-reek', github: 'pericles/guard-reek', require: false
23
+ gem 'pry'
18
24
  end
data/Guardfile ADDED
@@ -0,0 +1,24 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :minitest, test_folders: ['test'] do
5
+ watch(%r{^test/(.*)\/?test_(.*)\.rb$})
6
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
7
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
8
+ end
9
+
10
+ # Note: The cmd option is now required due to the increasing number of ways
11
+ # rspec may be run, below are examples of the most common uses.
12
+ # * bundler: 'bundle exec rspec'
13
+ # * bundler binstubs: 'bin/rspec'
14
+ # * spring: 'bin/rsspec' (This will use spring if running and you have
15
+ # installed the spring binstubs per the docs)
16
+ # * zeus: 'zeus rspec' (requires the server to be started separetly)
17
+ # * 'just' rspec: 'rspec'
18
+ guard :rspec, cmd: 'bundle exec rspec' do
19
+ watch(%r{^spec/.+_spec\.rb$})
20
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
21
+ watch('spec/spec_helper.rb') { "spec" }
22
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
23
+ end
24
+
data/LICENSE CHANGED
@@ -1,4 +1,6 @@
1
- Copyright (c) 2008-2013 Thomas Preymesser, Ben Woosley
1
+ Copyright (c) 2008-2014 Thomas Preymesser, Ben Woosley
2
+
3
+ MIT License
2
4
 
3
5
  Permission is hereby granted, free of charge, to any person obtaining
4
6
  a copy of this software and associated documentation files (the