rresume 0.0.2

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/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
+