roo 2.7.0 → 2.8.3

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 (75) hide show
  1. checksums.yaml +5 -5
  2. data/.github/issue_template.md +16 -0
  3. data/.github/pull_request_template.md +14 -0
  4. data/.rubocop.yml +186 -0
  5. data/.travis.yml +12 -7
  6. data/CHANGELOG.md +53 -2
  7. data/LICENSE +2 -0
  8. data/README.md +29 -13
  9. data/lib/roo/base.rb +69 -61
  10. data/lib/roo/constants.rb +5 -3
  11. data/lib/roo/csv.rb +20 -12
  12. data/lib/roo/excelx/cell/base.rb +26 -12
  13. data/lib/roo/excelx/cell/boolean.rb +9 -6
  14. data/lib/roo/excelx/cell/date.rb +7 -7
  15. data/lib/roo/excelx/cell/datetime.rb +14 -18
  16. data/lib/roo/excelx/cell/empty.rb +3 -2
  17. data/lib/roo/excelx/cell/number.rb +35 -34
  18. data/lib/roo/excelx/cell/string.rb +3 -3
  19. data/lib/roo/excelx/cell/time.rb +4 -3
  20. data/lib/roo/excelx/cell.rb +10 -6
  21. data/lib/roo/excelx/comments.rb +3 -3
  22. data/lib/roo/excelx/coordinate.rb +11 -4
  23. data/lib/roo/excelx/extractor.rb +21 -3
  24. data/lib/roo/excelx/format.rb +38 -31
  25. data/lib/roo/excelx/images.rb +26 -0
  26. data/lib/roo/excelx/relationships.rb +12 -4
  27. data/lib/roo/excelx/shared.rb +10 -3
  28. data/lib/roo/excelx/shared_strings.rb +9 -15
  29. data/lib/roo/excelx/sheet.rb +49 -10
  30. data/lib/roo/excelx/sheet_doc.rb +89 -48
  31. data/lib/roo/excelx/styles.rb +3 -3
  32. data/lib/roo/excelx/workbook.rb +7 -3
  33. data/lib/roo/excelx.rb +42 -16
  34. data/lib/roo/helpers/default_attr_reader.rb +20 -0
  35. data/lib/roo/helpers/weak_instance_cache.rb +41 -0
  36. data/lib/roo/open_office.rb +8 -6
  37. data/lib/roo/spreadsheet.rb +1 -1
  38. data/lib/roo/utils.rb +70 -20
  39. data/lib/roo/version.rb +1 -1
  40. data/lib/roo.rb +4 -1
  41. data/roo.gemspec +13 -11
  42. data/spec/lib/roo/base_spec.rb +45 -3
  43. data/spec/lib/roo/excelx/relationships_spec.rb +43 -0
  44. data/spec/lib/roo/excelx/sheet_doc_spec.rb +11 -0
  45. data/spec/lib/roo/excelx_spec.rb +150 -31
  46. data/spec/lib/roo/strict_spec.rb +43 -0
  47. data/spec/lib/roo/utils_spec.rb +25 -3
  48. data/spec/lib/roo/weak_instance_cache_spec.rb +92 -0
  49. data/spec/lib/roo_spec.rb +0 -0
  50. data/spec/spec_helper.rb +1 -1
  51. data/test/excelx/cell/test_attr_reader_default.rb +72 -0
  52. data/test/excelx/cell/test_base.rb +5 -0
  53. data/test/excelx/cell/test_datetime.rb +6 -6
  54. data/test/excelx/cell/test_empty.rb +11 -0
  55. data/test/excelx/cell/test_number.rb +9 -0
  56. data/test/excelx/cell/test_string.rb +20 -0
  57. data/test/excelx/cell/test_time.rb +4 -4
  58. data/test/excelx/test_coordinate.rb +51 -0
  59. data/test/formatters/test_csv.rb +19 -2
  60. data/test/formatters/test_xml.rb +13 -9
  61. data/test/helpers/test_accessing_files.rb +60 -0
  62. data/test/helpers/test_comments.rb +43 -0
  63. data/test/helpers/test_formulas.rb +9 -0
  64. data/test/helpers/test_labels.rb +103 -0
  65. data/test/helpers/test_sheets.rb +55 -0
  66. data/test/helpers/test_styles.rb +62 -0
  67. data/test/roo/test_base.rb +182 -0
  68. data/test/roo/test_csv.rb +37 -1
  69. data/test/roo/test_excelx.rb +157 -13
  70. data/test/roo/test_open_office.rb +196 -33
  71. data/test/test_helper.rb +66 -22
  72. data/test/test_roo.rb +32 -881
  73. metadata +32 -14
  74. data/.github/ISSUE_TEMPLATE +0 -10
  75. data/Gemfile_ruby2 +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 416c34282c125b08fbf46e19c398f6a1c07d269a
4
- data.tar.gz: 56a97234a7ddef8c1cd8aa0aa308949bc9f00d52
2
+ SHA256:
3
+ metadata.gz: 1e41bf12228c4a168e8df0a0cbf5b94eceaa89a1f5d174f3a3588a1a965d49f4
4
+ data.tar.gz: 69d749c2667ba4efbdcd7257550ba380d6ba0250633d439ae738673e6d2b5924
5
5
  SHA512:
6
- metadata.gz: 8d318576088c9fd269ffc3702c38aa00f9bca4bddf97f1125d0d289c9674b0bae4136dbf43b70f635bba8f597d14bd22894b739e5306ec0690aa244638a374dd
7
- data.tar.gz: a578beb4286e83f6a308aac442bc39bc829badc7ff35d9b0b6914550ccf587106cfbcc9974c51c957d8c16cf08dacabdf7383be1170f91ed207834035a302d8a
6
+ metadata.gz: 14c8d1e69b31e1be16c8845c686e596c108e9c4251e4d5ee75471dd8ea325c2aacdcf1fa4b10f6262cd840bd063de5b11432439a9bce1b82b4c350566981bb48
7
+ data.tar.gz: 7a01fefbe77485af0252384dcd20770e0c993c29b916be55736a86fcdc8de710d99709fb09d95f4d628a2b3819069c3aba5df28f3488a5f519753b854c82cd48
@@ -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!
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/.travis.yml CHANGED
@@ -1,17 +1,22 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.4
4
- - 2.3.1
5
- - 2.4.0
3
+ - 2.3
4
+ - 2.4
5
+ - 2.5
6
+ - 2.6
6
7
  - ruby-head
7
8
  - jruby-9.1.6.0
9
+ env:
10
+ - LONG_RUN=true
8
11
  matrix:
9
12
  include:
10
- - rvm: 2.0.0
11
- gemfile: Gemfile_ruby2
12
- - rvm: 2.1.8
13
- gemfile: Gemfile_ruby2
13
+ - rvm: 2.6
14
+ env: RUBYOPT=--jit LONG_RUN=true
15
+ - rvm: ruby-head
16
+ env: RUBYOPT=--jit LONG_RUN=true
14
17
  allow_failures:
15
18
  - rvm: ruby-head
19
+ - rvm: ruby-head
20
+ env: RUBYOPT=--jit LONG_RUN=true
16
21
  - rvm: jruby-9.1.6.0
17
22
  bundler_args: --without local_development
data/CHANGELOG.md CHANGED
@@ -1,4 +1,55 @@
1
- ## Unreleased
1
+ ## Unreleased
2
+
3
+ ## [2.8.3] 2020-02-03
4
+ ### Changed/Added
5
+ - 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)
6
+
7
+ ## [2.8.2] 2019-02-01
8
+ ### Changed/Added
9
+ - Support range cell for Excelx's links [490](https://github.com/roo-rb/roo/pull/490)
10
+ - Skip `extract_hyperlinks` if not required [488](https://github.com/roo-rb/roo/pull/488)
11
+
12
+ ### Fixed
13
+ - Fixed error for invalid link [492](https://github.com/roo-rb/roo/pull/492)
14
+
15
+ ## [2.8.1] 2019-01-21
16
+ ### Fixed
17
+ - Fixed error if excelx's cell have empty children [487](https://github.com/roo-rb/roo/pull/487)
18
+
19
+ ## [2.8.0] 2019-01-18
20
+ ### Fixed
21
+ - Fixed inconsistent column length for CSV [375](https://github.com/roo-rb/roo/pull/375)
22
+ - Fixed formatted_value with `%` for Excelx [416](https://github.com/roo-rb/roo/pull/416)
23
+ - 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)
24
+ - Accept both Transitional and Strict Type for Excelx's worksheets [441](https://github.com/roo-rb/roo/pull/441)
25
+ - Fixed ruby warnings [442](https://github.com/roo-rb/roo/pull/442) [476](https://github.com/roo-rb/roo/pull/476)
26
+ - Restore support for URL as file identifier for CSV [462](https://github.com/roo-rb/roo/pull/462)
27
+ - Fixed missing location for Excelx's links [482](https://github.com/roo-rb/roo/pull/482)
28
+
29
+ ### Changed / Added
30
+ - Drop support for ruby 2.2.x and lower
31
+ - Updated rubyzip version for fixing security issue. Now minimal version is 1.2.1
32
+ - Roo::Excelx::Coordinate now inherits Array [458](https://github.com/roo-rb/roo/pull/458)
33
+ - Improved Roo::HeaderRowNotFoundError exception's message [461](https://github.com/roo-rb/roo/pull/461)
34
+ - Added `empty_cell` option which by default disable allocation for Roo::Excelx::Cell::Empty [464](https://github.com/roo-rb/roo/pull/464)
35
+ - Added support for variable number of decimals for Excelx's formatted_value [387](https://github.com/roo-rb/roo/pull/387)
36
+ - Added `disable_html_injection` option to disable html injection for shared string in `Roo::Excelx` [392](https://github.com/roo-rb/roo/pull/392)
37
+ - Added image extraction for Excelx [414](https://github.com/roo-rb/roo/pull/414) [397](https://github.com/roo-rb/roo/pull/397)
38
+ - Added support for `1e6` as scientific notation for Excelx [433](https://github.com/roo-rb/roo/pull/433)
39
+ - Added support for Integer as 0 based index for Excelx's `sheet_for` [455](https://github.com/roo-rb/roo/pull/455)
40
+ - Extended `no_hyperlinks` option for non streaming Excelx methods [459](https://github.com/roo-rb/roo/pull/459)
41
+ - Added `empty_cell` option to disable Roo::Excelx::Cell::Empty allocation for Excelx [464](https://github.com/roo-rb/roo/pull/464)
42
+ - Added support for Integer with leading zero for Roo:Excelx [479](https://github.com/roo-rb/roo/pull/479)
43
+ - 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)
44
+
45
+ ### Deprecations
46
+ - Roo::Excelx::Sheet#present_cells is deprecated [454](https://github.com/roo-rb/roo/pull/454)
47
+ - Roo::Utils.split_coordinate is deprecated [458](https://github.com/roo-rb/roo/pull/458)
48
+ - Roo::Excelx::Cell::Base#link is deprecated [457](https://github.com/roo-rb/roo/pull/457)
49
+
50
+ ## [2.7.1] 2017-01-03
51
+ ### Fixed
52
+ - Fixed regression where a CSV's encoding was being ignored [372](https://github.com/roo-rb/roo/pull/372)
2
53
 
3
54
  ## [2.7.0] 2016-12-31
4
55
  ### Fixed
@@ -44,7 +95,7 @@
44
95
  - Discard hyperlinks lookups to allow streaming parsing without loading whole files
45
96
 
46
97
  ## [2.4.0] 2016-05-14
47
- ### Fixed
98
+ ### Fixed
48
99
  - Fixed opening spreadsheets with charts [315](https://github.com/roo-rb/roo/pull/315)
49
100
  - Fixed memory issues for Roo::Utils.number_to_letter [308](https://github.com/roo-rb/roo/pull/308)
50
101
  - Fixed Roo::Excelx::Cell::Number to recognize floating point numbers [306](https://github.com/roo-rb/roo/pull/306)
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
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Roo
2
2
 
3
- [![Build Status](https://img.shields.io/travis/roo-rb/roo.svg?style=flat-square)](https://travis-ci.org/roo-rb/roo) [![Code Climate](https://img.shields.io/codeclimate/github/roo-rb/roo.svg?style=flat-square)](https://codeclimate.com/github/roo-rb/roo) [![Coverage Status](https://img.shields.io/coveralls/roo-rb/roo.svg?style=flat-square)](https://coveralls.io/r/roo-rb/roo) [![Gem Version](https://img.shields.io/gem/v/roo.svg?style=flat-square)](https://rubygems.org/gems/roo)
3
+ [![Build Status](https://img.shields.io/travis/roo-rb/roo.svg?style=flat-square)](https://travis-ci.org/roo-rb/roo) [![Maintainability](https://api.codeclimate.com/v1/badges/be8d7bf34e2aeaf67c62/maintainability)](https://codeclimate.com/github/roo-rb/roo/maintainability) [![Coverage Status](https://img.shields.io/coveralls/roo-rb/roo.svg?style=flat-square)](https://coveralls.io/r/roo-rb/roo) [![Gem Version](https://img.shields.io/gem/v/roo.svg?style=flat-square)](https://rubygems.org/gems/roo)
4
4
 
5
5
  Roo implements read access for all common spreadsheet types. It can handle:
6
6
  * Excel 2007 - 2013 formats (xlsx, xlsm)
@@ -18,7 +18,7 @@ Install as a gem
18
18
  Or add it to your Gemfile
19
19
 
20
20
  ```ruby
21
- gem "roo", "~> 2.6.0"
21
+ gem "roo", "~> 2.8.0"
22
22
  ```
23
23
  ## Usage
24
24
 
@@ -89,13 +89,13 @@ sheet.last_column
89
89
  You can access the top-left cell in the following ways
90
90
 
91
91
  ```ruby
92
- s.cell(1,1)
93
- s.cell('A',1)
94
- s.cell(1,'A')
95
- s.a1
92
+ sheet.cell(1,1)
93
+ sheet.cell('A',1)
94
+ sheet.cell(1,'A')
95
+ sheet.a1
96
96
 
97
97
  # Access the second sheet's top-left cell.
98
- s.cell(1,'A',s.sheets[1])
98
+ sheet.cell(1,'A',sheet.sheets[1])
99
99
  ```
100
100
 
101
101
  #### Querying a spreadsheet
@@ -117,6 +117,12 @@ sheet.parse(id: /UPC|SKU/, qty: /ATS*\sATP\s*QTY\z/)
117
117
  # => [{:id => 727880013358, :qty => 12}, ...]
118
118
  ```
119
119
 
120
+ Use the ``:headers`` option to include the header row in the parsed content.
121
+
122
+ ```ruby
123
+ sheet.parse(headers: true)
124
+ ```
125
+
120
126
  Use the ``:header_search`` option to locate the header row and assign the header names.
121
127
 
122
128
  ```ruby
@@ -129,6 +135,16 @@ Use the ``:clean`` option to strip out control characters and surrounding white
129
135
  sheet.parse(clean: true)
130
136
  ```
131
137
 
138
+ #### Options
139
+
140
+ When opening the file you can add a hash of options.
141
+
142
+ ##### expand_merged_ranges
143
+ If you open a document with merged cells and do not want to end up with nil values for the rows after the first one.
144
+ ```ruby
145
+ xlsx = Roo::Excelx.new('./roo_error.xlsx', {:expand_merged_ranges => true})
146
+ ```
147
+
132
148
  ### Exporting spreadsheets
133
149
  Roo has the ability to export sheets using the following formats. It
134
150
  will only export the ``default_sheet``.
@@ -230,7 +246,7 @@ ods.formula('A', 2)
230
246
 
231
247
  ```ruby
232
248
  # Load a CSV file
233
- s = Roo::CSV.new("mycsv.csv")
249
+ csv = Roo::CSV.new("mycsv.csv")
234
250
  ```
235
251
 
236
252
  Because Roo uses the [standard CSV library](), you can use options available to that library to parse csv files. You can pass options using the ``csv_options`` key.
@@ -240,10 +256,10 @@ For instance, you can load tab-delimited files (``.tsv``), and you can use a par
240
256
 
241
257
  ```ruby
242
258
  # Load a tab-delimited csv
243
- s = Roo::CSV.new("mytsv.tsv", csv_options: {col_sep: "\t"})
259
+ csv = Roo::CSV.new("mytsv.tsv", csv_options: {col_sep: "\t"})
244
260
 
245
261
  # Load a csv with an explicit encoding
246
- s = Roo::CSV.new("mycsv.csv", csv_options: {encoding: Encoding::ISO_8859_1})
262
+ csv = Roo::CSV.new("mycsv.csv", csv_options: {encoding: Encoding::ISO_8859_1})
247
263
  ```
248
264
 
249
265
  ## Upgrading from Roo 1.13.x
@@ -266,12 +282,12 @@ Roo's public methods have stayed relatively consistent between 1.13.x and 2.0.0,
266
282
  Roo uses Minitest and RSpec. The best of both worlds! Run `bundle exec rake` to
267
283
  run the tests/examples.
268
284
 
285
+ You can run the tests/examples with Rspec like reporters by running
286
+ `USE_REPORTERS=true bundle exec rake`
287
+
269
288
  Roo also has a few tests that take a long time (5+ seconds). To run these, use
270
289
  `LONG_RUN=true bundle exec rake`
271
290
 
272
- When testing using Ruby 2.0 or 2.1, use this command:
273
- `BUNDLE_GEMFILE=Gemfile_ruby2 bundle exec rake`
274
-
275
291
  ### Issues
276
292
 
277
293
  If you find an issue, please create a gist and refer to it in an issue ([sample gist](https://gist.github.com/stevendaniels/98a05849036e99bb8b3c)). Here are some instructions for creating such a gist.