roo 1.2.2 → 1.2.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.
- data/History.txt +8 -1
- data/Manifest.txt +1 -0
- data/lib/roo/excel.rb +6 -1
- data/lib/roo/generic_spreadsheet.rb +44 -9
- data/lib/roo/version.rb +1 -1
- data/test/datetime.xlsx +0 -0
- data/test/test_roo.rb +153 -117
- data/website/index.html +4 -2
- data/website/index.txt +1 -1
- metadata +3 -2
data/History.txt
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
-
== 1.2.
|
1
|
+
== 1.2.3 2009-01-04
|
2
|
+
|
3
|
+
* bugfix
|
4
|
+
* fixed encoding in #cell at exported Google-spreadsheets (.xls)
|
5
|
+
|
6
|
+
== 1.2.2 2008-12-14
|
7
|
+
|
2
8
|
* 2 enhancements
|
3
9
|
* added celltype :datetime in Excelx
|
4
10
|
* added celltype :datetime in Google
|
5
11
|
|
6
12
|
== 1.2.1 2008-11-13
|
13
|
+
|
7
14
|
* 1 enhancement
|
8
15
|
* added celltype :datetime in Openoffice and Excel
|
9
16
|
|
data/Manifest.txt
CHANGED
data/lib/roo/excel.rb
CHANGED
@@ -91,7 +91,11 @@ class Excel < GenericSpreadsheet
|
|
91
91
|
yyyy,mm,dd = @cell[sheet][[row,col]].split('-')
|
92
92
|
return Date.new(yyyy.to_i,mm.to_i,dd.to_i)
|
93
93
|
end
|
94
|
-
|
94
|
+
if celltype(row,col,sheet) == :string
|
95
|
+
return platform_specific_iconv(@cell[sheet][[row,col]])
|
96
|
+
else
|
97
|
+
return @cell[sheet][[row,col]]
|
98
|
+
end
|
95
99
|
end
|
96
100
|
|
97
101
|
# returns the type of a cell:
|
@@ -265,6 +269,7 @@ class Excel < GenericSpreadsheet
|
|
265
269
|
|
266
270
|
def every_second_null?(str)
|
267
271
|
result = true
|
272
|
+
return false if str.length < 2
|
268
273
|
0.upto(str.length/2-1) do |i|
|
269
274
|
c = str[i*2,1]
|
270
275
|
n = str[i*2+1,1]
|
@@ -434,21 +434,56 @@ class GenericSpreadsheet
|
|
434
434
|
return row,col
|
435
435
|
end
|
436
436
|
|
437
|
+
# def open_from_uri(uri)
|
438
|
+
# require 'open-uri' ;
|
439
|
+
# tempfilename = File.join(@tmpdir, File.basename(uri))
|
440
|
+
# f = File.open(tempfilename,"wb")
|
441
|
+
# begin
|
442
|
+
# open(uri) do |net|
|
443
|
+
# f.write(net.read)
|
444
|
+
# end
|
445
|
+
# rescue
|
446
|
+
# raise "could not open #{uri}"
|
447
|
+
# end
|
448
|
+
# f.close
|
449
|
+
# File.join(@tmpdir, File.basename(uri))
|
450
|
+
# end
|
451
|
+
|
452
|
+
# OpenURI::HTTPError
|
453
|
+
# def open_from_uri(uri)
|
454
|
+
# require 'open-uri'
|
455
|
+
# #existiert URL?
|
456
|
+
# r = Net::HTTP.get_response(URI.parse(uri))
|
457
|
+
# raise "URL nicht verfuegbar" unless r.is_a? Net::HTTPOK
|
458
|
+
# tempfilename = File.join(@tmpdir, File.basename(uri))
|
459
|
+
# f = File.open(tempfilename,"wb")
|
460
|
+
# open(uri) do |net|
|
461
|
+
# f.write(net.read)
|
462
|
+
# end
|
463
|
+
# # rescue
|
464
|
+
# # raise "could not open #{uri}"
|
465
|
+
# # end
|
466
|
+
# f.close
|
467
|
+
# File.join(@tmpdir, File.basename(uri))
|
468
|
+
# end
|
469
|
+
|
437
470
|
def open_from_uri(uri)
|
438
|
-
require 'open-uri'
|
439
|
-
|
440
|
-
f = File.open(tempfilename,"wb")
|
471
|
+
require 'open-uri'
|
472
|
+
response = ''
|
441
473
|
begin
|
442
|
-
open(uri)
|
443
|
-
|
444
|
-
|
445
|
-
|
474
|
+
open(uri, "User-Agent" => "Ruby/#{RUBY_VERSION}") { |net|
|
475
|
+
response = net.read
|
476
|
+
tempfilename = File.join(@tmpdir, File.basename(uri))
|
477
|
+
f = File.open(tempfilename,"wb")
|
478
|
+
f.write(response)
|
479
|
+
f.close
|
480
|
+
}
|
481
|
+
rescue OpenURI::HTTPError
|
446
482
|
raise "could not open #{uri}"
|
447
483
|
end
|
448
|
-
f.close
|
449
484
|
File.join(@tmpdir, File.basename(uri))
|
450
485
|
end
|
451
|
-
|
486
|
+
|
452
487
|
def open_from_stream(stream)
|
453
488
|
tempfilename = File.join(@tmpdir, "spreadsheet")
|
454
489
|
f = File.open(tempfilename,"wb")
|
data/lib/roo/version.rb
CHANGED
data/test/datetime.xlsx
ADDED
Binary file
|
data/test/test_roo.rb
CHANGED
@@ -113,7 +113,7 @@ class TestRoo < Test::Unit::TestCase
|
|
113
113
|
EXCELX = true # do Excel-X Tests? (.xlsx-files)
|
114
114
|
|
115
115
|
OPENOFFICEWRITE = false # experimental: write access with OO-Documents
|
116
|
-
ONLINE =
|
116
|
+
ONLINE = true
|
117
117
|
LONG_RUN = false
|
118
118
|
GLOBAL_TIMEOUT = 48.minutes #*60 # 2*12*60 # seconds
|
119
119
|
|
@@ -1972,7 +1972,7 @@ class TestRoo < Test::Unit::TestCase
|
|
1972
1972
|
end
|
1973
1973
|
|
1974
1974
|
def test_excel_zipped
|
1975
|
-
after Date.new(
|
1975
|
+
after Date.new(2009,1,10) do
|
1976
1976
|
if EXCEL
|
1977
1977
|
$log.level = Logger::DEBUG
|
1978
1978
|
excel = Excel.new(File.join("test","bode-v1.xls.zip"), :zip)
|
@@ -3398,23 +3398,23 @@ class TestRoo < Test::Unit::TestCase
|
|
3398
3398
|
end
|
3399
3399
|
|
3400
3400
|
def test_should_raise_file_not_found_error
|
3401
|
-
|
3402
|
-
|
3403
|
-
|
3404
|
-
|
3405
|
-
|
3406
|
-
|
3407
|
-
|
3408
|
-
|
3409
|
-
|
3410
|
-
|
3411
|
-
|
3412
|
-
|
3413
|
-
|
3414
|
-
|
3415
|
-
|
3416
|
-
|
3417
|
-
|
3401
|
+
if OPENOFFICE
|
3402
|
+
assert_raise(IOError) {
|
3403
|
+
oo = Openoffice.new(File.join('testnichtvorhanden','Bibelbund.ods'))
|
3404
|
+
}
|
3405
|
+
end
|
3406
|
+
if EXCEL
|
3407
|
+
assert_raise(IOError) {
|
3408
|
+
oo = Excel.new(File.join('testnichtvorhanden','Bibelbund.xls'))
|
3409
|
+
}
|
3410
|
+
end
|
3411
|
+
if EXCELX
|
3412
|
+
assert_raise(IOError) {
|
3413
|
+
oo = Excelx.new(File.join('testnichtvorhanden','Bibelbund.xlsx'))
|
3414
|
+
}
|
3415
|
+
end
|
3416
|
+
if GOOGLE
|
3417
|
+
after Date.new(2009,1,15) do
|
3418
3418
|
assert_raise(IOError) {
|
3419
3419
|
# oo = Google.new(key_of('testnichtvorhanden'+'Bibelbund.ods'))
|
3420
3420
|
oo = Google.new('testnichtvorhanden')
|
@@ -3422,7 +3422,7 @@ class TestRoo < Test::Unit::TestCase
|
|
3422
3422
|
end
|
3423
3423
|
end
|
3424
3424
|
end
|
3425
|
-
|
3425
|
+
|
3426
3426
|
def test_bug_cell_no_default_sheet
|
3427
3427
|
if GOOGLE
|
3428
3428
|
oo = Google.new(key_of("numbers1"))
|
@@ -3876,20 +3876,20 @@ Sheet 3:
|
|
3876
3876
|
end
|
3877
3877
|
|
3878
3878
|
def test_bug_row_column_fixnum_float
|
3879
|
-
|
3880
|
-
|
3881
|
-
|
3882
|
-
|
3883
|
-
|
3884
|
-
|
3885
|
-
|
3886
|
-
|
3879
|
+
if EXCEL
|
3880
|
+
ex = Excel.new(File.join('test','bug-row-column-fixnum-float.xls'))
|
3881
|
+
ex.default_sheet = ex.sheets.first
|
3882
|
+
assert_equal 42.5, ex.cell('b',2)
|
3883
|
+
assert_equal 43 , ex.cell('c',2)
|
3884
|
+
assert_equal ['hij',42.5, 43], ex.row(2)
|
3885
|
+
assert_equal ['def',42.5, 'nop'], ex.column(2)
|
3886
|
+
end
|
3887
3887
|
|
3888
3888
|
end
|
3889
3889
|
|
3890
3890
|
def test_bug_c2
|
3891
3891
|
if EXCEL
|
3892
|
-
after Date.new(
|
3892
|
+
after Date.new(2009,1,6) do
|
3893
3893
|
local_only do
|
3894
3894
|
expected = ['Supermodel X','T6','Shaun White','Jeremy','Custom',
|
3895
3895
|
'Warhol','Twin','Malolo','Supermodel','Air','Elite',
|
@@ -3914,7 +3914,7 @@ Sheet 3:
|
|
3914
3914
|
end
|
3915
3915
|
|
3916
3916
|
def test_bug_c2_parseexcel
|
3917
|
-
after Date.new(
|
3917
|
+
after Date.new(2009,1,10) do
|
3918
3918
|
local_only do
|
3919
3919
|
#-- this is OK
|
3920
3920
|
@workbook = Spreadsheet::ParseExcel.parse(File.join('test',"problem.xls"))
|
@@ -3993,7 +3993,7 @@ Sheet 3:
|
|
3993
3993
|
|
3994
3994
|
def test_compare_csv_excelx_excel
|
3995
3995
|
if EXCELX
|
3996
|
-
after Date.new(2008,12,
|
3996
|
+
after Date.new(2008,12,30) do
|
3997
3997
|
# parseexcel bug
|
3998
3998
|
local_only do
|
3999
3999
|
s1 = Excel.new(File.join("test","problem.xls"))
|
@@ -4015,7 +4015,7 @@ Sheet 3:
|
|
4015
4015
|
end
|
4016
4016
|
|
4017
4017
|
def test_problemx_csv_imported
|
4018
|
-
after Date.new(
|
4018
|
+
after Date.new(2009,1,6) do
|
4019
4019
|
if EXCEL
|
4020
4020
|
local_only do
|
4021
4021
|
# wieder eingelesene CSV-Datei aus obigem Test
|
@@ -4164,24 +4164,24 @@ Sheet 3:
|
|
4164
4164
|
end
|
4165
4165
|
|
4166
4166
|
def test_open_from_uri
|
4167
|
-
|
4168
|
-
|
4169
|
-
|
4170
|
-
|
4171
|
-
|
4172
|
-
end
|
4173
|
-
if EXCEL
|
4174
|
-
assert_raises(RuntimeError) {
|
4175
|
-
oo = Excel.new("http://gibbsnichtdomainxxxxx.com/file.xls")
|
4176
|
-
}
|
4177
|
-
end
|
4178
|
-
if EXCELX
|
4179
|
-
assert_raises(RuntimeError) {
|
4180
|
-
oo = Excelx.new("http://gibbsnichtdomainxxxxx.com/file.xlsx")
|
4181
|
-
}
|
4182
|
-
end
|
4167
|
+
if ONLINE
|
4168
|
+
if OPENOFFICE
|
4169
|
+
assert_raises(RuntimeError) {
|
4170
|
+
oo = Openoffice.new("http://gibbsnichtdomainxxxxx.com/file.ods")
|
4171
|
+
}
|
4183
4172
|
end
|
4173
|
+
if EXCEL
|
4174
|
+
assert_raises(RuntimeError) {
|
4175
|
+
oo = Excel.new("http://gibbsnichtdomainxxxxx.com/file.xls")
|
4176
|
+
}
|
4177
|
+
end
|
4178
|
+
if EXCELX
|
4179
|
+
assert_raises(RuntimeError) {
|
4180
|
+
oo = Excelx.new("http://gibbsnichtdomainxxxxx.com/file.xlsx")
|
4181
|
+
}
|
4184
4182
|
end
|
4183
|
+
end
|
4184
|
+
end
|
4185
4185
|
|
4186
4186
|
def test_bug_last_row_excel
|
4187
4187
|
if EXCEL
|
@@ -4369,7 +4369,7 @@ Sheet 3:
|
|
4369
4369
|
|
4370
4370
|
def test_possible_bug_snowboard_cells
|
4371
4371
|
local_only do
|
4372
|
-
after Date.new(
|
4372
|
+
after Date.new(2009,1,6) do
|
4373
4373
|
# warten auf Bugfix in parseexcel
|
4374
4374
|
if EXCEL
|
4375
4375
|
ex = Excel.new(File.join('test','problem.xls'))
|
@@ -4697,24 +4697,26 @@ This attached file is the newer format of Microsoft Excel (.xlsx).
|
|
4697
4697
|
def test_huge_table_timing_10_000_openoffice
|
4698
4698
|
after Date.new(2009,1,1) do
|
4699
4699
|
if OPENOFFICE
|
4700
|
-
|
4701
|
-
Timeout::
|
4702
|
-
|
4703
|
-
|
4704
|
-
|
4705
|
-
|
4706
|
-
oo.
|
4707
|
-
|
4708
|
-
for
|
4709
|
-
|
4710
|
-
|
4700
|
+
if LONG_RUN
|
4701
|
+
assert_nothing_raised(Timeout::Error) {
|
4702
|
+
Timeout::timeout(3.minutes) do |timeout_length|
|
4703
|
+
oo = Openoffice.new("/home/tp/ruby-test/too-testing/speedtest_10000.ods")
|
4704
|
+
# process every cell
|
4705
|
+
sum = 0
|
4706
|
+
oo.sheets.each {|sheet|
|
4707
|
+
oo.default_sheet = sheet
|
4708
|
+
for row in oo.first_row..oo.last_row do
|
4709
|
+
for col in oo.first_column..oo.last_column do
|
4710
|
+
c = oo.cell(row,col)
|
4711
|
+
sum += c.length if c
|
4712
|
+
end
|
4711
4713
|
end
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
4717
|
-
|
4714
|
+
p sum
|
4715
|
+
assert sum > 0
|
4716
|
+
}
|
4717
|
+
end
|
4718
|
+
}
|
4719
|
+
end
|
4718
4720
|
end
|
4719
4721
|
end
|
4720
4722
|
end
|
@@ -4722,24 +4724,26 @@ This attached file is the newer format of Microsoft Excel (.xlsx).
|
|
4722
4724
|
def test_huge_table_timing_10_000_excel
|
4723
4725
|
after Date.new(2009,1,1) do
|
4724
4726
|
if EXCEL
|
4725
|
-
|
4726
|
-
Timeout::
|
4727
|
-
|
4728
|
-
|
4729
|
-
|
4730
|
-
|
4731
|
-
oo.
|
4732
|
-
|
4733
|
-
for
|
4734
|
-
|
4735
|
-
|
4727
|
+
if LONG_RUN
|
4728
|
+
assert_nothing_raised(Timeout::Error) {
|
4729
|
+
Timeout::timeout(3.minutes) do |timeout_length|
|
4730
|
+
oo = Excel.new("/home/tp/ruby-test/too-testing/speedtest_10000.xls")
|
4731
|
+
# process every cell
|
4732
|
+
sum = 0
|
4733
|
+
oo.sheets.each {|sheet|
|
4734
|
+
oo.default_sheet = sheet
|
4735
|
+
for row in oo.first_row..oo.last_row do
|
4736
|
+
for col in oo.first_column..oo.last_column do
|
4737
|
+
c = oo.cell(row,col)
|
4738
|
+
sum += c.length if c
|
4739
|
+
end
|
4736
4740
|
end
|
4737
|
-
|
4738
|
-
|
4739
|
-
|
4740
|
-
|
4741
|
-
|
4742
|
-
|
4741
|
+
p sum
|
4742
|
+
assert sum > 0
|
4743
|
+
}
|
4744
|
+
end
|
4745
|
+
}
|
4746
|
+
end
|
4743
4747
|
end
|
4744
4748
|
end
|
4745
4749
|
end
|
@@ -4747,24 +4751,26 @@ This attached file is the newer format of Microsoft Excel (.xlsx).
|
|
4747
4751
|
def test_huge_table_timing_10_000_google
|
4748
4752
|
after Date.new(2009,1,1) do
|
4749
4753
|
if GOOGLE
|
4750
|
-
|
4751
|
-
Timeout::
|
4752
|
-
|
4753
|
-
|
4754
|
-
|
4755
|
-
|
4756
|
-
oo.
|
4757
|
-
|
4758
|
-
for
|
4759
|
-
|
4760
|
-
|
4754
|
+
if LONG_RUN
|
4755
|
+
assert_nothing_raised(Timeout::Error) {
|
4756
|
+
Timeout::timeout(3.minutes) do |timeout_length|
|
4757
|
+
oo = Excel.new(key_of("/home/tp/ruby-test/too-testing/speedtest_10000.xls"))
|
4758
|
+
# process every cell
|
4759
|
+
sum = 0
|
4760
|
+
oo.sheets.each {|sheet|
|
4761
|
+
oo.default_sheet = sheet
|
4762
|
+
for row in oo.first_row..oo.last_row do
|
4763
|
+
for col in oo.first_column..oo.last_column do
|
4764
|
+
c = oo.cell(row,col)
|
4765
|
+
sum += c.length if c
|
4766
|
+
end
|
4761
4767
|
end
|
4762
|
-
|
4763
|
-
|
4764
|
-
|
4765
|
-
|
4766
|
-
|
4767
|
-
|
4768
|
+
p sum
|
4769
|
+
assert sum > 0
|
4770
|
+
}
|
4771
|
+
end
|
4772
|
+
}
|
4773
|
+
end
|
4768
4774
|
end
|
4769
4775
|
end
|
4770
4776
|
end
|
@@ -4772,26 +4778,56 @@ This attached file is the newer format of Microsoft Excel (.xlsx).
|
|
4772
4778
|
def test_huge_table_timing_10_000_excelx
|
4773
4779
|
after Date.new(2009,1,1) do
|
4774
4780
|
if EXCELX
|
4775
|
-
|
4776
|
-
Timeout::
|
4777
|
-
|
4778
|
-
|
4779
|
-
|
4780
|
-
|
4781
|
-
oo.
|
4782
|
-
|
4783
|
-
for
|
4784
|
-
|
4785
|
-
|
4781
|
+
if LONG_RUN
|
4782
|
+
assert_nothing_raised(Timeout::Error) {
|
4783
|
+
Timeout::timeout(3.minutes) do |timeout_length|
|
4784
|
+
oo = Excelx.new("/home/tp/ruby-test/too-testing/speedtest_10000.xlsx")
|
4785
|
+
# process every cell
|
4786
|
+
sum = 0
|
4787
|
+
oo.sheets.each {|sheet|
|
4788
|
+
oo.default_sheet = sheet
|
4789
|
+
for row in oo.first_row..oo.last_row do
|
4790
|
+
for col in oo.first_column..oo.last_column do
|
4791
|
+
c = oo.cell(row,col)
|
4792
|
+
sum += c.length if c
|
4793
|
+
end
|
4786
4794
|
end
|
4787
|
-
|
4788
|
-
|
4789
|
-
|
4790
|
-
|
4791
|
-
|
4792
|
-
|
4795
|
+
p sum
|
4796
|
+
assert sum > 0
|
4797
|
+
}
|
4798
|
+
end
|
4799
|
+
}
|
4800
|
+
end
|
4793
4801
|
end
|
4794
4802
|
end
|
4795
4803
|
end
|
4796
4804
|
|
4805
|
+
# Eine Spreadsheetdatei wird nicht als Dateiname sondern direkt als Dokument
|
4806
|
+
# geoeffnettest_problemx_csv_imported
|
4807
|
+
def test_from_stream_openoffice
|
4808
|
+
after Date.new(2009,1,6) do
|
4809
|
+
if OPENOFFICE
|
4810
|
+
filecontent = nil
|
4811
|
+
File.open(File.join("test","numbers1.ods")) do |f|
|
4812
|
+
filecontent = f.read
|
4813
|
+
p filecontent.class
|
4814
|
+
p filecontent.size
|
4815
|
+
#p filecontent
|
4816
|
+
assert filecontent.size > 0
|
4817
|
+
# #stream macht das gleiche wie #new liest abe aus Stream anstatt Datei
|
4818
|
+
oo = Openoffice.stream(filecontent)
|
4819
|
+
end
|
4820
|
+
#oo = Openoffice.open()
|
4821
|
+
end
|
4822
|
+
end
|
4823
|
+
end
|
4824
|
+
|
4825
|
+
|
4826
|
+
def test_bug_encoding_exported_from_google
|
4827
|
+
if EXCEL
|
4828
|
+
xl = Excel.new(File.join("test","numbers1_from_google.xls"))
|
4829
|
+
xl.default_sheet = xl.sheets.first
|
4830
|
+
assert_equal 'test', xl.cell(2,'F')
|
4831
|
+
end
|
4832
|
+
end
|
4797
4833
|
end # class
|
data/website/index.html
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
<h1>roo</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/roo"; return false'>
|
35
35
|
Get Version
|
36
|
-
<a href="http://rubyforge.org/projects/roo" class="numbers">1.2.
|
36
|
+
<a href="http://rubyforge.org/projects/roo" class="numbers">1.2.2</a>
|
37
37
|
</div>
|
38
38
|
<h2>What</h2>
|
39
39
|
<p>This gem allows you to access the content of</p>
|
@@ -155,10 +155,12 @@ returned:</p>
|
|
155
155
|
<li>:percentage</li>
|
156
156
|
<li>:formula</li>
|
157
157
|
<li>:time</li>
|
158
|
+
<li>:datetime</li>
|
158
159
|
</ul>
|
159
160
|
<p>Numeric values are returned as type :float, the return value is a Ruby Float object (note: integer values like 42 are returned as 42.0 – not as a Fixnum 42 object).</p>
|
160
161
|
<p>String values are returned as type :string and Ruby String object.</p>
|
161
162
|
<p>Date values are returned as type :date and as a Ruby Date object.</p>
|
163
|
+
<p>Datetime values are returned as type :datetime and as a Ruby DateTime object.</p>
|
162
164
|
<p>Percentage are return as type :percentage and as Ruby Float object with the <br />
|
163
165
|
range from 0.0 to 1.0.</p>
|
164
166
|
<p>Formulas are returned as type :formula – the value of the cell is the computed<br />
|
@@ -372,7 +374,7 @@ h2. Feature Requests / Bugs</p>
|
|
372
374
|
<li>Thanks to Ryan Waldron for a bug-fix patch in Google set_value</li>
|
373
375
|
</ul>
|
374
376
|
<p class="coda">
|
375
|
-
<a href="mailto:thopre@gmail.com">Thomas Preymesser</a>,
|
377
|
+
<a href="mailto:thopre@gmail.com">Thomas Preymesser</a>, 8th December 2008<br>
|
376
378
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
377
379
|
</p>
|
378
380
|
</div>
|
data/website/index.txt
CHANGED
@@ -146,7 +146,7 @@ String values are returned as type :string and Ruby String object.
|
|
146
146
|
|
147
147
|
Date values are returned as type :date and as a Ruby Date object.
|
148
148
|
|
149
|
-
Datetime values are returned as type :
|
149
|
+
Datetime values are returned as type :datetime and as a Ruby DateTime object.
|
150
150
|
|
151
151
|
Percentage are return as type :percentage and as Ruby Float object with the
|
152
152
|
range from 0.0 to 1.0.
|
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.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Preymesser
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-01-05 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- test/emptysheets.xls
|
139
139
|
- test/datetime.ods
|
140
140
|
- test/datetime.xls
|
141
|
+
- test/datetime.xlsx
|
141
142
|
- website/index.html
|
142
143
|
- website/index.txt
|
143
144
|
- website/javascripts/rounded_corners_lite.inc.js
|