roo 1.0.2 → 1.1.0
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 +7 -0
- data/Manifest.txt +3 -0
- data/Rakefile +15 -1
- data/lib/roo/excel.rb +113 -133
- data/lib/roo/excelx.rb +124 -53
- data/lib/roo/generic_spreadsheet.rb +266 -218
- data/lib/roo/google.rb +3 -2
- data/lib/roo/openoffice.rb +21 -57
- data/lib/roo/version.rb +2 -2
- data/test/Bibelbund.xlsx +0 -0
- data/test/emptysheets.ods +0 -0
- data/test/emptysheets.xls +0 -0
- data/test/test_helper.rb +11 -0
- data/test/test_roo.rb +741 -717
- data/website/index.html +87 -6
- data/website/index.txt +61 -3
- metadata +5 -2
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.0
|
36
|
+
<a href="http://rubyforge.org/projects/roo" class="numbers">1.1.0</a>
|
37
37
|
</div>
|
38
38
|
<h2>What</h2>
|
39
39
|
|
@@ -45,10 +45,52 @@
|
|
45
45
|
<li>Open-office spreadsheets (.ods)</li>
|
46
46
|
<li>Excel spreadsheets (.xls) </li>
|
47
47
|
<li>Google (online) spreadsheets</li>
|
48
|
-
<li>Excel new file format .xlsx</li>
|
48
|
+
<li>Excel’s new file format .xlsx</li>
|
49
49
|
</ul>
|
50
50
|
|
51
51
|
|
52
|
+
<h2>Supporting this project</h2>
|
53
|
+
|
54
|
+
|
55
|
+
<p>Die Programme dieses Projekts sind kostenlos erhältlich und verwendbar.
|
56
|
+
Du kannst jedoch die weitere Entwicklung dieses Projekts mit einer finanziellen
|
57
|
+
Zuwendung unterstützen (ansonsten müßte ich mich verstärkt anderen Projekten
|
58
|
+
widmen, die mehr finanziellen Ertrag einbringen, damit ich auch morgen noch
|
59
|
+
für meine Katzen das Futter kaufen kann :-)).</p>
|
60
|
+
|
61
|
+
|
62
|
+
<p>Am bequemsten kannst du per Paypal an die Email-Adresse thopre@gmail.com
|
63
|
+
bezahlen.
|
64
|
+
Falls du per Überweisung zahlen willst, frage bitte nach meiner Kontoverbindung!</p>
|
65
|
+
|
66
|
+
|
67
|
+
<p>Ich werde, aufteilt pro Quartal, eine Liste der Spender mit Namen und Betrag,
|
68
|
+
sortiert nach Spendenhöhe hier veröffenlichen. Wenn von dir nichts anderes
|
69
|
+
mitgeteilt, werde ich dich nach deinem Namen, soweit aus der Email-Adresse
|
70
|
+
ersichtlich, in der Liste veröffenlichen. Falls etwas anderes gewünscht wird,
|
71
|
+
z. B. “Firma <span class="caps">ABC</span> GmbH” oder anonym, dann teile mir dies bitte mit!</p>
|
72
|
+
|
73
|
+
|
74
|
+
<h3>Spender</h3>
|
75
|
+
|
76
|
+
|
77
|
+
<h4>April-Juni 2008</h4>
|
78
|
+
|
79
|
+
|
80
|
+
<table>
|
81
|
+
<tr>
|
82
|
+
<td>Betrag</td>
|
83
|
+
<td>Name</td>
|
84
|
+
</tr>
|
85
|
+
<tr>
|
86
|
+
<td>0,00 €</td>
|
87
|
+
<td>Test</td>
|
88
|
+
</tr>
|
89
|
+
</table>
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
52
94
|
<h2>Installing</h2>
|
53
95
|
|
54
96
|
|
@@ -193,8 +235,13 @@ oo.set_value(row, col, value)
|
|
193
235
|
<p>oo.<strong>formula?</strong>(row,col) returns true if there is a formula</p>
|
194
236
|
|
195
237
|
|
196
|
-
<p>oo.<strong>formula</strong>(row,col) returns the formula in this cell in a string variable (like ”=<acronym title="[.A1:.M13]">SUM</acronym>”).
|
197
|
-
|
238
|
+
<p>oo.<strong>formula</strong>(row,col) returns the formula in this cell in a string variable (like ”=<acronym title="[.A1:.M13]">SUM</acronym>”).
|
239
|
+
You can do whatever you want with this expression. Please note that the syntax of
|
240
|
+
formulas might vary between different sort of spreadsheets. There is no conversion
|
241
|
+
of the formula syntax.</p>
|
242
|
+
|
243
|
+
|
244
|
+
<p>If there is no formula in this cell nil is returned.</p>
|
198
245
|
|
199
246
|
|
200
247
|
<p>oo.<strong>cell</strong>(row,col) returns the computed result of the formula (as it was saved in the file, no recalculation is done in this Gem).</p>
|
@@ -278,6 +325,9 @@ Replace Openoffice with
|
|
278
325
|
</code>
|
279
326
|
</pre>
|
280
327
|
|
328
|
+
<p>or Google.new() or Excelx.new().</p>
|
329
|
+
|
330
|
+
|
281
331
|
All methode are the same for OpenOffice-, Excel- and Google-objects.
|
282
332
|
<strike> The only difference
|
283
333
|
is the setting of the default-worksheet. OpenOffice uses the name of the worksheet whereas Excel needs the index of the worksheet (1,2,3,..).
|
@@ -348,6 +398,37 @@ export GOOGLE_PASSWORD="mysecretpassword"</code></pre>
|
|
348
398
|
<p>This gem does not check if you are allowed to access a specific google spreadsheet. If it’s not your own spreadsheet or you are not allowed to read or wwrite to a spreadsheet the behaviour is not defined (but it will not work ;-) ).</p>
|
349
399
|
|
350
400
|
|
401
|
+
<p>The default behavior at opening a spreadsheet with a certain extension has been
|
402
|
+
changed.
|
403
|
+
Say you’re trying to open a spreadsheet file with the extension .xls, which is normally
|
404
|
+
an Excel file
|
405
|
+
with the Openoffice.new() call. This cannot work, if the file is really an excel file – instead
|
406
|
+
you have to open it with the Excel.new() call.</p>
|
407
|
+
|
408
|
+
|
409
|
+
<p>Now you’re getting an exception raised. Before it was was only a warning and the
|
410
|
+
access to this file failed.</p>
|
411
|
+
|
412
|
+
|
413
|
+
<p>Theorectically you can have a file with the extension .xls which is in fact an Openoffice spreadsheet file.</p>
|
414
|
+
|
415
|
+
|
416
|
+
<p>It’s possible to open such a file with the Openoffice class, but you have have to
|
417
|
+
override the parameter ‘file_warning’ in the new method:
|
418
|
+
‘Openoffice.new(‘myfile.xls’, false, :warning)’ or
|
419
|
+
‘Openoffice.new(‘myfile.xls’, false, :ignore)’.</p>
|
420
|
+
|
421
|
+
|
422
|
+
<p>If you set it to :warning you get a warning if you try to use a spreadsheet file with
|
423
|
+
the ‘false’ extension, but the
|
424
|
+
program will try to handle the file with this class (of course this will fail, if the file
|
425
|
+
is really of the false type).</p>
|
426
|
+
|
427
|
+
|
428
|
+
<p>If you completely know what you are doing you can also disable the warning with the
|
429
|
+
parameter :ignore.</p>
|
430
|
+
|
431
|
+
|
351
432
|
<h3>Accessing Spreadsheet over the Web</h3>
|
352
433
|
|
353
434
|
|
@@ -371,7 +452,7 @@ after working with a spreadsheet from the web you have to call
|
|
371
452
|
</code>
|
372
453
|
</pre>
|
373
454
|
|
374
|
-
<p>to delete the temporary local copy of the spreadsheet file. If you
|
455
|
+
<p>to delete the temporary local copy of the spreadsheet file. If you don’t call
|
375
456
|
this method you will have subdirectories names ‘oo_xxxxx’ which you can remove manually.
|
376
457
|
Calling remove_tmp is not the best solution to clean temporary files – i will
|
377
458
|
provide a better solution in the next releases.</p>
|
@@ -485,7 +566,7 @@ Remote access with <span class="caps">SOAP</span> is nothing specific to roo, yo
|
|
485
566
|
<li>Thanks to davecahill for a bug-fix patch within the google part</li>
|
486
567
|
</ul>
|
487
568
|
<p class="coda">
|
488
|
-
<a href="mailto:thopre@gmail.com">Thomas Preymesser</a>,
|
569
|
+
<a href="mailto:thopre@gmail.com">Thomas Preymesser</a>, 17th July 2008<br>
|
489
570
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
490
571
|
</p>
|
491
572
|
</div>
|
data/website/index.txt
CHANGED
@@ -7,7 +7,35 @@ This gem allows you to access the content of
|
|
7
7
|
* Open-office spreadsheets (.ods)
|
8
8
|
* Excel spreadsheets (.xls)
|
9
9
|
* Google (online) spreadsheets
|
10
|
-
* Excel new file format .xlsx
|
10
|
+
* Excel's new file format .xlsx
|
11
|
+
|
12
|
+
h2. Supporting this project
|
13
|
+
|
14
|
+
Die Programme dieses Projekts sind kostenlos erhältlich und verwendbar.
|
15
|
+
Du kannst jedoch die weitere Entwicklung dieses Projekts mit einer finanziellen
|
16
|
+
Zuwendung unterstützen (ansonsten müßte ich mich verstärkt anderen Projekten
|
17
|
+
widmen, die mehr finanziellen Ertrag einbringen, damit ich auch morgen noch
|
18
|
+
für meine Katzen das Futter kaufen kann :-)).
|
19
|
+
|
20
|
+
Am bequemsten kannst du per Paypal an die Email-Adresse thopre@gmail.com
|
21
|
+
bezahlen.
|
22
|
+
Falls du per Überweisung zahlen willst, frage bitte nach meiner Kontoverbindung!
|
23
|
+
|
24
|
+
Ich werde, aufteilt pro Quartal, eine Liste der Spender mit Namen und Betrag,
|
25
|
+
sortiert nach Spendenhöhe hier veröffenlichen. Wenn von dir nichts anderes
|
26
|
+
mitgeteilt, werde ich dich nach deinem Namen, soweit aus der Email-Adresse
|
27
|
+
ersichtlich, in der Liste veröffenlichen. Falls etwas anderes gewünscht wird,
|
28
|
+
z. B. "Firma ABC GmbH" oder anonym, dann teile mir dies bitte mit!
|
29
|
+
|
30
|
+
h3. Spender
|
31
|
+
|
32
|
+
h4. April-Juni 2008
|
33
|
+
|
34
|
+
table.
|
35
|
+
|Betrag|Name|
|
36
|
+
|0,00 €|Test|
|
37
|
+
|
38
|
+
|
11
39
|
|
12
40
|
h2. Installing
|
13
41
|
|
@@ -127,7 +155,11 @@ oo.*celltype*(row,col) returns :formula if there is a formula in this cell.
|
|
127
155
|
|
128
156
|
oo.*formula?*(row,col) returns true if there is a formula
|
129
157
|
|
130
|
-
oo.*formula*(row,col) returns the formula in this cell in a string variable (like "=SUM([.A1:.M13])").
|
158
|
+
oo.*formula*(row,col) returns the formula in this cell in a string variable (like "=SUM([.A1:.M13])").
|
159
|
+
You can do whatever you want with this expression. Please note that the syntax of
|
160
|
+
formulas might vary between different sort of spreadsheets. There is no conversion
|
161
|
+
of the formula syntax.
|
162
|
+
|
131
163
|
If there is no formula in this cell nil is returned.
|
132
164
|
|
133
165
|
oo.*cell*(row,col) returns the computed result of the formula (as it was saved in the file, no recalculation is done in this Gem).
|
@@ -194,6 +226,8 @@ Replace Openoffice with
|
|
194
226
|
</code>
|
195
227
|
</pre>
|
196
228
|
|
229
|
+
or Google.new() or Excelx.new().
|
230
|
+
|
197
231
|
All methode are the same for OpenOffice-, Excel- and Google-objects.
|
198
232
|
<strike> The only difference
|
199
233
|
is the setting of the default-worksheet. OpenOffice uses the name of the worksheet whereas Excel needs the index of the worksheet (1,2,3,..).
|
@@ -227,6 +261,30 @@ Setting these variables can be done if you add these lines to your
|
|
227
261
|
|
228
262
|
This gem does not check if you are allowed to access a specific google spreadsheet. If it's not your own spreadsheet or you are not allowed to read or wwrite to a spreadsheet the behaviour is not defined (but it will not work ;-) ).
|
229
263
|
|
264
|
+
The default behavior at opening a spreadsheet with a certain extension has been
|
265
|
+
changed.
|
266
|
+
Say you're trying to open a spreadsheet file with the extension .xls, which is normally
|
267
|
+
an Excel file
|
268
|
+
with the Openoffice.new() call. This cannot work, if the file is really an excel file - instead
|
269
|
+
you have to open it with the Excel.new() call.
|
270
|
+
|
271
|
+
Now you're getting an exception raised. Before it was was only a warning and the
|
272
|
+
access to this file failed.
|
273
|
+
|
274
|
+
Theorectically you can have a file with the extension .xls which is in fact an Openoffice spreadsheet file.
|
275
|
+
|
276
|
+
It's possible to open such a file with the Openoffice class, but you have have to
|
277
|
+
override the parameter 'file_warning' in the new method:
|
278
|
+
'Openoffice.new('myfile.xls', false, :warning)' or
|
279
|
+
'Openoffice.new('myfile.xls', false, :ignore)'.
|
280
|
+
|
281
|
+
If you set it to :warning you get a warning if you try to use a spreadsheet file with
|
282
|
+
the 'false' extension, but the
|
283
|
+
program will try to handle the file with this class (of course this will fail, if the file
|
284
|
+
is really of the false type).
|
285
|
+
|
286
|
+
If you completely know what you are doing you can also disable the warning with the
|
287
|
+
parameter :ignore.
|
230
288
|
|
231
289
|
h3. Accessing Spreadsheet over the Web
|
232
290
|
|
@@ -250,7 +308,7 @@ after working with a spreadsheet from the web you have to call
|
|
250
308
|
</code>
|
251
309
|
</pre>
|
252
310
|
|
253
|
-
to delete the temporary local copy of the spreadsheet file. If you
|
311
|
+
to delete the temporary local copy of the spreadsheet file. If you don't call
|
254
312
|
this method you will have subdirectories names 'oo_xxxxx' which you can remove manually.
|
255
313
|
Calling remove_tmp is not the best solution to clean temporary files - i will
|
256
314
|
provide a better solution in the next releases.
|
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.0
|
4
|
+
version: 1.1.0
|
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: 2008-07-
|
12
|
+
date: 2008-07-31 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- test/Bibelbund1.ods
|
100
100
|
- test/Bibelbund.ods
|
101
101
|
- test/Bibelbund.xls
|
102
|
+
- test/Bibelbund.xlsx
|
102
103
|
- test/Bibelbund.csv
|
103
104
|
- test/bbu.xls
|
104
105
|
- test/bbu.xlsx
|
@@ -133,6 +134,8 @@ files:
|
|
133
134
|
- test/bode-v1.ods.zip
|
134
135
|
- test/ric.ods
|
135
136
|
- test/bug-row-column-fixnum-float.xls
|
137
|
+
- test/emptysheets.ods
|
138
|
+
- test/emptysheets.xls
|
136
139
|
- website/index.html
|
137
140
|
- website/index.txt
|
138
141
|
- website/javascripts/rounded_corners_lite.inc.js
|