roo 2.3.1 → 2.3.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/README.md +4 -4
- data/lib/roo/base.rb +13 -1
- data/lib/roo/csv.rb +4 -0
- data/lib/roo/excelx.rb +1 -15
- data/lib/roo/excelx/cell.rb +1 -1
- data/lib/roo/open_office.rb +1 -4
- data/lib/roo/version.rb +1 -1
- data/spec/lib/roo/csv_spec.rb +7 -0
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2e51de2c40930cef415563182257a853b10978e
|
4
|
+
data.tar.gz: 3b17c8cfb99d1a16778e20289fea7ae9b1ed88a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8f57baddedd100e461fb350814c39dfe765a89a911f2cda0579281612cf37ca95fd9d0459f0572a2241d2e99871045dd5f4573d20364827f756b875a01484b4
|
7
|
+
data.tar.gz: 87012bc658fbc668b7e655de16b339034cf5887f3e0b3ceb468626e9203c22fd0d05e7d1bbea243525cb7c27e61e2af296f1804bc58def990dc4bf1f95463cd5
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
-
## [2.3.
|
1
|
+
## [2.3.2] 2016-02-18
|
2
|
+
### Fixed
|
3
|
+
- Handle url with long query params (ex. S3 secure url) [302](https://github.com/roo-rb/roo/pull/302)
|
4
|
+
- Allow streaming for Roo::CSV [297](https://github.com/roo-rb/roo/pull/297)
|
5
|
+
- Export Fixnums to Added csv [295](https://github.com/roo-rb/roo/pull/295)
|
6
|
+
- Removed various Ruby warnings [289](https://github.com/roo-rb/roo/pull/289)
|
7
|
+
- Fix incorrect example result in Readme.md [293](https://github.com/roo-rb/roo/pull/293)
|
8
|
+
|
9
|
+
## [2.3.1] - 2016-01-08
|
2
10
|
### Fixed
|
3
11
|
- Properly parse sci-notation number like 1E-3 [#288](https://github.com/roo-rb/roo/pull/288)
|
4
12
|
- Include all tests in default rake run [#283](https://github.com/roo-rb/roo/pull/283)
|
data/README.md
CHANGED
@@ -113,8 +113,8 @@ end
|
|
113
113
|
Use ``sheet.parse`` to return an array of rows. Column names can be a ``String`` or a ``Regexp``.
|
114
114
|
|
115
115
|
```ruby
|
116
|
-
sheet.parse(:
|
117
|
-
# => [{:
|
116
|
+
sheet.parse(id: /UPC|SKU/, qty: /ATS*\sATP\s*QTY\z/)
|
117
|
+
# => [{:id => 727880013358, :qty => 12}, ...]
|
118
118
|
```
|
119
119
|
|
120
120
|
Use the ``:header_search`` option to locate the header row and assign the header names.
|
@@ -126,7 +126,7 @@ sheet.parse(header_search: [/UPC*SKU/,/ATS*\sATP\s*QTY\z/])
|
|
126
126
|
Use the ``:clean`` option to strip out control characters and surrounding white space.
|
127
127
|
|
128
128
|
```ruby
|
129
|
-
sheet.parse(:
|
129
|
+
sheet.parse(clean: true)
|
130
130
|
```
|
131
131
|
|
132
132
|
### Exporting spreadsheets
|
@@ -209,7 +209,7 @@ Roo::OpenOffice has support for encrypted OpenOffice spreadsheets.
|
|
209
209
|
|
210
210
|
```ruby
|
211
211
|
# Load an encrypted OpenOffice Spreadsheet
|
212
|
-
ods = Roo::OpenOffice.new("myspreadsheet.ods", :
|
212
|
+
ods = Roo::OpenOffice.new("myspreadsheet.ods", password: "password")
|
213
213
|
```
|
214
214
|
|
215
215
|
``Roo::OpenOffice`` can access celltype, comments, font information, formulas and labels.
|
data/lib/roo/base.rb
CHANGED
@@ -535,6 +535,16 @@ class Roo::Base
|
|
535
535
|
initialize(@filename)
|
536
536
|
end
|
537
537
|
|
538
|
+
def find_basename(filename)
|
539
|
+
if uri?(filename)
|
540
|
+
require 'uri'
|
541
|
+
uri = URI::parse filename
|
542
|
+
File.basename(uri.path)
|
543
|
+
elsif !is_stream?(filename)
|
544
|
+
File.basename(filename)
|
545
|
+
end
|
546
|
+
end
|
547
|
+
|
538
548
|
def make_tmpdir(prefix = nil, root = nil, &block)
|
539
549
|
prefix = "#{TEMP_PREFIX}#{prefix}"
|
540
550
|
|
@@ -599,7 +609,7 @@ class Roo::Base
|
|
599
609
|
|
600
610
|
def download_uri(uri, tmpdir)
|
601
611
|
require 'open-uri'
|
602
|
-
tempfilename = File.join(tmpdir,
|
612
|
+
tempfilename = File.join(tmpdir, find_basename(uri))
|
603
613
|
begin
|
604
614
|
File.open(tempfilename, 'wb') do |file|
|
605
615
|
open(uri, 'User-Agent' => "Ruby/#{RUBY_VERSION}") do |net|
|
@@ -701,6 +711,8 @@ class Roo::Base
|
|
701
711
|
case onecell
|
702
712
|
when String
|
703
713
|
%("#{onecell.gsub('"', '""')}") unless onecell.empty?
|
714
|
+
when Fixnum
|
715
|
+
onecell.to_s
|
704
716
|
when Float
|
705
717
|
if onecell == onecell.to_i
|
706
718
|
onecell.to_i.to_s
|
data/lib/roo/csv.rb
CHANGED
@@ -60,6 +60,8 @@ class Roo::CSV < Roo::Base
|
|
60
60
|
tmp_filename = download_uri(filename, tmpdir)
|
61
61
|
CSV.foreach(tmp_filename, options, &block)
|
62
62
|
end
|
63
|
+
elsif is_stream?(filename_or_stream)
|
64
|
+
CSV.new(filename_or_stream, options).each(&block)
|
63
65
|
else
|
64
66
|
CSV.foreach(filename, options, &block)
|
65
67
|
end
|
@@ -117,4 +119,6 @@ class Roo::CSV < Roo::Base
|
|
117
119
|
|
118
120
|
@cleaned[sheet] = true
|
119
121
|
end
|
122
|
+
|
123
|
+
alias_method :filename_or_stream, :filename
|
120
124
|
end
|
data/lib/roo/excelx.rb
CHANGED
@@ -39,7 +39,7 @@ module Roo
|
|
39
39
|
|
40
40
|
unless is_stream?(filename_or_stream)
|
41
41
|
file_type_check(filename_or_stream, %w[.xlsx .xlsm], 'an Excel 2007', file_warning, packed)
|
42
|
-
basename =
|
42
|
+
basename = find_basename(filename_or_stream)
|
43
43
|
end
|
44
44
|
|
45
45
|
@tmpdir = make_tmpdir(basename, options[:tmpdir_root])
|
@@ -426,20 +426,6 @@ module Roo
|
|
426
426
|
end
|
427
427
|
end
|
428
428
|
|
429
|
-
# NOTE: To reduce memory, styles, shared_strings, workbook can be class
|
430
|
-
# variables in a Shared module.
|
431
|
-
def styles
|
432
|
-
@styles ||= Styles.new(File.join(@tmpdir, 'roo_styles.xml'))
|
433
|
-
end
|
434
|
-
|
435
|
-
def shared_strings
|
436
|
-
@shared_strings ||= SharedStrings.new(File.join(@tmpdir, 'roo_sharedStrings.xml'))
|
437
|
-
end
|
438
|
-
|
439
|
-
def workbook
|
440
|
-
@workbook ||= Workbook.new(File.join(@tmpdir, 'roo_workbook.xml'))
|
441
|
-
end
|
442
|
-
|
443
429
|
def safe_send(object, method, *args)
|
444
430
|
object.send(method, *args) if object && object.respond_to?(method)
|
445
431
|
end
|
data/lib/roo/excelx/cell.rb
CHANGED
@@ -11,7 +11,7 @@ require 'roo/excelx/cell/time'
|
|
11
11
|
module Roo
|
12
12
|
class Excelx
|
13
13
|
class Cell
|
14
|
-
attr_reader :
|
14
|
+
attr_reader :formula, :value, :excelx_type, :excelx_value, :style, :hyperlink, :coordinate
|
15
15
|
attr_writer :value
|
16
16
|
|
17
17
|
# DEPRECATED: Please use Cell.create_cell instead.
|
data/lib/roo/open_office.rb
CHANGED
@@ -19,7 +19,7 @@ module Roo
|
|
19
19
|
|
20
20
|
@only_visible_sheets = options[:only_visible_sheets]
|
21
21
|
file_type_check(filename, '.ods', 'an Roo::OpenOffice', file_warning, packed)
|
22
|
-
@tmpdir = make_tmpdir(
|
22
|
+
@tmpdir = make_tmpdir(find_basename(filename), options[:tmpdir_root])
|
23
23
|
@filename = local_filename(filename, @tmpdir, packed)
|
24
24
|
# TODO: @cells_read[:default] = false
|
25
25
|
open_oo_file(options)
|
@@ -285,7 +285,6 @@ module Roo
|
|
285
285
|
algorithm_node['manifest:initialisation-vector']
|
286
286
|
)
|
287
287
|
key_derivation_name = key_derivation_node['manifest:key-derivation-name']
|
288
|
-
key_size = key_derivation_node['manifest:key-size'].to_i
|
289
288
|
iteration_count = key_derivation_node['manifest:iteration-count'].to_i
|
290
289
|
salt = Base64.decode64(key_derivation_node['manifest:salt'])
|
291
290
|
|
@@ -294,10 +293,8 @@ module Roo
|
|
294
293
|
start_key_generation_node[
|
295
294
|
'manifest:start-key-generation-name'
|
296
295
|
]
|
297
|
-
key_generation_size = start_key_generation_node['manifest:key-size'].to_i
|
298
296
|
|
299
297
|
hashed_password = password
|
300
|
-
key = nil
|
301
298
|
|
302
299
|
if key_generation_name == 'http://www.w3.org/2000/09/xmldsig#sha256'
|
303
300
|
|
data/lib/roo/version.rb
CHANGED
data/spec/lib/roo/csv_spec.rb
CHANGED
@@ -10,6 +10,13 @@ describe Roo::CSV do
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
describe '.new with stream' do
|
14
|
+
let(:csv) { Roo::CSV.new(File.read(path)) }
|
15
|
+
it 'creates an instance' do
|
16
|
+
expect(csv).to be_a(Roo::CSV)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
13
20
|
describe '#parse' do
|
14
21
|
subject do
|
15
22
|
csv.parse(options)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Preymesser
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2016-
|
15
|
+
date: 2016-02-19 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: nokogiri
|
@@ -185,9 +185,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
185
|
version: '0'
|
186
186
|
requirements: []
|
187
187
|
rubyforge_project:
|
188
|
-
rubygems_version: 2.4.5
|
188
|
+
rubygems_version: 2.4.5.1
|
189
189
|
signing_key:
|
190
190
|
specification_version: 4
|
191
191
|
summary: Roo can access the contents of various spreadsheet files.
|
192
192
|
test_files: []
|
193
|
-
has_rdoc:
|