roo 0.0.2 → 0.0.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 +11 -0
- data/Rakefile +4 -4
- data/lib/roo.rb +1 -3
- data/lib/roo/openoffice.rb +18 -1
- data/lib/roo/version.rb +1 -1
- data/test/test_roo.rb +15 -0
- data/website/index.html +74 -42
- data/website/index.txt +62 -41
- metadata +3 -20
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -72,10 +72,10 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
72
72
|
# == Optional
|
73
73
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
74
74
|
#p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
|
75
|
-
p.extra_deps = [
|
76
|
-
|
77
|
-
|
78
|
-
]
|
75
|
+
#p.extra_deps = [
|
76
|
+
# ['ruport', '>= 1.0.0'],
|
77
|
+
# ['ruport-util', '>= 0.5.0'],
|
78
|
+
#]
|
79
79
|
#p.spec_extras = {} # A hash of extra values to set in the gemspec.
|
80
80
|
end
|
81
81
|
|
data/lib/roo.rb
CHANGED
data/lib/roo/openoffice.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'rexml/document'
|
4
|
-
require 'matrix'
|
4
|
+
# require 'matrix'
|
5
5
|
require 'fileutils'
|
6
6
|
require 'zip/zipfilesystem'
|
7
7
|
|
@@ -100,6 +100,23 @@ class Openoffice
|
|
100
100
|
def to_s
|
101
101
|
@cell.inspect
|
102
102
|
end
|
103
|
+
|
104
|
+
# returns all values in this row as an array
|
105
|
+
# row numbers are 1,2,3,... like in the spreadsheet
|
106
|
+
def row(rownumber)
|
107
|
+
read_cells unless @cells_read
|
108
|
+
result = []
|
109
|
+
@cell.each_pair {|key,value|
|
110
|
+
y,x = key.split(',')
|
111
|
+
x = x.to_i
|
112
|
+
y = y.to_i
|
113
|
+
if y == rownumber
|
114
|
+
result[x-1,rownumber] = value
|
115
|
+
end
|
116
|
+
}
|
117
|
+
result
|
118
|
+
end
|
119
|
+
|
103
120
|
private
|
104
121
|
|
105
122
|
# read all cells in the selected sheet
|
data/lib/roo/version.rb
CHANGED
data/test/test_roo.rb
CHANGED
@@ -47,11 +47,15 @@ class TestRoo < Test::Unit::TestCase
|
|
47
47
|
assert_equal "tata", oo.cell('A',6)
|
48
48
|
assert_equal "tata", oo.cell(6,'a')
|
49
49
|
assert_equal "tata", oo.cell('a',6)
|
50
|
+
|
50
51
|
assert_equal "thisisc8", oo.cell(8,3)
|
51
52
|
assert_equal "thisisc8", oo.cell(8,'C')
|
52
53
|
assert_equal "thisisc8", oo.cell('C',8)
|
53
54
|
assert_equal "thisisc8", oo.cell(8,'c')
|
54
55
|
assert_equal "thisisc8", oo.cell('c',8)
|
56
|
+
|
57
|
+
assert_equal "thisisd9", oo.cell('d',9)
|
58
|
+
assert_equal "thisisa11", oo.cell('a',11)
|
55
59
|
end
|
56
60
|
|
57
61
|
# Version of the (XML) office document
|
@@ -61,4 +65,15 @@ class TestRoo < Test::Unit::TestCase
|
|
61
65
|
assert_equal "1.0", oo.officeversion
|
62
66
|
end
|
63
67
|
|
68
|
+
def test_rows
|
69
|
+
oo = Openoffice.new("test/numbers1.ods")
|
70
|
+
oo.default_sheet = oo.sheets.first
|
71
|
+
assert_equal 41, oo.cell('a',12)
|
72
|
+
assert_equal 42, oo.cell('b',12)
|
73
|
+
assert_equal 43, oo.cell('c',12)
|
74
|
+
assert_equal 44, oo.cell('d',12)
|
75
|
+
assert_equal 45, oo.cell('e',12)
|
76
|
+
assert_equal [41.0,42.0,43.0,44.0,45.0], oo.row(12)
|
77
|
+
end
|
78
|
+
|
64
79
|
end
|
data/website/index.html
CHANGED
@@ -33,12 +33,12 @@
|
|
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">0.0.
|
36
|
+
<a href="http://rubyforge.org/projects/roo" class="numbers">0.0.3</a>
|
37
37
|
</div>
|
38
|
-
<
|
38
|
+
<h2>What</h2>
|
39
39
|
|
40
40
|
|
41
|
-
<
|
41
|
+
<p>This gem allows you to access the values from open-office documents (.ods).</p>
|
42
42
|
|
43
43
|
|
44
44
|
<h2>Installing</h2>
|
@@ -49,7 +49,7 @@
|
|
49
49
|
<h2>The basics</h2>
|
50
50
|
|
51
51
|
|
52
|
-
<p>
|
52
|
+
<p>Currently only read-access is implemented.</p>
|
53
53
|
|
54
54
|
|
55
55
|
<p>Please note that the upper left cell of a table is numbered (1,1) or (1,’A’) (not 0,0).</p>
|
@@ -58,56 +58,88 @@
|
|
58
58
|
<h2>Demonstration of usage</h2>
|
59
59
|
|
60
60
|
|
61
|
-
<p>
|
61
|
+
<p>Supposed you have created this spreadsheet:</p>
|
62
|
+
|
63
|
+
|
64
|
+
<p><img src="Screenshot-spreadsheet.png"></p>
|
65
|
+
|
66
|
+
|
67
|
+
<p>which includes the amount of work you have done for a customer.</p>
|
68
|
+
|
69
|
+
|
70
|
+
<p>You can now process this spreadsheet with the following sample code.</p>
|
62
71
|
|
63
72
|
|
64
73
|
<pre>
|
65
74
|
<code>
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
assert_equal 12, oo.cell(4,3)
|
90
|
-
assert_equal 13, oo.cell(4,4)
|
91
|
-
assert_equal 14, oo.cell(4,5)
|
92
|
-
|
93
|
-
assert_equal 10, oo.cell(4,'A')
|
94
|
-
assert_equal 11, oo.cell(4,'B')
|
95
|
-
assert_equal 12, oo.cell(4,'C')
|
96
|
-
assert_equal 13, oo.cell(4,'D')
|
97
|
-
assert_equal 14, oo.cell(4,'E')
|
98
|
-
|
99
|
-
assert_equal "date", oo.celltype(5,1)
|
100
|
-
assert_equal "1961-11-21", oo.cell(5,1)
|
101
|
-
end
|
75
|
+
1 require 'rubygems'
|
76
|
+
2 require 'roo'
|
77
|
+
3
|
78
|
+
4 HOURLY_RATE = 123.45
|
79
|
+
5
|
80
|
+
6 oo = Openoffice.new("/home/tp/Desktop/simple_spreadsheet.ods")
|
81
|
+
7 oo.default_sheet = oo.sheets.first
|
82
|
+
8 4.upto(1000) do |line|
|
83
|
+
9 # puts "line: "+line.to_s
|
84
|
+
10 date = oo.cell(line,'A')
|
85
|
+
11 start_time = oo.cell(line,'B')
|
86
|
+
12 start_time = 0.0 unless start_time
|
87
|
+
13 end_time = oo.cell(line,'C')
|
88
|
+
14 end_time = 0.0 unless end_time
|
89
|
+
15 pause = oo.cell(line,'D')
|
90
|
+
16 pause = 0.0 unless pause
|
91
|
+
17 sum = (end_time-start_time)-pause
|
92
|
+
18 comment = oo.cell(line,'F')
|
93
|
+
19 amount = sum * HOURLY_RATE
|
94
|
+
20 if date
|
95
|
+
21 puts "#{date}\t#{sum}\t#{amount}\t#{comment}"
|
96
|
+
22 end
|
97
|
+
23 end
|
102
98
|
</code>
|
103
99
|
</pre>
|
104
100
|
|
101
|
+
<p>which produces this output</p>
|
102
|
+
|
103
|
+
|
104
|
+
<pre>
|
105
|
+
<code>
|
106
|
+
2007-05-07 1.75 216.0375 lokale lauff��hige Umgebung aufgesetzt, Datenbank eingerichtet, Repository erstellt und anf��nglichen Sourcecode eingestellt
|
107
|
+
2007-05-07 1.0 123.45 Userstories erfasst
|
108
|
+
2007-05-08 1.0 123.45 Test neuen User anlegen, Perioden (��berschneidend) anzulegen
|
109
|
+
2007-05-08 1.0 123.45 Bestandsaufnahme/Aufwandssch��tzung/Korrespondenz
|
110
|
+
2007-05-08 0.5 61.725 Functional Test Ueberschneidung
|
111
|
+
2007-05-14 0.5 61.725
|
112
|
+
2007-05-14 0.5 61.725
|
113
|
+
2007-05-15 1.0 123.45
|
114
|
+
2007-05-15 0.75 92.5875 G��stebuch
|
115
|
+
2007-05-15 0.5 61.725 G��stebuch
|
116
|
+
2007-05-15 0.5 61.725 G��stebuch
|
117
|
+
2007-05-16 1.0 123.45 G��stebuch
|
118
|
+
2007-05-17 0.25 30.8625 G��stebuch
|
119
|
+
2007-05-17 1.25 154.3125 G��stebuch
|
120
|
+
2007-05-18 3.0 370.35 G��stebuch
|
121
|
+
2007-05-18 1.75 216.0375 G��stebuch
|
122
|
+
</code>
|
123
|
+
</pre>
|
124
|
+
|
125
|
+
<h2>Documentation</h2>
|
126
|
+
|
127
|
+
|
128
|
+
<p><a href="rdoc/index.html">rdoc</a></p>
|
129
|
+
|
130
|
+
|
105
131
|
<h2>Forum</h2>
|
106
132
|
|
107
133
|
|
108
134
|
<p><a href="http://groups.google.com/group/ruby-roo">http://groups.google.com/group/ruby-roo</a></p>
|
109
135
|
|
110
136
|
|
137
|
+
<h2>Wiki</h2>
|
138
|
+
|
139
|
+
|
140
|
+
<p><a href="http://roo.rubyforge.org/wiki/wiki.pl">http://roo.rubyforge.org/wiki/wiki.pl</a></p>
|
141
|
+
|
142
|
+
|
111
143
|
<h2>License</h2>
|
112
144
|
|
113
145
|
|
@@ -119,7 +151,7 @@ def test_sheets
|
|
119
151
|
|
120
152
|
<p>Comments are welcome. Send an email to <a href="mailto:thopre@gmail.com">Thomas Preymesser</a>.</p>
|
121
153
|
<p class="coda">
|
122
|
-
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>,
|
154
|
+
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 30th May 2007<br>
|
123
155
|
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
124
156
|
</p>
|
125
157
|
</div>
|
data/website/index.txt
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
h1. roo
|
2
2
|
|
3
|
-
h1. → 'roo'
|
4
|
-
|
5
|
-
|
6
3
|
h2. What
|
7
4
|
|
5
|
+
This gem allows you to access the values from open-office documents (.ods).
|
8
6
|
|
9
7
|
h2. Installing
|
10
8
|
|
@@ -12,60 +10,83 @@ h2. Installing
|
|
12
10
|
|
13
11
|
h2. The basics
|
14
12
|
|
15
|
-
|
13
|
+
Currently only read-access is implemented.
|
16
14
|
|
17
15
|
Please note that the upper left cell of a table is numbered (1,1) or (1,'A') (not 0,0).
|
18
16
|
|
19
17
|
h2. Demonstration of usage
|
20
18
|
|
21
|
-
|
19
|
+
Supposed you have created this spreadsheet:
|
20
|
+
|
21
|
+
<img src="Screenshot-spreadsheet.png">
|
22
|
+
|
23
|
+
which includes the amount of work you have done for a customer.
|
24
|
+
|
25
|
+
You can now process this spreadsheet with the following sample code.
|
26
|
+
|
27
|
+
<pre>
|
28
|
+
<code>
|
29
|
+
1 require 'rubygems'
|
30
|
+
2 require 'roo'
|
31
|
+
3
|
32
|
+
4 HOURLY_RATE = 123.45
|
33
|
+
5
|
34
|
+
6 oo = Openoffice.new("/home/tp/Desktop/simple_spreadsheet.ods")
|
35
|
+
7 oo.default_sheet = oo.sheets.first
|
36
|
+
8 4.upto(1000) do |line|
|
37
|
+
9 # puts "line: "+line.to_s
|
38
|
+
10 date = oo.cell(line,'A')
|
39
|
+
11 start_time = oo.cell(line,'B')
|
40
|
+
12 start_time = 0.0 unless start_time
|
41
|
+
13 end_time = oo.cell(line,'C')
|
42
|
+
14 end_time = 0.0 unless end_time
|
43
|
+
15 pause = oo.cell(line,'D')
|
44
|
+
16 pause = 0.0 unless pause
|
45
|
+
17 sum = (end_time-start_time)-pause
|
46
|
+
18 comment = oo.cell(line,'F')
|
47
|
+
19 amount = sum * HOURLY_RATE
|
48
|
+
20 if date
|
49
|
+
21 puts "#{date}\t#{sum}\t#{amount}\t#{comment}"
|
50
|
+
22 end
|
51
|
+
23 end
|
52
|
+
</code>
|
53
|
+
</pre>
|
54
|
+
|
55
|
+
which produces this output
|
22
56
|
|
23
57
|
<pre>
|
24
58
|
<code>
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
assert_equal 9, oo.cell(2,5)
|
42
|
-
assert_equal "test", oo.cell(2,6)
|
43
|
-
assert_equal "string", oo.celltype(2,6)
|
44
|
-
assert_equal 11, oo.cell(2,7)
|
45
|
-
|
46
|
-
assert_equal 10, oo.cell(4,1)
|
47
|
-
assert_equal 11, oo.cell(4,2)
|
48
|
-
assert_equal 12, oo.cell(4,3)
|
49
|
-
assert_equal 13, oo.cell(4,4)
|
50
|
-
assert_equal 14, oo.cell(4,5)
|
51
|
-
|
52
|
-
assert_equal 10, oo.cell(4,'A')
|
53
|
-
assert_equal 11, oo.cell(4,'B')
|
54
|
-
assert_equal 12, oo.cell(4,'C')
|
55
|
-
assert_equal 13, oo.cell(4,'D')
|
56
|
-
assert_equal 14, oo.cell(4,'E')
|
57
|
-
|
58
|
-
assert_equal "date", oo.celltype(5,1)
|
59
|
-
assert_equal "1961-11-21", oo.cell(5,1)
|
60
|
-
end
|
59
|
+
2007-05-07 1.75 216.0375 lokale lauff��hige Umgebung aufgesetzt, Datenbank eingerichtet, Repository erstellt und anf��nglichen Sourcecode eingestellt
|
60
|
+
2007-05-07 1.0 123.45 Userstories erfasst
|
61
|
+
2007-05-08 1.0 123.45 Test neuen User anlegen, Perioden (��berschneidend) anzulegen
|
62
|
+
2007-05-08 1.0 123.45 Bestandsaufnahme/Aufwandssch��tzung/Korrespondenz
|
63
|
+
2007-05-08 0.5 61.725 Functional Test Ueberschneidung
|
64
|
+
2007-05-14 0.5 61.725
|
65
|
+
2007-05-14 0.5 61.725
|
66
|
+
2007-05-15 1.0 123.45
|
67
|
+
2007-05-15 0.75 92.5875 G��stebuch
|
68
|
+
2007-05-15 0.5 61.725 G��stebuch
|
69
|
+
2007-05-15 0.5 61.725 G��stebuch
|
70
|
+
2007-05-16 1.0 123.45 G��stebuch
|
71
|
+
2007-05-17 0.25 30.8625 G��stebuch
|
72
|
+
2007-05-17 1.25 154.3125 G��stebuch
|
73
|
+
2007-05-18 3.0 370.35 G��stebuch
|
74
|
+
2007-05-18 1.75 216.0375 G��stebuch
|
61
75
|
</code>
|
62
76
|
</pre>
|
63
77
|
|
78
|
+
h2. Documentation
|
79
|
+
|
80
|
+
"rdoc":rdoc/index.html
|
64
81
|
|
65
82
|
h2. Forum
|
66
83
|
|
67
84
|
"http://groups.google.com/group/ruby-roo":http://groups.google.com/group/ruby-roo
|
68
85
|
|
86
|
+
h2. Wiki
|
87
|
+
|
88
|
+
"http://roo.rubyforge.org/wiki/wiki.pl":http://roo.rubyforge.org/wiki/wiki.pl
|
89
|
+
|
69
90
|
h2. License
|
70
91
|
|
71
92
|
This code is free to use under the terms of Ruby
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: roo
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
6
|
+
version: 0.0.3
|
7
7
|
date: 2007-05-30 00:00:00 +02:00
|
8
8
|
summary: roo can access the contents of OpenOffice-Spreadsheets
|
9
9
|
require_paths:
|
@@ -64,22 +64,5 @@ extensions: []
|
|
64
64
|
|
65
65
|
requirements: []
|
66
66
|
|
67
|
-
dependencies:
|
68
|
-
|
69
|
-
name: ruport
|
70
|
-
version_requirement:
|
71
|
-
version_requirements: !ruby/object:Gem::Version::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 1.0.0
|
76
|
-
version:
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
|
-
name: ruport-util
|
79
|
-
version_requirement:
|
80
|
-
version_requirements: !ruby/object:Gem::Version::Requirement
|
81
|
-
requirements:
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: 0.5.0
|
85
|
-
version:
|
67
|
+
dependencies: []
|
68
|
+
|