roo 1.9.1 → 1.9.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|