roo 1.9.1 → 1.9.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.
- data/History.txt +5 -0
- data/Rakefile +50 -1
- data/csv11159 +2888 -0
- data/csv9419 +3741 -0
- data/csv9957 +915 -0
- data/lib/roo.rb +1 -1
- data/lib/roo/generic_spreadsheet.rb +34 -18
- data/lib/roo/google.rb +1 -9
- data/test/ScienceStaff.xls +0 -0
- data/test/ScienceStaff_modified.xls +0 -0
- data/test/matrix.ods +0 -0
- data/test/matrix.xls +0 -0
- data/test/test_roo.rb +104 -49
- data/test/test_spreadsheet.rb +19 -0
- metadata +13 -67
- data/tasks/ann.rake +0 -80
- data/tasks/bones.rake +0 -20
- data/tasks/gem.rake +0 -201
- data/tasks/git.rake +0 -40
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -51
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -292
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/zentest.rake +0 -36
data/lib/roo.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
require 'matrix'
|
2
3
|
require 'rubygems'
|
3
4
|
require 'builder'
|
4
5
|
|
@@ -162,6 +163,21 @@ class GenericSpreadsheet
|
|
162
163
|
true
|
163
164
|
end
|
164
165
|
|
166
|
+
def to_matrix(sheet=nil)
|
167
|
+
sheet = @default_sheet unless sheet
|
168
|
+
arr = []
|
169
|
+
pos = 0
|
170
|
+
first_row.upto(last_row) do |row|
|
171
|
+
line = []
|
172
|
+
first_column.upto(last_column) do |col|
|
173
|
+
line << cell(row,col)
|
174
|
+
end
|
175
|
+
arr[pos] = line
|
176
|
+
pos += 1
|
177
|
+
end
|
178
|
+
Matrix.rows(arr)
|
179
|
+
end
|
180
|
+
|
165
181
|
# find a row either by row number or a condition
|
166
182
|
# Caution: this works only within the default sheet -> set default_sheet before you call this method
|
167
183
|
# (experimental. see examples in the test_roo.rb file)
|
@@ -373,16 +389,16 @@ class GenericSpreadsheet
|
|
373
389
|
else
|
374
390
|
return cell(row,col)
|
375
391
|
end
|
376
|
-
# else
|
377
|
-
# geht noch nicht, weil label unterhalb (in Openoffice) dieser Klasse
|
378
|
-
# es definiert ist
|
379
|
-
# p "Label #{m} angesprochen?"
|
380
|
-
# row,col,sheet = label('anton')
|
381
|
-
# # row,col,sheet = label(m)
|
382
|
-
# p "row: #{row}"
|
383
|
-
# p "col: #{col}"
|
384
|
-
# p "sheet: #{sheet}"
|
385
|
-
# return cell(row,col)
|
392
|
+
# else
|
393
|
+
# geht noch nicht, weil label unterhalb (in Openoffice) dieser Klasse
|
394
|
+
# es definiert ist
|
395
|
+
# p "Label #{m} angesprochen?"
|
396
|
+
# row,col,sheet = label('anton')
|
397
|
+
# # row,col,sheet = label(m)
|
398
|
+
# p "row: #{row}"
|
399
|
+
# p "col: #{col}"
|
400
|
+
# p "sheet: #{sheet}"
|
401
|
+
# return cell(row,col)
|
386
402
|
end
|
387
403
|
raise ArgumentError, "Method #{m} missing. Args: #{args}"
|
388
404
|
end
|
@@ -419,7 +435,7 @@ class GenericSpreadsheet
|
|
419
435
|
|
420
436
|
# konvertiert einen Key in der Form "12,45" (=row,column) in
|
421
437
|
# ein Array mit numerischen Werten ([12,45])
|
422
|
-
# Diese Methode ist eine temp. Loesung, um zu erforschen, ob der
|
438
|
+
# Diese Methode ist eine temp. Loesung, um zu erforschen, ob der
|
423
439
|
# Zugriff mit numerischen Keys schneller ist.
|
424
440
|
def key_to_num(str)
|
425
441
|
r,c = str.split(',')
|
@@ -431,7 +447,7 @@ class GenericSpreadsheet
|
|
431
447
|
# siehe: key_to_num
|
432
448
|
def key_to_string(arr)
|
433
449
|
"#{arr[0]},#{arr[1]}"
|
434
|
-
end
|
450
|
+
end
|
435
451
|
|
436
452
|
private
|
437
453
|
|
@@ -489,8 +505,8 @@ class GenericSpreadsheet
|
|
489
505
|
require 'open-uri'
|
490
506
|
response = ''
|
491
507
|
begin
|
492
|
-
open(uri, "User-Agent" => "Ruby/#{RUBY_VERSION}") { |net|
|
493
|
-
response = net.read
|
508
|
+
open(uri, "User-Agent" => "Ruby/#{RUBY_VERSION}") { |net|
|
509
|
+
response = net.read
|
494
510
|
tempfilename = File.join(@tmpdir, File.basename(uri))
|
495
511
|
f = File.open(tempfilename,"wb")
|
496
512
|
f.write(response)
|
@@ -605,8 +621,8 @@ class GenericSpreadsheet
|
|
605
621
|
if onecell == ""
|
606
622
|
str << ''
|
607
623
|
else
|
608
|
-
onecell.gsub
|
609
|
-
str << ('"'+
|
624
|
+
one = onecell.gsub(/"/,'""')
|
625
|
+
str << ('"'+one+'"')
|
610
626
|
end
|
611
627
|
when :float,:percentage
|
612
628
|
if onecell == onecell.to_i
|
@@ -619,8 +635,8 @@ class GenericSpreadsheet
|
|
619
635
|
if onecell == ""
|
620
636
|
str << ''
|
621
637
|
else
|
622
|
-
onecell.gsub
|
623
|
-
str << '"'+
|
638
|
+
one = onecell.gsub(/"/,'""')
|
639
|
+
str << '"'+one+'"'
|
624
640
|
end
|
625
641
|
elsif onecell.class == Float
|
626
642
|
if onecell == onecell.to_i
|
data/lib/roo/google.rb
CHANGED
@@ -95,8 +95,6 @@ class Google < GenericSpreadsheet
|
|
95
95
|
value = @cell[sheet]["#{row},#{col}"]
|
96
96
|
if celltype(row,col,sheet) == :date
|
97
97
|
begin
|
98
|
-
$log.debug "cell() value: #{value} @date_format: #{@date_format}"
|
99
|
-
$log.debug "returns #{Date.strptime(value, @date_format).inspect}"
|
100
98
|
return Date.strptime(value, @date_format)
|
101
99
|
rescue ArgumentError
|
102
100
|
raise "Invalid Date #{sheet}[#{row},#{col}] #{value} using format '{@date_format}'"
|
@@ -252,10 +250,7 @@ class Google < GenericSpreadsheet
|
|
252
250
|
sheet = @default_sheet unless sheet
|
253
251
|
raise RangeError, "illegal sheet <#{sheet}>" unless sheets.index(sheet)
|
254
252
|
sheet_no = sheets.index(sheet)
|
255
|
-
$log.debug "sheet: #{sheet}"
|
256
|
-
$log.debug "sheet_no: #{sheet_no}"
|
257
253
|
ws = @worksheets[sheet_no]
|
258
|
-
$log.debug "#{ws.inspect}"
|
259
254
|
for row in 1..ws.num_rows
|
260
255
|
for col in 1..ws.num_cols
|
261
256
|
key = "#{row},#{col}"
|
@@ -263,9 +258,6 @@ class Google < GenericSpreadsheet
|
|
263
258
|
numeric_value = ws[row,col] #item['numericvalue'] || item['numericValue']
|
264
259
|
(value, value_type) = determine_datatype(string_value, numeric_value)
|
265
260
|
@cell[sheet][key] = value unless value == "" or value == nil
|
266
|
-
if value_type == :date
|
267
|
-
$log.debug "date erkannt. value: #{value}"
|
268
|
-
end
|
269
261
|
@cell_type[sheet][key] = value_type
|
270
262
|
@formula[sheet] = {} unless @formula[sheet]
|
271
263
|
@formula[sheet][key] = string_value if value_type == :formula
|
@@ -304,7 +296,7 @@ class Google < GenericSpreadsheet
|
|
304
296
|
ty = :string
|
305
297
|
end
|
306
298
|
end
|
307
|
-
|
299
|
+
#$log.debug "val: #{val} ty: #{ty}" if ty == :date
|
308
300
|
return val, ty
|
309
301
|
end
|
310
302
|
|
Binary file
|
Binary file
|
data/test/matrix.ods
ADDED
Binary file
|
data/test/matrix.xls
ADDED
Binary file
|
data/test/test_roo.rb
CHANGED
@@ -138,10 +138,10 @@ class TestRoo < Test::Unit::TestCase
|
|
138
138
|
|
139
139
|
OPENOFFICE = true # do Openoffice-Spreadsheet Tests?
|
140
140
|
EXCEL = true # do Excel Tests?
|
141
|
-
GOOGLE =
|
141
|
+
GOOGLE = false # do Google-Spreadsheet Tests?
|
142
142
|
EXCELX = true # do Excel-X Tests? (.xlsx-files)
|
143
143
|
|
144
|
-
ONLINE =
|
144
|
+
ONLINE = false
|
145
145
|
LONG_RUN = true
|
146
146
|
GLOBAL_TIMEOUT = 48.minutes #*60 # 2*12*60 # seconds
|
147
147
|
|
@@ -158,6 +158,18 @@ class TestRoo < Test::Unit::TestCase
|
|
158
158
|
# call a block of code for each spreadsheet type
|
159
159
|
# and yield a reference to the roo object
|
160
160
|
def with_each_spreadsheet(options)
|
161
|
+
# test if the spreadsheet type is valid :nodoc
|
162
|
+
if options[:format]
|
163
|
+
if options[:format].is_a? Symbol
|
164
|
+
options[:format] = [options[:format]]
|
165
|
+
end
|
166
|
+
options[:format].each do |formatname|
|
167
|
+
unless [:openoffice,:excel,:excelx,:google].include?(formatname)
|
168
|
+
raise "invalid spreadsheet type #{formatname}"
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
# end test spreadsheet type :nodoc
|
161
173
|
options[:format] ||= [:excel, :excelx, :openoffice, :google]
|
162
174
|
options[:format] = [options[:format]] if options[:format].class == Symbol
|
163
175
|
yield Roo::Spreadsheet.open(File.join(TESTDIR, options[:name] + '.xls')) if EXCEL && options[:format].include?(:excel)
|
@@ -781,7 +793,8 @@ class TestRoo < Test::Unit::TestCase
|
|
781
793
|
if LONG_RUN
|
782
794
|
with_each_spreadsheet(:name=>'Bibelbund', :format=>[:openoffice,
|
783
795
|
:excel,
|
784
|
-
:excelx
|
796
|
+
:excelx
|
797
|
+
]) do |oo|
|
785
798
|
assert_nothing_raised(Timeout::Error) {
|
786
799
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
787
800
|
File.delete_if_exist("/tmp/Bibelbund.csv")
|
@@ -798,6 +811,20 @@ class TestRoo < Test::Unit::TestCase
|
|
798
811
|
end
|
799
812
|
end
|
800
813
|
|
814
|
+
def test_bug_quotes_excelx
|
815
|
+
with_each_spreadsheet(:name=>'Bibelbund', :format=>[:openoffice,
|
816
|
+
:excel,
|
817
|
+
:excelx]) do |oo|
|
818
|
+
oo.default_sheet = oo.sheets.first
|
819
|
+
assert_equal 'Einflüsse der neuen Theologie in "de gereformeerde Kerken van Nederland"',
|
820
|
+
oo.cell('a',76)
|
821
|
+
dummy = oo.to_csv("csv#{$$}")
|
822
|
+
assert_equal 'Einflüsse der neuen Theologie in "de gereformeerde Kerken van Nederland"',
|
823
|
+
oo.cell('a',78)
|
824
|
+
File.delete_if_exist("csv#{$$}")
|
825
|
+
end
|
826
|
+
end
|
827
|
+
|
801
828
|
def test_to_csv
|
802
829
|
with_each_spreadsheet(:name=>'numbers1') do |oo|
|
803
830
|
master = "#{TESTDIR}/numbers1.csv"
|
@@ -1420,9 +1447,9 @@ Sheet 3:
|
|
1420
1447
|
with_each_spreadsheet(:name=>'numbers1', :encoding => 'utf8') do |oo|
|
1421
1448
|
assert_nothing_raised {oo.to_xml}
|
1422
1449
|
sheetname = oo.sheets.first
|
1423
|
-
# doc = XML::Parser.string(oo.to_xml).parse
|
1424
|
-
doc = Nokogiri::XML(oo.to_xml)
|
1425
|
-
# doc.root.each_element {|xml_sheet|
|
1450
|
+
# doc = XML::Parser.string(oo.to_xml).parse
|
1451
|
+
doc = Nokogiri::XML(oo.to_xml)
|
1452
|
+
# doc.root.each_element {|xml_sheet|
|
1426
1453
|
doc.root.each {|xml_sheet|
|
1427
1454
|
all_cells = init_all_cells(oo, sheetname)
|
1428
1455
|
x = 0
|
@@ -1846,20 +1873,21 @@ doc = Nokogiri::XML(oo.to_xml)
|
|
1846
1873
|
end
|
1847
1874
|
|
1848
1875
|
def test_cell_methods
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1852
|
-
|
1853
|
-
|
1854
|
-
|
1855
|
-
|
1856
|
-
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
1860
|
-
|
1876
|
+
after Date.new(2010,1,30) do
|
1877
|
+
with_each_spreadsheet(:name=>'numbers1') do |oo|
|
1878
|
+
assert_equal 10, oo.a4 # cell(4,'A')
|
1879
|
+
assert_equal 11, oo.b4 # cell(4,'B')
|
1880
|
+
assert_equal 12, oo.c4 # cell(4,'C')
|
1881
|
+
assert_equal 13, oo.d4 # cell(4,'D')
|
1882
|
+
assert_equal 14, oo.e4 # cell(4,'E')
|
1883
|
+
assert_equal 'ABC', oo.c6('Sheet5')
|
1884
|
+
|
1885
|
+
assert_raises(ArgumentError) {
|
1886
|
+
# a42a is not a valid cell name, should raise ArgumentError
|
1887
|
+
assert_equal 9999, oo.a42a
|
1888
|
+
}
|
1889
|
+
end
|
1861
1890
|
end
|
1862
|
-
|
1863
1891
|
end
|
1864
1892
|
|
1865
1893
|
|
@@ -1890,42 +1918,69 @@ doc = Nokogiri::XML(oo.to_xml)
|
|
1890
1918
|
end
|
1891
1919
|
|
1892
1920
|
def test_labeled_cells
|
1893
|
-
|
1894
|
-
|
1895
|
-
|
1896
|
-
|
1897
|
-
|
1898
|
-
|
1899
|
-
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1921
|
+
after Date.new(2010,1,25) do
|
1922
|
+
# TODO: more spreadsheet types
|
1923
|
+
with_each_spreadsheet(:name=>'named_cells', :format=>:openoffice) do |oo|
|
1924
|
+
oo.default_sheet = oo.sheets.first
|
1925
|
+
begin
|
1926
|
+
row,col = oo.label('anton')
|
1927
|
+
rescue ArgumentError
|
1928
|
+
puts "labels error at #{oo.class}"
|
1929
|
+
raise
|
1930
|
+
end
|
1931
|
+
assert_equal 5, row
|
1932
|
+
assert_equal 3, col
|
1904
1933
|
|
1905
|
-
|
1906
|
-
|
1934
|
+
row,col = oo.label('anton')
|
1935
|
+
assert_equal 'Anton', oo.cell(row,col)
|
1907
1936
|
|
1908
|
-
|
1909
|
-
|
1937
|
+
row,col = oo.label('berta')
|
1938
|
+
assert_equal 'Bertha', oo.cell(row,col)
|
1910
1939
|
|
1911
|
-
|
1912
|
-
|
1940
|
+
row,col = oo.label('caesar')
|
1941
|
+
assert_equal 'Cäsar', oo.cell(row,col)
|
1913
1942
|
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1917
|
-
|
1943
|
+
# a not defined label:
|
1944
|
+
row,col = oo.label('never')
|
1945
|
+
assert_nil row
|
1946
|
+
assert_nil col
|
1918
1947
|
|
1919
|
-
|
1920
|
-
|
1921
|
-
|
1922
|
-
|
1923
|
-
|
1924
|
-
|
1925
|
-
|
1926
|
-
|
1948
|
+
row,col,sheet = oo.label('anton')
|
1949
|
+
assert_equal 5, row
|
1950
|
+
assert_equal 3, col
|
1951
|
+
assert_equal "Sheet1", sheet
|
1952
|
+
#
|
1953
|
+
# assert_equal "Anton", oo.label('anton')
|
1954
|
+
after Date.new(2009,12,12) do
|
1955
|
+
assert_equal "Anton", oo.anton
|
1956
|
+
end
|
1927
1957
|
end
|
1928
1958
|
end
|
1929
1959
|
end
|
1930
|
-
|
1960
|
+
|
1961
|
+
|
1962
|
+
def test_bug_excel_last_row_255
|
1963
|
+
after Date.new(2010,2,20) do
|
1964
|
+
oo = Excel.new(File.join('test','ScienceStaff.xls'))
|
1965
|
+
oo.default_sheet = oo.sheets.first
|
1966
|
+
assert_equal "COMSCI", oo.cell(255,1)
|
1967
|
+
assert_equal "lala", oo.cell(256,1)
|
1968
|
+
assert_equal 1537, oo.last_row
|
1969
|
+
end
|
1970
|
+
end
|
1971
|
+
|
1972
|
+
def test_bug_excel_last_row_255_modified
|
1973
|
+
oo = Excel.new(File.join('test','ScienceStaff_modified.xls'))
|
1974
|
+
oo.default_sheet = oo.sheets.first
|
1975
|
+
assert_equal 1537, oo.last_row
|
1976
|
+
end
|
1977
|
+
require 'matrix'
|
1978
|
+
def test_matrix
|
1979
|
+
with_each_spreadsheet(:name => 'matrix', :format => [:openoffice, :excel, :google]) do |oo|
|
1980
|
+
oo.default_sheet = oo.sheets.first
|
1981
|
+
assert_equal Matrix[ [1.0, 2.0, 3.0],
|
1982
|
+
[4.0, 5.0, 6.0],
|
1983
|
+
[7.0, 8.0, 9.0] ], oo.to_matrix
|
1984
|
+
end
|
1985
|
+
end
|
1931
1986
|
end # class
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'spreadsheet'
|
3
|
+
|
4
|
+
class TestSpreadsheet < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_bug_last_row_255
|
7
|
+
after Date.new(2010,2,15) do
|
8
|
+
Spreadsheet.client_encoding = 'UTF-8'
|
9
|
+
book = Spreadsheet.open(File.join('test','ScienceStaff.xls'))
|
10
|
+
sheet1 = book.worksheet 0
|
11
|
+
count = 0
|
12
|
+
sheet1.each do |row|
|
13
|
+
count += 1 # do something interesting with a row
|
14
|
+
end
|
15
|
+
puts "#{count} rows found"
|
16
|
+
assert_equal 1537, count
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
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: 1.9.
|
4
|
+
version: 1.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Preymesser
|
@@ -9,59 +9,9 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-18 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: spreadsheet
|
17
|
-
type: :runtime
|
18
|
-
version_requirement:
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.6.4
|
24
|
-
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: nokogiri
|
27
|
-
type: :runtime
|
28
|
-
version_requirement:
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.1
|
34
|
-
version:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: builder
|
37
|
-
type: :runtime
|
38
|
-
version_requirement:
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 2.1.2
|
44
|
-
version:
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: gimite-google-spreadsheet-ruby
|
47
|
-
type: :runtime
|
48
|
-
version_requirement:
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.0.5
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: febeling-rubyzip
|
57
|
-
type: :runtime
|
58
|
-
version_requirement:
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - ">="
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: 0.9.2
|
64
|
-
version:
|
65
15
|
- !ruby/object:Gem::Dependency
|
66
16
|
name: bones
|
67
17
|
type: :development
|
@@ -70,7 +20,7 @@ dependencies:
|
|
70
20
|
requirements:
|
71
21
|
- - ">="
|
72
22
|
- !ruby/object:Gem::Version
|
73
|
-
version: 2.
|
23
|
+
version: 3.2.0
|
74
24
|
version:
|
75
25
|
description: |-
|
76
26
|
Roo can access the contents of various spreadsheet files. It can handle
|
@@ -95,6 +45,9 @@ files:
|
|
95
45
|
- README.txt
|
96
46
|
- Rakefile
|
97
47
|
- bin/roo
|
48
|
+
- csv11159
|
49
|
+
- csv9419
|
50
|
+
- csv9957
|
98
51
|
- lib/roo.rb
|
99
52
|
- lib/roo/excel.rb
|
100
53
|
- lib/roo/excelx.rb
|
@@ -103,19 +56,6 @@ files:
|
|
103
56
|
- lib/roo/openoffice.rb
|
104
57
|
- lib/roo/roo_rails_helper.rb
|
105
58
|
- lib/roo/version.rb
|
106
|
-
- tasks/ann.rake
|
107
|
-
- tasks/bones.rake
|
108
|
-
- tasks/gem.rake
|
109
|
-
- tasks/git.rake
|
110
|
-
- tasks/notes.rake
|
111
|
-
- tasks/post_load.rake
|
112
|
-
- tasks/rdoc.rake
|
113
|
-
- tasks/rubyforge.rake
|
114
|
-
- tasks/setup.rb
|
115
|
-
- tasks/spec.rake
|
116
|
-
- tasks/svn.rake
|
117
|
-
- tasks/test.rake
|
118
|
-
- tasks/zentest.rake
|
119
59
|
- test/1900_base.xls
|
120
60
|
- test/1904_base.xls
|
121
61
|
- test/Bibelbund.csv
|
@@ -123,6 +63,8 @@ files:
|
|
123
63
|
- test/Bibelbund.xls
|
124
64
|
- test/Bibelbund.xlsx
|
125
65
|
- test/Bibelbund1.ods
|
66
|
+
- test/ScienceStaff.xls
|
67
|
+
- test/ScienceStaff_modified.xls
|
126
68
|
- test/bbu.ods
|
127
69
|
- test/bbu.xls
|
128
70
|
- test/bbu.xlsx
|
@@ -146,6 +88,8 @@ files:
|
|
146
88
|
- test/formula.xls
|
147
89
|
- test/formula.xlsx
|
148
90
|
- test/html-escape.ods
|
91
|
+
- test/matrix.ods
|
92
|
+
- test/matrix.xls
|
149
93
|
- test/named_cells.ods
|
150
94
|
- test/no_spreadsheet_file.txt
|
151
95
|
- test/numbers1.csv
|
@@ -170,6 +114,7 @@ files:
|
|
170
114
|
- test/style.xlsx
|
171
115
|
- test/test_helper.rb
|
172
116
|
- test/test_roo.rb
|
117
|
+
- test/test_spreadsheet.rb
|
173
118
|
- test/time-test.csv
|
174
119
|
- test/time-test.ods
|
175
120
|
- test/time-test.xls
|
@@ -207,5 +152,6 @@ signing_key:
|
|
207
152
|
specification_version: 3
|
208
153
|
summary: Roo can access the contents of various spreadsheet files
|
209
154
|
test_files:
|
210
|
-
- test/test_helper.rb
|
211
155
|
- test/test_roo.rb
|
156
|
+
- test/test_helper.rb
|
157
|
+
- test/test_spreadsheet.rb
|