roo 2.3.0 → 2.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +17 -0
  3. data/.github/issue_template.md +16 -0
  4. data/.github/pull_request_template.md +14 -0
  5. data/.github/workflows/pull-request.yml +15 -0
  6. data/.github/workflows/ruby.yml +34 -0
  7. data/.gitignore +4 -0
  8. data/.rubocop.yml +186 -0
  9. data/CHANGELOG.md +148 -0
  10. data/Gemfile +4 -4
  11. data/LICENSE +2 -0
  12. data/README.md +84 -27
  13. data/Rakefile +1 -1
  14. data/lib/roo/base.rb +111 -237
  15. data/lib/roo/constants.rb +5 -3
  16. data/lib/roo/csv.rb +106 -85
  17. data/lib/roo/errors.rb +2 -0
  18. data/lib/roo/excelx/cell/base.rb +26 -12
  19. data/lib/roo/excelx/cell/boolean.rb +9 -6
  20. data/lib/roo/excelx/cell/date.rb +7 -7
  21. data/lib/roo/excelx/cell/datetime.rb +50 -44
  22. data/lib/roo/excelx/cell/empty.rb +3 -2
  23. data/lib/roo/excelx/cell/number.rb +60 -47
  24. data/lib/roo/excelx/cell/string.rb +3 -3
  25. data/lib/roo/excelx/cell/time.rb +17 -16
  26. data/lib/roo/excelx/cell.rb +11 -7
  27. data/lib/roo/excelx/comments.rb +3 -3
  28. data/lib/roo/excelx/coordinate.rb +11 -4
  29. data/lib/roo/excelx/extractor.rb +20 -3
  30. data/lib/roo/excelx/format.rb +38 -31
  31. data/lib/roo/excelx/images.rb +26 -0
  32. data/lib/roo/excelx/relationships.rb +12 -4
  33. data/lib/roo/excelx/shared.rb +10 -3
  34. data/lib/roo/excelx/shared_strings.rb +113 -9
  35. data/lib/roo/excelx/sheet.rb +49 -10
  36. data/lib/roo/excelx/sheet_doc.rb +101 -48
  37. data/lib/roo/excelx/styles.rb +4 -4
  38. data/lib/roo/excelx/workbook.rb +8 -3
  39. data/lib/roo/excelx.rb +85 -42
  40. data/lib/roo/formatters/base.rb +15 -0
  41. data/lib/roo/formatters/csv.rb +84 -0
  42. data/lib/roo/formatters/matrix.rb +23 -0
  43. data/lib/roo/formatters/xml.rb +31 -0
  44. data/lib/roo/formatters/yaml.rb +40 -0
  45. data/lib/roo/helpers/default_attr_reader.rb +20 -0
  46. data/lib/roo/helpers/weak_instance_cache.rb +41 -0
  47. data/lib/roo/open_office.rb +41 -27
  48. data/lib/roo/spreadsheet.rb +8 -2
  49. data/lib/roo/tempdir.rb +24 -0
  50. data/lib/roo/utils.rb +76 -26
  51. data/lib/roo/version.rb +1 -1
  52. data/lib/roo.rb +5 -0
  53. data/roo.gemspec +22 -12
  54. data/spec/lib/roo/base_spec.rb +65 -3
  55. data/spec/lib/roo/csv_spec.rb +19 -0
  56. data/spec/lib/roo/excelx/cell/time_spec.rb +15 -0
  57. data/spec/lib/roo/excelx/relationships_spec.rb +43 -0
  58. data/spec/lib/roo/excelx/sheet_doc_spec.rb +11 -0
  59. data/spec/lib/roo/excelx_spec.rb +237 -5
  60. data/spec/lib/roo/openoffice_spec.rb +2 -2
  61. data/spec/lib/roo/spreadsheet_spec.rb +1 -1
  62. data/spec/lib/roo/strict_spec.rb +43 -0
  63. data/spec/lib/roo/utils_spec.rb +22 -9
  64. data/spec/lib/roo/weak_instance_cache_spec.rb +92 -0
  65. data/spec/lib/roo_spec.rb +0 -0
  66. data/spec/spec_helper.rb +2 -7
  67. data/test/excelx/cell/test_attr_reader_default.rb +72 -0
  68. data/test/excelx/cell/test_base.rb +6 -2
  69. data/test/excelx/cell/test_boolean.rb +1 -3
  70. data/test/excelx/cell/test_date.rb +1 -6
  71. data/test/excelx/cell/test_datetime.rb +7 -10
  72. data/test/excelx/cell/test_empty.rb +12 -2
  73. data/test/excelx/cell/test_number.rb +28 -4
  74. data/test/excelx/cell/test_string.rb +21 -3
  75. data/test/excelx/cell/test_time.rb +7 -10
  76. data/test/excelx/test_coordinate.rb +51 -0
  77. data/test/formatters/test_csv.rb +136 -0
  78. data/test/formatters/test_matrix.rb +76 -0
  79. data/test/formatters/test_xml.rb +78 -0
  80. data/test/formatters/test_yaml.rb +20 -0
  81. data/test/helpers/test_accessing_files.rb +81 -0
  82. data/test/helpers/test_comments.rb +43 -0
  83. data/test/helpers/test_formulas.rb +9 -0
  84. data/test/helpers/test_labels.rb +103 -0
  85. data/test/helpers/test_sheets.rb +55 -0
  86. data/test/helpers/test_styles.rb +62 -0
  87. data/test/roo/test_base.rb +182 -0
  88. data/test/roo/test_csv.rb +88 -0
  89. data/test/roo/test_excelx.rb +360 -0
  90. data/test/roo/test_libre_office.rb +9 -0
  91. data/test/roo/test_open_office.rb +289 -0
  92. data/test/test_helper.rb +129 -14
  93. data/test/test_roo.rb +60 -1765
  94. metadata +91 -21
  95. data/.travis.yml +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f9b79f7270fb925c4aa402c0bd1bcccfc422ac92
4
- data.tar.gz: f5ed3e4155c09890a710265c3a31e308ec4660fa
2
+ SHA256:
3
+ metadata.gz: cd6f8267a04fcec20134f5170360fdd0259369b0c8b319100d0304c95964a6f5
4
+ data.tar.gz: 6e33716242265c9c02a7cc42b22690f03114cf12bcbbe846055040fede3cd790
5
5
  SHA512:
6
- metadata.gz: bb21c71a0343bcce335b4ddc7b5b0caec8ba69d5059e09868e76a7494338fd11bd8d6dae0c0697dbc2ccef4564f7fa19ae56cc09b1c6bca22a6670b7ee1ada6c
7
- data.tar.gz: 4563b478a1a0c71fbd7087097917b4eacc0a744d8f3d806ce02f8836b767f34a16c40e3207695180ff1a9882f74a6c9c6b354f84547fee5e91a0bf08959ff04a
6
+ metadata.gz: 65dd59afe1dfda800c7e88547f305dbd1eb295c5715fd23dc5123618307205ae1a0c0740511739d2880b4d91cabca10fad152d522cca96a2694f8e3c1cccbd39
7
+ data.tar.gz: 9d239b22ee226fc3466d2445127dc2c4fc50c488249171b0b86dc17a4a41779e543e83ed3def1fe9fae26ddc67608a81733483e3757b32156d822abdbf2bc974
data/.codeclimate.yml ADDED
@@ -0,0 +1,17 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ fixme:
9
+ enabled: true
10
+ rubocop:
11
+ enabled: true
12
+ ratings:
13
+ paths:
14
+ - "**.rb"
15
+ exclude_paths:
16
+ - spec/
17
+ - test/
@@ -0,0 +1,16 @@
1
+ Thanks for filing an issue. Following these instructions will help us solve your problem sooner.
2
+
3
+ ### Steps to reproduce
4
+
5
+ 1. Create an executable test case for this issue ([sample test case](https://gist.github.com/tgturner/e4b7f491639b8a6dd883fe2ace408652))
6
+ 2. You can share your executable test case as a [gist](https://gist.github.com), or simply paste the content into the issue description.
7
+ - You can execute the test case by running `ruby the_file.rb` in your terminal. If all goes well, you should see your test case failing.
8
+ 3. Please provide a stripped down version of the offending spreadsheet.
9
+
10
+ ### Issue
11
+ Describe the issue
12
+
13
+ ### System configuration
14
+ **Roo version**:
15
+
16
+ **Ruby version**:
@@ -0,0 +1,14 @@
1
+ ### Summary
2
+
3
+ Provide a general description of the code changes in your pull
4
+ request... were there any bugs you had fixed? If so, mention them. If
5
+ these bugs have open GitHub issues, be sure to tag them here as well,
6
+ to keep the conversation linked together.
7
+
8
+ ### Other Information
9
+
10
+ If there's anything else that's important and relevant to your pull
11
+ request, mention that information here. This could include
12
+ benchmarks, or other information.
13
+
14
+ Thanks for contributing to Roo!
@@ -0,0 +1,15 @@
1
+ name: Changelog
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
6
+
7
+ jobs:
8
+ changelog:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v2
12
+ - uses: amoniacou/changelog-enforcer@v1.4.0
13
+ with:
14
+ changeLogPath: 'CHANGELOG.md'
15
+ skipLabel: 'Skip-Changelog'
@@ -0,0 +1,34 @@
1
+ name: Ruby
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - master
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ ruby:
16
+ - '2.7'
17
+ - '3.0'
18
+ - '3.1'
19
+ - ruby-head
20
+ - jruby-9.3.3.0
21
+ include:
22
+ - ruby: ruby-head
23
+ env:
24
+ RUBYOPT: '--jit'
25
+ steps:
26
+ - uses: actions/checkout@v2
27
+ - uses: ruby/setup-ruby@v1
28
+ with:
29
+ ruby-version: ${{ matrix.ruby }}
30
+ bundler-cache: true
31
+ - run: bundle exec rake
32
+ env:
33
+ LONG_RUN: true
34
+
data/.gitignore CHANGED
@@ -5,3 +5,7 @@
5
5
  .project
6
6
  *.lock
7
7
  .idea
8
+ .buildpath
9
+ *~
10
+ .bundle/
11
+ lbin/
data/.rubocop.yml ADDED
@@ -0,0 +1,186 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.4
3
+ # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
4
+ # to ignore them, so only the ones explicitly set in this file are enabled.
5
+ DisabledByDefault: true
6
+
7
+ Performance:
8
+ Exclude:
9
+ - '**/test/**/*'
10
+ - '**/spec/**/*'
11
+
12
+ # Prefer &&/|| over and/or.
13
+ Style/AndOr:
14
+ Enabled: true
15
+
16
+ # Do not use braces for hash literals when they are the last argument of a
17
+ # method call.
18
+ Style/BracesAroundHashParameters:
19
+ Enabled: true
20
+ EnforcedStyle: context_dependent
21
+
22
+ # Align `when` with `case`.
23
+ Layout/CaseIndentation:
24
+ Enabled: true
25
+
26
+ # Align comments with method definitions.
27
+ Layout/CommentIndentation:
28
+ Enabled: true
29
+
30
+ Layout/ElseAlignment:
31
+ Enabled: true
32
+
33
+ # Align `end` with the matching keyword or starting expression except for
34
+ # assignments, where it should be aligned with the LHS.
35
+ Layout/EndAlignment:
36
+ Enabled: true
37
+ EnforcedStyleAlignWith: variable
38
+ AutoCorrect: true
39
+
40
+ Layout/EmptyLineAfterMagicComment:
41
+ Enabled: true
42
+
43
+ Layout/EmptyLinesAroundBlockBody:
44
+ Enabled: true
45
+
46
+ # In a regular class definition, no empty lines around the body.
47
+ Layout/EmptyLinesAroundClassBody:
48
+ Enabled: true
49
+
50
+ # In a regular method definition, no empty lines around the body.
51
+ Layout/EmptyLinesAroundMethodBody:
52
+ Enabled: true
53
+
54
+ # In a regular module definition, no empty lines around the body.
55
+ Layout/EmptyLinesAroundModuleBody:
56
+ Enabled: true
57
+
58
+ Layout/FirstParameterIndentation:
59
+ Enabled: true
60
+
61
+ # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
62
+ Style/HashSyntax:
63
+ Enabled: true
64
+
65
+ # Method definitions after `private` or `protected` isolated calls need one
66
+ # extra level of indentation.
67
+ Layout/IndentationConsistency:
68
+ Enabled: true
69
+
70
+ # Two spaces, no tabs (for indentation).
71
+ Layout/IndentationWidth:
72
+ Enabled: true
73
+
74
+ Layout/LeadingCommentSpace:
75
+ Enabled: true
76
+
77
+ Layout/SpaceAfterColon:
78
+ Enabled: true
79
+
80
+ Layout/SpaceAfterComma:
81
+ Enabled: true
82
+
83
+ Layout/SpaceAroundEqualsInParameterDefault:
84
+ Enabled: true
85
+
86
+ Layout/SpaceAroundKeyword:
87
+ Enabled: true
88
+
89
+ Layout/SpaceAroundOperators:
90
+ Enabled: true
91
+
92
+ Layout/SpaceBeforeComma:
93
+ Enabled: true
94
+
95
+ Layout/SpaceBeforeFirstArg:
96
+ Enabled: true
97
+
98
+ Style/DefWithParentheses:
99
+ Enabled: true
100
+
101
+ # Defining a method with parameters needs parentheses.
102
+ Style/MethodDefParentheses:
103
+ Enabled: true
104
+
105
+ Style/FrozenStringLiteralComment:
106
+ Enabled: true
107
+ EnforcedStyle: always
108
+
109
+ # Use `foo {}` not `foo{}`.
110
+ Layout/SpaceBeforeBlockBraces:
111
+ Enabled: true
112
+
113
+ # Use `foo { bar }` not `foo {bar}`.
114
+ Layout/SpaceInsideBlockBraces:
115
+ Enabled: true
116
+
117
+ # Use `{ a: 1 }` not `{a:1}`.
118
+ Layout/SpaceInsideHashLiteralBraces:
119
+ Enabled: true
120
+
121
+ Layout/SpaceInsideParens:
122
+ Enabled: true
123
+
124
+ # Check quotes usage according to lint rule below.
125
+ Style/StringLiterals:
126
+ Enabled: true
127
+ EnforcedStyle: double_quotes
128
+
129
+ # Detect hard tabs, no hard tabs.
130
+ Layout/Tab:
131
+ Enabled: true
132
+
133
+ # Blank lines should not have any spaces.
134
+ Layout/TrailingBlankLines:
135
+ Enabled: true
136
+
137
+ # No trailing whitespace.
138
+ Layout/TrailingWhitespace:
139
+ Enabled: true
140
+
141
+ # Use quotes for string literals when they are enough.
142
+ Style/UnneededPercentQ:
143
+ Enabled: true
144
+
145
+ # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
146
+ Lint/RequireParentheses:
147
+ Enabled: true
148
+
149
+ Lint/StringConversionInInterpolation:
150
+ Enabled: true
151
+
152
+ Lint/UriEscapeUnescape:
153
+ Enabled: true
154
+
155
+ Style/ParenthesesAroundCondition:
156
+ Enabled: true
157
+
158
+ Style/RedundantReturn:
159
+ Enabled: true
160
+ AllowMultipleReturnValues: true
161
+
162
+ Style/Semicolon:
163
+ Enabled: true
164
+ AllowAsExpressionSeparator: true
165
+
166
+ # Prefer Foo.method over Foo::method
167
+ Style/ColonMethodCall:
168
+ Enabled: true
169
+
170
+ Style/TrivialAccessors:
171
+ Enabled: true
172
+
173
+ Performance/FlatMap:
174
+ Enabled: true
175
+
176
+ Performance/RedundantMerge:
177
+ Enabled: true
178
+
179
+ Performance/StartWith:
180
+ Enabled: true
181
+
182
+ Performance/EndWith:
183
+ Enabled: true
184
+
185
+ Performance/RegexpMatch:
186
+ Enabled: true
data/CHANGELOG.md CHANGED
@@ -1,3 +1,151 @@
1
+ ## [2.10.1] 2024-01-17
2
+
3
+ ### Changed/Added
4
+ - Prevent warnings on Ruby 3.1 if finalizer is called twice [586](https://github.com/roo-rb/roo/pull/586)
5
+ - Fix Roo::Base#each_with_pagename degraded at [576](https://github.com/roo-rb/roo/pull/576) [583](https://github.com/roo-rb/roo/pull/583)
6
+
7
+ ## [2.10.0] 2023-02-07
8
+
9
+ ### Changed/Added
10
+ - Fix gsub! usage for open office documents on a frozen string [581](https://github.com/roo-rb/roo/pull/581)
11
+ - Add support for boolean values in open office files that were generated via Google Sheets [580](https://github.com/roo-rb/roo/pull/580)
12
+ - Roo::Base#each_with_pagename returns Enumerator Object [576](https://github.com/roo-rb/roo/pull/576)
13
+
14
+ ## [2.9.0] 2022-03-19
15
+
16
+ ### Changed/Added
17
+ - Ruby 3.x Support [555](https://github.com/roo-rb/roo/pull/555)
18
+ - Ignore all richdata at 'xl/richData' of XSLX [552](https://github.com/roo-rb/roo/pull/552)
19
+ - Only copy if cell is present when `expand_merged_ranges: true` [557](https://github.com/roo-rb/roo/pull/557)
20
+ - Fixes issue where the contents of hidden sheet was returned when parsing visible sheets only. [536](https://github.com/roo-rb/roo/pull/536)
21
+ - Add formats [525](https://github.com/roo-rb/roo/pull/525)
22
+ - Fix warnings caused by Ruby 2.7 update [530](https://github.com/roo-rb/roo/pull/530)
23
+ - Add formats [525](https://github.com/roo-rb/roo/pull/525)
24
+
25
+ ### Removed
26
+ - Support for ruby 2.4, 2.5, 2.6(excluded jRuby)
27
+
28
+ ## [2.8.3] 2020-02-03
29
+ ### Changed/Added
30
+ - Updated rubyzip version. Now minimal version is 1.3.0 [515](https://github.com/roo-rb/roo/pull/515) - [CVE-2019-16892](https://github.com/rubyzip/rubyzip/pull/403)
31
+
32
+ ## [2.8.2] 2019-02-01
33
+ ### Changed/Added
34
+ - Support range cell for Excelx's links [490](https://github.com/roo-rb/roo/pull/490)
35
+ - Skip `extract_hyperlinks` if not required [488](https://github.com/roo-rb/roo/pull/488)
36
+
37
+ ### Fixed
38
+ - Fixed error for invalid link [492](https://github.com/roo-rb/roo/pull/492)
39
+
40
+ ## [2.8.1] 2019-01-21
41
+ ### Fixed
42
+ - Fixed error if excelx's cell have empty children [487](https://github.com/roo-rb/roo/pull/487)
43
+
44
+ ## [2.8.0] 2019-01-18
45
+ ### Fixed
46
+ - Fixed inconsistent column length for CSV [375](https://github.com/roo-rb/roo/pull/375)
47
+ - Fixed formatted_value with `%` for Excelx [416](https://github.com/roo-rb/roo/pull/416)
48
+ - Improved Memory consumption and performance [434](https://github.com/roo-rb/roo/pull/434) [449](https://github.com/roo-rb/roo/pull/449) [454](https://github.com/roo-rb/roo/pull/454) [456](https://github.com/roo-rb/roo/pull/456) [458](https://github.com/roo-rb/roo/pull/458) [462](https://github.com/roo-rb/roo/pull/462) [466](https://github.com/roo-rb/roo/pull/466)
49
+ - Accept both Transitional and Strict Type for Excelx's worksheets [441](https://github.com/roo-rb/roo/pull/441)
50
+ - Fixed ruby warnings [442](https://github.com/roo-rb/roo/pull/442) [476](https://github.com/roo-rb/roo/pull/476)
51
+ - Restore support for URL as file identifier for CSV [462](https://github.com/roo-rb/roo/pull/462)
52
+ - Fixed missing location for Excelx's links [482](https://github.com/roo-rb/roo/pull/482)
53
+
54
+ ### Changed / Added
55
+ - Drop support for ruby 2.2.x and lower
56
+ - Updated rubyzip version for fixing security issue. Now minimal version is 1.2.1
57
+ - Roo::Excelx::Coordinate now inherits Array [458](https://github.com/roo-rb/roo/pull/458)
58
+ - Improved Roo::HeaderRowNotFoundError exception's message [461](https://github.com/roo-rb/roo/pull/461)
59
+ - Added `empty_cell` option which by default disable allocation for Roo::Excelx::Cell::Empty [464](https://github.com/roo-rb/roo/pull/464)
60
+ - Added support for variable number of decimals for Excelx's formatted_value [387](https://github.com/roo-rb/roo/pull/387)
61
+ - Added `disable_html_injection` option to disable html injection for shared string in `Roo::Excelx` [392](https://github.com/roo-rb/roo/pull/392)
62
+ - Added image extraction for Excelx [414](https://github.com/roo-rb/roo/pull/414) [397](https://github.com/roo-rb/roo/pull/397)
63
+ - Added support for `1e6` as scientific notation for Excelx [433](https://github.com/roo-rb/roo/pull/433)
64
+ - Added support for Integer as 0 based index for Excelx's `sheet_for` [455](https://github.com/roo-rb/roo/pull/455)
65
+ - Extended `no_hyperlinks` option for non streaming Excelx methods [459](https://github.com/roo-rb/roo/pull/459)
66
+ - Added `empty_cell` option to disable Roo::Excelx::Cell::Empty allocation for Excelx [464](https://github.com/roo-rb/roo/pull/464)
67
+ - Added support for Integer with leading zero for Roo:Excelx [479](https://github.com/roo-rb/roo/pull/479)
68
+ - Refactored Excelx code [453](https://github.com/roo-rb/roo/pull/453) [477](https://github.com/roo-rb/roo/pull/477) [483](https://github.com/roo-rb/roo/pull/483) [484](https://github.com/roo-rb/roo/pull/484)
69
+
70
+ ### Deprecations
71
+ - Roo::Excelx::Sheet#present_cells is deprecated [454](https://github.com/roo-rb/roo/pull/454)
72
+ - Roo::Utils.split_coordinate is deprecated [458](https://github.com/roo-rb/roo/pull/458)
73
+ - Roo::Excelx::Cell::Base#link is deprecated [457](https://github.com/roo-rb/roo/pull/457)
74
+
75
+ ## [2.7.1] 2017-01-03
76
+ ### Fixed
77
+ - Fixed regression where a CSV's encoding was being ignored [372](https://github.com/roo-rb/roo/pull/372)
78
+
79
+ ## [2.7.0] 2016-12-31
80
+ ### Fixed
81
+ - Added rack server for testing Roo's download capabilities [365](https://github.com/roo-rb/roo/pull/365)
82
+ - Refactored tests into different formats [365](https://github.com/roo-rb/roo/pull/365)
83
+ - Fixed OpenOffice for JRuby [362](https://github.com/roo-rb/roo/pull/362)
84
+ - Added '0.000000' => '%.6f' number format [354](https://github.com/roo-rb/roo/pull/354)
85
+ - Add additional formula cell types for to_csv [367][https://github.com/roo-rb/roo/pull/367]
86
+
87
+ ### Added
88
+ - Extracted formatters from Roo::Base#to_* methods [364](https://github.com/roo-rb/roo/pull/364)
89
+
90
+ ## [2.6.0] 2016-12-28
91
+ ### Fixed
92
+ - Fixed error if sheet name starts with a slash [348](https://github.com/roo-rb/roo/pull/348)
93
+ - Fixed loading to support files on ftp [355](https://github.com/roo-rb/roo/pull/355)
94
+ - Fixed Ruby 2.4.0 deprecation warnings [356](https://github.com/roo-rb/roo/pull/356)
95
+ - properly return date as string [359](https://github.com/roo-rb/roo/pull/359)
96
+
97
+ ### Added
98
+ - Cell values can be set in a CSV [350](https://github.com/roo-rb/roo/pull/350/)
99
+ - Raise an error Roo::Excelx::Extractor document is missing [358](https://github.com/roo-rb/roo/pull/358/)
100
+
101
+ ## [2.5.1] 2016-08-26
102
+ ### Fixed
103
+ - Fixed NameError. [337](https://github.com/roo-rb/roo/pull/337)
104
+
105
+ ## [2.5.0] 2016-08-21
106
+ ### Fixed
107
+ - Remove temporary directories via finalizers on garbage collection. This cleans them up in all known cases, rather than just when the #close method is called. The #close method can be used to cleanup early. [329](https://github.com/roo-rb/roo/pull/329)
108
+ - Fixed README.md typo [318](https://github.com/roo-rb/roo/pull/318)
109
+ - Parse sheets in ODS files once to improve performance [320](https://github.com/roo-rb/roo/pull/320)
110
+ - Fix some Cell conversion issues [324](https://github.com/roo-rb/roo/pull/324) and [331](https://github.com/roo-rb/roo/pull/331)
111
+ - Improved memory performance [332](https://github.com/roo-rb/roo/pull/332)
112
+ - Added `no_hyperlinks` option to improve streamig performance [319](https://github.com/roo-rb/roo/pull/319) and [333](https://github.com/roo-rb/roo/pull/333)
113
+
114
+ ### Deprecations
115
+ - Roo::Base::TEMP_PREFIX should be accessed via Roo::TEMP_PREFIX
116
+ - The private Roo::Base#make_tempdir is now available at the class level in
117
+ classes that use temporary directories, added via Roo::Tempdir
118
+ =======
119
+ ### Added
120
+ - Discard hyperlinks lookups to allow streaming parsing without loading whole files
121
+
122
+ ## [2.4.0] 2016-05-14
123
+ ### Fixed
124
+ - Fixed opening spreadsheets with charts [315](https://github.com/roo-rb/roo/pull/315)
125
+ - Fixed memory issues for Roo::Utils.number_to_letter [308](https://github.com/roo-rb/roo/pull/308)
126
+ - Fixed Roo::Excelx::Cell::Number to recognize floating point numbers [306](https://github.com/roo-rb/roo/pull/306)
127
+ - Fixed version number in Readme.md [304](https://github.com/roo-rb/roo/pull/304)
128
+
129
+ ### Added
130
+ - Added initial support for HTML formatting [278](https://github.com/roo-rb/roo/pull/278)
131
+
132
+ ## [2.3.2] 2016-02-18
133
+ ### Fixed
134
+ - Handle url with long query params (ex. S3 secure url) [302](https://github.com/roo-rb/roo/pull/302)
135
+ - Allow streaming for Roo::CSV [297](https://github.com/roo-rb/roo/pull/297)
136
+ - Export Fixnums to Added csv [295](https://github.com/roo-rb/roo/pull/295)
137
+ - Removed various Ruby warnings [289](https://github.com/roo-rb/roo/pull/289)
138
+ - Fix incorrect example result in Readme.md [293](https://github.com/roo-rb/roo/pull/293)
139
+
140
+ ## [2.3.1] - 2016-01-08
141
+ ### Fixed
142
+ - Properly parse scientific-notation number like 1E-3 [#288](https://github.com/roo-rb/roo/pull/288)
143
+ - Include all tests in default rake run [#283](https://github.com/roo-rb/roo/pull/283)
144
+ - Fix zero-padded numbers for Excelx [#282](https://github.com/roo-rb/roo/pull/282)
145
+
146
+ ### Changed
147
+ - Moved `ERROR_VALUES` from Excelx::Cell::Number ~> Excelx. [#280](https://github.com/roo-rb/roo/pull/280)
148
+
1
149
  ## [2.3.0] - 2015-12-10
2
150
  ### Changed
3
151
  - Excelx::Cell::Number will return a String instead of an Integer or Float if the cell has an error like #DIV/0, etc. [#273](https://github.com/roo-rb/roo/pull/273)
data/Gemfile CHANGED
@@ -4,12 +4,13 @@ gemspec
4
4
 
5
5
  group :test do
6
6
  # additional testing libs
7
- gem 'webmock'
8
7
  gem 'shoulda'
8
+ gem 'activesupport', '< 5.1'
9
9
  gem 'rspec', '>= 3.0.0'
10
- gem 'vcr'
11
10
  gem 'simplecov', '>= 0.9.0', require: false
12
11
  gem 'coveralls', require: false
12
+ gem "minitest-reporters"
13
+ gem 'webrick' if RUBY_VERSION >= '3.0.0'
13
14
  end
14
15
 
15
16
  group :local_development do
@@ -17,8 +18,7 @@ group :local_development do
17
18
  gem 'guard-rspec', '>= 4.3.1', require: false
18
19
  gem 'guard-minitest', require: false
19
20
  gem 'guard-bundler', require: false
20
- gem 'guard-preek', require: false
21
21
  gem 'guard-rubocop', require: false
22
- gem 'guard-reek', github: 'pericles/guard-reek', require: false
22
+ gem "rb-readline"
23
23
  gem 'pry'
24
24
  end
data/LICENSE CHANGED
@@ -1,4 +1,6 @@
1
1
  Copyright (c) 2008-2014 Thomas Preymesser, Ben Woosley
2
+ Copyright (c) 2014-2017 Ben Woosley
3
+ Copyright (c) 2015-2017 Oleksandr Simonov, Steven Daniels
2
4
 
3
5
  MIT License
4
6