rresume 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,34 @@
1
+ Hi.
2
+
3
+ Ich arbeite gerade daran, mir ein Tool zu erstellen, das mir ein pers�nliches Profil erstellen kann, �ber durchgef�hrt Projekte als Freiberufler (kann aber nat�rlich auch f�r andere Personen oder Zwecke verwendet werden).
4
+
5
+ Grob gesagt, soll man angeben k�nnen, es dieses und jenes Projekt mit Branche, Beschreibung, Start, Ende, verwendet Programmiersprachen, Datenbanken, Betriebsssteme, sonstige Tools.
6
+
7
+ Als Ergebnis werden zum einen die Projekt in chronologischer Reihenfolge (sp�ter wahlweise auf- oder absteigend sortiert) ausgegeben.
8
+
9
+ Die Hauptmotivation f�r mich war aber das Summieren der Zeiten �ber alle Projekte je Sprache, DB, oder Betriebssystem weil ich das immer m�hsam zu Fu� erledigen mu�te.
10
+
11
+ Ein Ausgabe kann dann z.B. so aussehen:
12
+
13
+ [color=orange]
14
+ Branche: Milit�r
15
+ Beschreibung: umfangreiche Datenbankroutinen zu Flugprogrammen fuer Fernlenkraketen �ber und unter Wasser erstellt
16
+ Von/Bis: 1/1999 - 3/2000
17
+ Monate: 15
18
+ Tools: C PHP Oracle Windows
19
+ --------------------------------------------------------------------------------
20
+ Branche: Naturschutz
21
+ Beschreibung: Statistische Analyse von Walbeobachtungsdaten
22
+ Von/Bis: 4/2000 - 6/2000
23
+ Monate: 3
24
+ Tools: Perl
25
+ --------------------------------------------------------------------------------.
26
+ ingesamt C-Programmierung: 15
27
+ ingesamt PHP-Programmierung: 15
28
+ ingesamt Oracle-Programmierung: 15
29
+ ingesamt Windows-Programmierung: 15
30
+ ingesamt Perl-Programmierung: 3
31
+ [/color]
32
+
33
+ Dies ist nat�rlich nur ein erster Entwurf, um das Funktionieren zu testen. Sp�ter soll man noch angeben k�nnen, ob man z.B. Ausgabe als einfachen Text, HTML, XML oder PDF m�chte.
34
+
data/lib/README ADDED
@@ -0,0 +1,14 @@
1
+ Rresume is a tool for creating resumes, especially for freelancer in the IT-sector.
2
+
3
+ You can define projects which you have done (with description, start date, end date, and tools/skills you have used).
4
+
5
+ With this, the tool generates a nice resume and summarizes the time of experienc
6
+ for each 'tool' like programming languages, operating systems, databases and so on. You can freely decide, what tools you use and to which category a tool belongs.
7
+
8
+ It is also not limited to peope in IT, you can organize your skills and categories as you like.
9
+
10
+ The output can be ASCII-Text, HTML, .doc, PDF.
11
+
12
+ Sorry, currently the language is only german.
13
+
14
+
data/lib/hula.html ADDED
@@ -0,0 +1,62 @@
1
+
2
+ <h1>sonstige Tools</h1>
3
+ <table border="1">
4
+ <tr>
5
+ <th>Name</th>
6
+ <th>Dauer</th>
7
+ <th>zuletzt</th>
8
+ </tr>
9
+ <tr>
10
+ <td>AWK</td>
11
+ <td>19</td>
12
+ <td>1/2000</td>
13
+ </tr>
14
+ <tr>
15
+ <td>SQL-Loader</td>
16
+ <td>22</td>
17
+ <td>6/2000</td>
18
+ </tr>
19
+ <tr>
20
+ <td>PL/SQL</td>
21
+ <td>34</td>
22
+ <td>6/2000</td>
23
+ </tr>
24
+ <tr>
25
+ <td>CSS</td>
26
+ <td>5</td>
27
+ <td>8/2006</td>
28
+ </tr>
29
+ <tr>
30
+ <td>C-ISAM</td>
31
+ <td>50</td>
32
+ <td>6/1991</td>
33
+ </tr>
34
+ <tr>
35
+ <td>Oracle-Reports</td>
36
+ <td>12</td>
37
+ <td>9/1998</td>
38
+ </tr>
39
+ <tr>
40
+ <td>Oracle-Designer</td>
41
+ <td>12</td>
42
+ <td>9/1998</td>
43
+ </tr>
44
+ <tr>
45
+ <td>TOAD</td>
46
+ <td>29</td>
47
+ <td>1/2000</td>
48
+ </tr>
49
+ <tr>
50
+ <td>Shell-Script</td>
51
+ <td>75</td>
52
+ <td>1/2000</td>
53
+ </tr>
54
+ </table>
55
+ d>8/2006</td>
56
+ </tr>
57
+ <tr>
58
+ <td>Perl</td>
59
+ <td>3</td>
60
+ <td>6/1996</td>
61
+ </tr>
62
+ </table>
data/lib/pdf-test.rb ADDED
@@ -0,0 +1,8 @@
1
+ #require 'rubygems'
2
+ #require_gem 'pdf/writer'
3
+ require 'pdf/writer'
4
+
5
+ pdf = PDF::Writer.new
6
+ pdf.select_font "Times-Roman"
7
+ pdf.text "Hello, Ruby.", :font_size => 72, :justification => :center
8
+ pdf.save_as("hello.pdf")
data/lib/pdf-test2.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+
3
+ begin
4
+ require 'pdf/writer'
5
+ rescue LoadError => le
6
+ if le.message =~ %r{pdf/writer$}
7
+ $LOAD_PATH.unshift("../lib")
8
+ require 'pdf/writer'
9
+ else
10
+ raise
11
+ end
12
+ end
13
+
14
+ pdf = PDF::Writer.new
15
+ pdf.select_font "Times-Roman"
16
+ pdf.text "Hello, Ruby.", :font_size => 72, :justification => :center
17
+
18
+ pdf.save_as("hello.pdf")
19
+
@@ -0,0 +1,19 @@
1
+ module Duration
2
+
3
+ def human_months(months)
4
+ if months > 12
5
+ mehrzahl=""
6
+ mehrzahl="e" if months > 24-1
7
+ "> "+jahre(months).to_s+" Jahr"+mehrzahl
8
+ else
9
+ mehrzahl=""
10
+ mehrzahl="e" if months > 1
11
+ months.to_s+" Monat"+mehrzahl
12
+ end
13
+ end
14
+
15
+ def jahre(monate)
16
+ monate/12.0.round
17
+ end
18
+
19
+ end
@@ -0,0 +1,12 @@
1
+ class Person
2
+
3
+ attr_reader :firstname, :lastname
4
+ attr_accessor :adresse, :plz, :ort, :telefon, :mobil, :email, :education_list,
5
+ :weiterbildungen, :fremdsprachen
6
+
7
+ def initialize(firstname="",lastname="")
8
+ @firstname = firstname
9
+ @lastname = lastname
10
+ end
11
+
12
+ end
@@ -0,0 +1,121 @@
1
+ require 'date'
2
+ require 'rresume/duration'
3
+ require 'rresume.rb'
4
+
5
+ class Project
6
+ include Duration
7
+
8
+ attr_reader :titel, :von_monat, :von_jahr, :bis_monat, :bis_jahr
9
+ attr_accessor :beschreibung, :branche
10
+
11
+ def initialize(titel)
12
+ @titel = titel
13
+ @beschreibung = ""
14
+ @branche = ""
15
+ @tools = []
16
+ end
17
+
18
+ def <=> (other)
19
+ if self.von_jahr < other.von_jahr
20
+ -1
21
+ elsif self.von_jahr > other.von_jahr
22
+ 1
23
+ else # gleich
24
+ if self.von_monat < other.von_monat
25
+ -1
26
+ elsif self.von_monat > other.von_monat
27
+ 1
28
+ else
29
+ 0
30
+ end
31
+ end
32
+ end
33
+
34
+ def to_s
35
+ "#{@titel}\n"+
36
+ "#{@branche}\n"+
37
+ "#{@beschreibung}\n"+
38
+ "#{monatsbezeichnung(@von_jahr,@von_monat)}\n"+
39
+ "#{monatsbezeichnung(@bis_jahr,@bis_monat)}\n"
40
+ end
41
+
42
+ def output(mode=nil)
43
+ if mode == :html
44
+ puts "<td valign=\"top\">"+html(@branche)+"</td>"
45
+ puts "<td valign=\"top\">"+html(@beschreibung)+"<br>"
46
+ @tools.each {|tool|
47
+ print html(tool.name)+" "
48
+ }
49
+ puts "</td>"
50
+ #puts "<td valign=\"top\">#{monatsbezeichnung(@von_jahr,@von_monat)} - "+
51
+ # "#{monatsbezeichnung(@bis_jahr,@bis_monat)}"+"</td>"
52
+ puts "<td valign=\"top\">#{human_months(self.monate)}"+"</td>"
53
+ print "<td valign=\"top\">"
54
+ puts "#{monatsbezeichnung(@bis_jahr,@bis_monat)}"
55
+ puts "</td>"
56
+ else
57
+ #-- als einfache Liste ausgeben
58
+ puts "Branche:\t"+@branche
59
+ puts "Beschreibung:\t"+@beschreibung
60
+ puts "Von/Bis:\t#{monatsbezeichnung(@von_jahr,@von_monat)} - "+
61
+ "#{monatsbezeichnung(@bis_jahr,@bis_monat)}"
62
+ puts "Monate:\t\t#{human_months(self.monate)}"
63
+ print "Tools:\t\t"
64
+ @tools.each {|tool|
65
+ print tool.name+" "
66
+ }
67
+ print "\n"
68
+ puts "-"*80
69
+ end
70
+ end
71
+
72
+ def von(monat,jahr)
73
+ @von_monat = monat
74
+ @von_jahr = jahr
75
+ end
76
+
77
+ def bis(monat,jahr)
78
+ @bis_monat = monat
79
+ @bis_jahr = jahr
80
+ end
81
+
82
+ # gibt Dauer in Monaten zur�ck
83
+ def monate
84
+ von = Date.new(@von_jahr,@von_monat,1)
85
+ bis = Date.new(@bis_jahr,@bis_monat,1)
86
+ bis = bis >> 1
87
+ ((bis-von).to_f/30).round
88
+ end
89
+
90
+ def dauer
91
+ "#{monate} Monate"
92
+ end
93
+
94
+ def used_tool(tool)
95
+ @tools << tool
96
+ end
97
+
98
+ def tools
99
+ @tools
100
+ end
101
+
102
+ private
103
+ # Sonderzeichen > html
104
+ def html(str)
105
+ str.gsub!(/�/,"&auml;")
106
+ str.gsub!(/�/,"&ouml;")
107
+ str.gsub!(/�/,"&uuml;")
108
+ str.gsub!(/�/,"&Auml;")
109
+ str.gsub!(/�/,"&Ouml;")
110
+ str.gsub!(/�/,"&Uuml;")
111
+ str.gsub!(/�/,"&szlig;")
112
+ str.gsub!(/</,"&lt;")
113
+ str.gsub!(/>/,"&gt;")
114
+ str
115
+ end
116
+
117
+ # liefert Datum in Form 4/2000 als Monatsangabe
118
+ def monatsbezeichnung(jahr,monat)
119
+ "#{monat}/#{jahr}"
120
+ end
121
+ end
@@ -0,0 +1,371 @@
1
+ #require 'project'
2
+ #require 'duration'
3
+ class String
4
+ def to_html
5
+ self.gsub!(/�/,"&auml;")
6
+ gsub!(/�/,"&ouml;")
7
+ gsub!(/�/,"&uuml;")
8
+ gsub!(/�/,"&Auml;")
9
+ gsub!(/�/,"&Ouml;")
10
+ gsub!(/�/,"&Uuml;")
11
+ gsub!(/�/,"&szlig;")
12
+ gsub!(/</,"&lt;")
13
+ gsub!(/>/,"&gt;")
14
+ self
15
+ end
16
+ end # String
17
+
18
+ class ProjectList
19
+ include Duration
20
+
21
+ def initialize(person)
22
+ @person = person
23
+ @projects = []
24
+ end
25
+
26
+ def << (project)
27
+ @projects << project
28
+ end
29
+
30
+ def list
31
+ @projects.each {|p|
32
+ puts p
33
+ }
34
+ end
35
+
36
+ # output personal data like schools, universities, diplomas, etc.
37
+ def output_personal(*args)
38
+ tmpl = TemplateText.new <<END
39
+
40
+ <HTML>
41
+
42
+ <HEAD>
43
+ <TITLE>Profil #{@person.firstname} #{@person.lastname}</TITLE>
44
+ </HEAD>
45
+
46
+ <BODY BACKGROUND="" BGCOLOR="#ffffff" TEXT="#000000" LINK="#0000ff" VLINK="#800080" ALINK="#ff0000">
47
+
48
+ Dokument: <code>
49
+ <a href="http://www.thopre.de/profil.html">
50
+ http://www.thopre.de/profil.html
51
+ </a>
52
+ </code>
53
+
54
+ <p>
55
+ <TABLE BORDER="1" WIDTH="100%" cellpadding="5">
56
+ <TR>
57
+ <TD valign="top">
58
+ <B>Profil</B> von<BR>
59
+ #{@person.firstname} #{@person.lastname}<br>
60
+ Stand: #{DateTime.now.to_s[0,10]}<br>
61
+ </TD>
62
+ <TD>
63
+ #{@person.adresse}<br>
64
+ #{@person.plz} #{@person.ort}<br>
65
+ Tel.: #{@person.telefon}<BR>
66
+ </TD>
67
+ <TD valign="top">
68
+ mobile: #{@person.mobil}<BR>
69
+ email: <a href="mailto:#{@person.email}">#{@person.email}</a><BR>
70
+
71
+ </TD>
72
+ </TR>
73
+ </TABLE>
74
+
75
+
76
+ <ol>
77
+ <li><a href="#hw">Hardware</a>
78
+ <li><a href="#bs">Betriebssysteme</a>
79
+ <li><a href="#db">Datenbanken</a>
80
+ <li><a href="#to">Tools / Sonstiges</a>
81
+ <li><a href="#la">Programmiersprachen</a>
82
+ <li><a href="#pr">Projekte</a>
83
+ </ol>
84
+ <hr>
85
+
86
+ <H1>Aktuelles</H1>
87
+
88
+ Verf&uuml;gbarkeit: In den als frei gekennzeichneten Monaten bin ich aktuell
89
+ noch verf&uuml;gbar. In den anderen bin ich ganz oder teilweise
90
+ gebucht. Ggf. gibt es aber auch da M&ouml;glichkeiten einer Zusammenarbeit,
91
+ falls es sich um kleinere Aufgaben handelt.
92
+ <p>
93
+ <table border="1" width="100%">
94
+ <tr>
95
+ <td><b>Verf&uuml;gbarkeit</b> </td>
96
+ <td>01 </td>
97
+ <td>02 </td>
98
+ <td>03 </td>
99
+ <td>04 </td>
100
+ <td>05 </td>
101
+ <td>06 </td>
102
+ <td>07 </td>
103
+ <td>08 </td>
104
+ <td>09 </td>
105
+ <td>10 </td>
106
+ <td>11 </td>
107
+ <td>12 </td>
108
+ </tr>
109
+ <tr>
110
+ <td>2006</td>
111
+ <!-- 01 --> <td bgcolor="lightgreen">frei </td>
112
+ <!-- 02 --> <td bgcolor="lightgreen">frei </td>
113
+ <!-- 03 --> <td bgcolor="lightgreen">frei </td>
114
+ <!-- 04 --> <td bgcolor="lightgreen">frei </td>
115
+ <!-- 05 --> <td bgcolor="lightgreen">frei </td>
116
+ <!-- 06 --> <td bgcolor="black"><font color="white">gebucht</font></td>
117
+ <!-- 07 --> <td bgcolor="black"><font color="white">gebucht</font></td>
118
+ <!-- 08 --> <td bgcolor="black"><font color="white">gebucht</font></td>
119
+ <!-- 09 --> <td bgcolor="lightgreen">frei </td>
120
+ <!-- 10 --> <td bgcolor="lightgreen">frei </td>
121
+ <!-- 11 --> <td bgcolor="lightgreen">frei </td>
122
+ <!-- 12 --> <td bgcolor="lightgreen">frei </td>
123
+ </tr>
124
+ <tr>
125
+ <td>2007</td>
126
+ <!-- 01 --> <td bgcolor="lightgreen">frei </td>
127
+ <!-- 02 --> <td bgcolor="lightgreen">frei </td>
128
+ <!-- 03 --> <td bgcolor="lightgreen">frei </td>
129
+ <!-- 04 --> <td bgcolor="lightgreen">frei </td>
130
+ <!-- 05 --> <td bgcolor="lightgreen">frei </td>
131
+ <!-- 06 --> <td bgcolor="lightgreen">frei </td>
132
+ <!-- 07 --> <td bgcolor="lightgreen">frei </td>
133
+ <!-- 08 --> <td bgcolor="lightgreen">frei </td>
134
+ <!-- 09 --> <td bgcolor="lightgreen">frei </td>
135
+ <!-- 10 --> <td bgcolor="lightgreen">frei </td>
136
+ <!-- 11 --> <td bgcolor="lightgreen">frei </td>
137
+ <!-- 12 --> <td bgcolor="lightgreen">frei </td>
138
+ </tr>
139
+ </table>
140
+
141
+ <p>
142
+
143
+ <TABLE border="1" cellspacing="0" cellpadding="4">
144
+ <!--
145
+ <TR>
146
+ <TD >
147
+ <B>
148
+ Verf&uuml;gbarkeit:
149
+ </B>
150
+ </TD>
151
+ <TD >
152
+ ab 03/2003
153
+ </TD>
154
+ </TR>
155
+ -->
156
+ <TR>
157
+ <TD >
158
+ <B>
159
+ bevorzugter Einsatzort:
160
+ </B>
161
+ </TD>
162
+ <TD >
163
+ Raum Berlin.
164
+ </TD>
165
+ </TR>
166
+ <TR>
167
+ <TD >
168
+ <B>
169
+ <!-- ich m&ouml;chte mich in Zukunft auf folgenden Gebieten weiter entwickeln:
170
+ --> </B>
171
+ </TD>
172
+ <TD >
173
+ <!-- e-Commerce, Internet-Anwendungen
174
+ --> </TD>
175
+
176
+ </TR>
177
+ <TR>
178
+ <TD >
179
+ <B>
180
+ Stundensatz:
181
+ </B>
182
+ </TD>
183
+ <TD >
184
+ <!-- 70 &#8364;/h zuz&uuml;gl. MwSt.
185
+ -->
186
+ nach Vereinbarung
187
+ </TD>
188
+
189
+ </TR>
190
+ </TABLE>
191
+
192
+ <A NAME="link"><H1>Pers&ouml;nliche Daten</H1></A>
193
+ <TABLE width="95%" border="0" cellspacing="0" cellpadding="4">
194
+ <TR>
195
+ <!-- Row 1 Column 1 -->
196
+ <TD >
197
+ <B>
198
+ Geburtsdatum:
199
+ </B>
200
+ </TD>
201
+ <!-- Row 1 Column 2 -->
202
+ <TD >
203
+ 1961-11-21
204
+ </TD>
205
+ </TR>
206
+ <TR>
207
+ <!-- Row 2 Column 1 -->
208
+ <TD valign="top">
209
+ <B>
210
+ Ausbildung:
211
+ </B>
212
+ </TD>
213
+ <!-- Row 2 Column 2 -->
214
+ <TD >
215
+ <div id="educations"></div>
216
+ </TD>
217
+ </TR>
218
+ <TR>
219
+ <TD >
220
+ <B>
221
+ Fortbildung:
222
+ </B>
223
+ </TD>
224
+ <TD >
225
+ <div id="weiterbildungen"></div>
226
+ </TD>
227
+ </TR>
228
+ <TR>
229
+ <TD valign="top">
230
+ <B>
231
+ Fremdsprachen:
232
+ </B>
233
+ </TD>
234
+ <TD >
235
+ <div id="fremdsprachen"></div>
236
+ </TD>
237
+ </TR>
238
+ </TABLE>
239
+
240
+ END
241
+ puts "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">"
242
+ array1 = @person.education_list
243
+ array2 = @person.weiterbildungen
244
+ array3 = @person.fremdsprachen
245
+ data = {
246
+ :educations => array1,
247
+ :weiterbildungen => array2,
248
+ :fremdsprachen => array3,
249
+ }
250
+
251
+ tmpl.prettyprint = true
252
+ tmpl.expand(STDOUT, data)
253
+ end
254
+
255
+ def output (newest_first = true, mode=nil)
256
+ puts "<h1>" if mode == :html
257
+ puts "Projekte"
258
+ puts "</h1>" if mode == :html
259
+ puts "<table border=\"1\" width=\"100%\" cellpadding=\"5\">" if mode == :html
260
+ if mode == :html
261
+ puts "<td width=\"10%\"><b>Branche</b></td>"
262
+ puts "<td width=\"70%\"><b>Beschreibung</b></td>"
263
+ puts "<td width=\"10%\"><b>Dauer</b></td>"
264
+ puts "<td width=\"10%\"><b>zuletzt</b></td>"
265
+ end
266
+ if newest_first
267
+ @projects.sort.reverse.each {|project|
268
+ puts "<tr>" if mode == :html
269
+ project.output(mode)
270
+ puts "</tr>" if mode == :html
271
+ }
272
+ else
273
+ @projects.sort.each {|project|
274
+ puts "<tr>" if mode == :html
275
+ project.output(mode)
276
+ puts "</tr>" if mode == :html
277
+ }
278
+ end
279
+ puts "</table>" if mode == :html
280
+ end
281
+
282
+ def output_category (category, mode=:text)
283
+ array1 = []
284
+ category[1].sort.each {|tool|
285
+ monate = total_for(tool)
286
+ #print "ingesamt #{tool.name}: "+monate.to_s+" Monate"
287
+ #if monate > 12
288
+ #print "\t(> "+jahre(monate).to_s+" Jahre)"
289
+ #end
290
+ #puts " zuletzt "+projectlist.last_used(tool)
291
+ array1 << { :name=>tool.name, :dauer=>human_months(monate), :zuletzt=>last_used(tool) }
292
+ }
293
+ #######################################
294
+ tmpl = TemplateText.new <<END
295
+ <h1>#{category[0]}</h1>
296
+ <table border="1" width="100%" cellpadding="5">
297
+ <tr>
298
+ <th>Name</th>
299
+ <th>Dauer</th>
300
+ <th>zuletzt</th>
301
+ </tr>
302
+ <tr id=table1>
303
+ <td id="name">
304
+ <td id="dauer">
305
+ <td id="zuletzt" align="right">
306
+ </tr>
307
+ </table>
308
+ END
309
+
310
+ data = {
311
+ :table1=>array1
312
+ }
313
+ tmpl.prettyprint = true
314
+ tmpl.expand(STDOUT, data)
315
+ #f = File.open("hula#{cate[0]}.html","w")
316
+ end
317
+
318
+ def output_werbung(mode=:text)
319
+ puts "<br>generated with Ruby <a href=\"http://www.thopre.de/rresume.html\">rresume</a>" if mode == :html
320
+ end
321
+
322
+ def total_for(wanted)
323
+ months = 0
324
+ @projects.each {|project|
325
+ project.tools.each {|tool|
326
+ if wanted.kind_of?(String)
327
+ if tool.name == wanted
328
+ months += project.monate
329
+ end
330
+ end
331
+ if wanted.kind_of?(Tool)
332
+ if tool.name == wanted.name
333
+ months += project.monate
334
+ end
335
+ end
336
+ }
337
+ }
338
+ months
339
+ end
340
+
341
+ def last_used(wanted)
342
+ last_year = last_month = 0
343
+ @projects.each {|project|
344
+ project.tools.each {|tool|
345
+ if tool.name == wanted.name
346
+ if project.bis_jahr > last_year ||
347
+ project.bis_jahr == last_year && project.bis_monat > last_month
348
+ last_year = project.bis_jahr
349
+ last_month = project.bis_monat
350
+ end
351
+ end
352
+ }
353
+ }
354
+ "#{last_month.to_s}/#{last_year.to_s}"
355
+ end
356
+
357
+ private
358
+
359
+ #def human_months(months)
360
+ #if months > 12
361
+ #"> "+jahre(months).to_s+" Jahre"
362
+ #else
363
+ #months.to_s+" Monate"
364
+ #end
365
+ #end
366
+
367
+ #def jahre(monate)
368
+ #monate/12.0.round
369
+ #end
370
+
371
+ end
@@ -0,0 +1,14 @@
1
+ class Tool
2
+
3
+ attr_reader :name, :total, :zuletzt
4
+
5
+ def initialize(name)
6
+ @name = name
7
+ @total = 0
8
+ @zuletzt = Date.new(1970,1,1)
9
+ end
10
+
11
+ def <=>(other)
12
+ self.name <=> other.name
13
+ end
14
+ end
data/lib/rresume.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'rresume/person'
2
+ require 'rresume/project'
3
+ require 'rresume/projectlist'
4
+ require 'rresume/tool'
5
+ require 'rresume/duration'
6
+
data/lib/tables.rb ADDED
@@ -0,0 +1,2 @@
1
+
2
+