rresume 0.1.0 → 0.1.1
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/lib/rresume/person.rb +99 -26
- data/lib/rresume/tool.rb +1 -1
- data/{lib/thomas.rb → test/example_thomas.rb} +120 -56
- data/test/huhu.html +33 -0
- data/test/profil.html +535 -0
- data/test/tc_HTML_Konformitaet_thopre_de.rb +18 -0
- data/test/tc_thomas_neue_methode.rb +17 -1
- data/test/tc_tool.rb +38 -4
- data/test/toolcheck.rb +24 -0
- data/test/ts_rresume.rb +3 -2
- data/test/vorlage_profil.html +82 -83
- metadata +7 -4
- data/test/beispeil2.rb +0 -22
data/lib/rresume/person.rb
CHANGED
@@ -3,7 +3,7 @@ class Person
|
|
3
3
|
|
4
4
|
attr_reader :firstname, :lastname
|
5
5
|
attr_accessor :adresse, :plz, :ort, :telefon, :mobil, :email, :education_list,
|
6
|
-
:weiterbildungen, :fremdsprachen
|
6
|
+
:weiterbildungen, :fremdsprachen, :sonstiges
|
7
7
|
|
8
8
|
def initialize(firstname="",lastname="")
|
9
9
|
@firstname = firstname
|
@@ -21,24 +21,78 @@ class Person
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
### def output_category_links(mode)
|
25
|
+
### if mode == :text
|
26
|
+
### # Links in Text-Ausgabe nicht sinnfoll
|
27
|
+
### return
|
28
|
+
### end
|
29
|
+
### puts "<ol>" if mode == :html
|
30
|
+
### @categories.each {|category|
|
31
|
+
### name = category[0]
|
32
|
+
### puts "<li><a href=\"#anchor_#{name}\">#{name}</a></li>" if mode == :html
|
33
|
+
### }
|
34
|
+
### puts "<li><a href=\"#anchor_Sonstige_Kenntnisse\">Sonstige Kenntnisse</a></li>" if mode == :html
|
35
|
+
### puts "<li><a href=\"#anchor_Projekte\">Projekte</a></li>" if mode == :html
|
36
|
+
### puts "</ol>" if mode == :html
|
37
|
+
### end
|
38
|
+
|
39
|
+
def links_as_string
|
40
|
+
str=""
|
41
|
+
str = str+"<ol>"
|
42
|
+
@categories.each {|category|
|
43
|
+
name = category[0].gsub(/ /,'_')
|
44
|
+
str = str+"<li><a href=\"#anchor_#{name}\">#{name}</a></li>"
|
45
|
+
}
|
46
|
+
str = str+"<li><a href=\"#anchor_Sonstige_Kenntnisse\">Sonstige Kenntnisse</a></li>"
|
47
|
+
str = str+"<li><a href=\"#anchor_Projekte\">Projekte</a></li>"
|
48
|
+
str = str+"</ol>"
|
49
|
+
str
|
50
|
+
end
|
24
51
|
|
25
52
|
def write(mode=:html, order=:newest_first, verfuegbarkeit=nil)
|
53
|
+
output_oben if mode==:html
|
54
|
+
### output_category_links(mode)
|
26
55
|
output_personal(mode,verfuegbarkeit)
|
27
56
|
output_projects(mode, order)
|
28
57
|
@categories.each {|output_category|
|
29
58
|
output_category(output_category, mode)
|
30
59
|
}
|
31
|
-
|
60
|
+
output_sonstiges(mode)
|
61
|
+
output_werbung(mode)
|
32
62
|
end
|
33
63
|
|
64
|
+
###TODO: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
65
|
+
|
66
|
+
def output_oben
|
67
|
+
puts <<END
|
68
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
|
69
|
+
<html>
|
70
|
+
<head>
|
71
|
+
<title>Profil #{@firstname} #{@lastname}</title>
|
72
|
+
</head>
|
73
|
+
|
74
|
+
<body background="" bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
|
75
|
+
END
|
76
|
+
end # output_oben
|
77
|
+
|
78
|
+
#TODO: <http://validator.w3.org/check?uri=http%3A%2F%2Fwww.thopre.de%2Fprofil.html>
|
79
|
+
# http://validator.w3.org/check/referer
|
80
|
+
# http://www.w3.org/Icons/valid-xhtml10
|
81
|
+
# valid-xhtml10.png
|
82
|
+
# valid-html401.png
|
83
|
+
|
84
|
+
# <br><a href="http://validator.w3.org/check/referer">
|
85
|
+
# <img src="valid-html401.png" alt="valid html 4.01 logo">
|
86
|
+
# </a>
|
87
|
+
|
34
88
|
def output_werbung(mode)
|
35
89
|
if mode == :html
|
36
90
|
puts <<END
|
37
|
-
<br>
|
91
|
+
<br>created with <a href="http://www.thopre.de/rresume/">rresume</a>
|
38
92
|
END
|
39
93
|
else
|
40
94
|
puts <<END
|
41
|
-
\
|
95
|
+
\ncreated with rresume (see: http://www.thopre.de/rresume/)
|
42
96
|
END
|
43
97
|
end
|
44
98
|
end
|
@@ -118,13 +172,6 @@ __END__
|
|
118
172
|
|
119
173
|
tmpl = TemplateText.new <<END
|
120
174
|
|
121
|
-
<HTML>
|
122
|
-
|
123
|
-
<HEAD>
|
124
|
-
<TITLE>Profil #{@firstname} #{@lastname}</TITLE>
|
125
|
-
</HEAD>
|
126
|
-
|
127
|
-
<BODY BACKGROUND="" BGCOLOR="#ffffff" TEXT="#000000" LINK="#0000ff" VLINK="#800080" ALINK="#ff0000">
|
128
175
|
|
129
176
|
#{dokument_source}
|
130
177
|
|
@@ -149,15 +196,7 @@ email: <a href="mailto:#{@email}">#{@email}</a><BR>
|
|
149
196
|
</TR>
|
150
197
|
</TABLE>
|
151
198
|
|
152
|
-
|
153
|
-
<ol>
|
154
|
-
<li><a href="#hw">Hardware</a>
|
155
|
-
<li><a href="#bs">Betriebssysteme</a>
|
156
|
-
<li><a href="#db">Datenbanken</a>
|
157
|
-
<li><a href="#to">Tools / Sonstiges</a>
|
158
|
-
<li><a href="#la">Programmiersprachen</a>
|
159
|
-
<li><a href="#pr">Projekte</a>
|
160
|
-
</ol>
|
199
|
+
#{links_as_string}
|
161
200
|
<hr>
|
162
201
|
|
163
202
|
<H1>Aktuelles</H1>
|
@@ -192,7 +231,7 @@ Stundensatz:
|
|
192
231
|
</TR>
|
193
232
|
</TABLE>
|
194
233
|
|
195
|
-
<
|
234
|
+
<h1><a name="link">Persönliche Daten</a></h1>
|
196
235
|
<TABLE width="95%" border="0" cellspacing="0" cellpadding="4">
|
197
236
|
<TR>
|
198
237
|
<!-- Row 1 Column 1 -->
|
@@ -241,7 +280,7 @@ Stundensatz:
|
|
241
280
|
</TABLE>
|
242
281
|
|
243
282
|
END
|
244
|
-
puts "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">"
|
283
|
+
#TODO: puts "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">"
|
245
284
|
array1 = @education_list
|
246
285
|
array2 = @weiterbildungen
|
247
286
|
array3 = @fremdsprachen
|
@@ -258,15 +297,18 @@ END
|
|
258
297
|
|
259
298
|
|
260
299
|
def output_projects (mode,order)
|
300
|
+
puts "<a name=\"anchor_Projekte\">" if mode == :html
|
261
301
|
puts "<h1>" if mode == :html
|
262
302
|
puts "Projekte"
|
263
303
|
puts "</h1>" if mode == :html
|
264
304
|
puts "<table border=\"1\" width=\"100%\" cellpadding=\"5\">" if mode == :html
|
265
305
|
if mode == :html
|
266
|
-
puts "<
|
267
|
-
puts "<
|
268
|
-
puts "<
|
269
|
-
puts "<
|
306
|
+
puts "<tr>"
|
307
|
+
puts "<th width=\"10%\"><b>Branche</b></th>"
|
308
|
+
puts "<th width=\"70%\"><b>Beschreibung</b></th>"
|
309
|
+
puts "<th width=\"10%\"><b>Dauer</b></th>"
|
310
|
+
puts "<th width=\"10%\"><b>zuletzt</b></th>"
|
311
|
+
puts "</tr>"
|
270
312
|
end
|
271
313
|
if order == :newest_first
|
272
314
|
@projectlist.sort.reverse.each {|project|
|
@@ -300,6 +342,7 @@ END
|
|
300
342
|
}
|
301
343
|
#######################################
|
302
344
|
tmpl = TemplateText.new <<END
|
345
|
+
<a name="anchor_#{category[0].gsub(/ /,'_')}">
|
303
346
|
<h1>#{category[0]}</h1>
|
304
347
|
<table border="1" width="100%" cellpadding="5">
|
305
348
|
<tr>
|
@@ -324,6 +367,36 @@ END
|
|
324
367
|
#f = File.open("hula#{cate[0]}.html","w")
|
325
368
|
end
|
326
369
|
|
370
|
+
def output_sonstiges(mode)
|
371
|
+
# array1 = []
|
372
|
+
# array1 << { :text=>@sonstiges }
|
373
|
+
########################################
|
374
|
+
#tmpl = TemplateText.new <<END
|
375
|
+
#<h1>Sonstige Kenntnisse</h1>
|
376
|
+
#<table border="1" width="100%" cellpadding="5">
|
377
|
+
# <tr id=table1>
|
378
|
+
# <td id="text">
|
379
|
+
# </tr>
|
380
|
+
#</table>
|
381
|
+
#END
|
382
|
+
# data = {
|
383
|
+
# :table1=>array1
|
384
|
+
# }
|
385
|
+
# tmpl.prettyprint = true
|
386
|
+
# tmpl.expand($stdout, data)
|
387
|
+
|
388
|
+
#erstmal nur die einfache L�sung ohne Template
|
389
|
+
puts <<_END_
|
390
|
+
<a name="anchor_Sonstige_Kenntnisse">
|
391
|
+
<h1>Sonstige Kenntnisse</h1>
|
392
|
+
<table border="1" width="100%" cellpadding="5">
|
393
|
+
<tr>
|
394
|
+
<td>#{@sonstiges}</td>
|
395
|
+
</tr>
|
396
|
+
</table>
|
397
|
+
_END_
|
398
|
+
end
|
399
|
+
|
327
400
|
private
|
328
401
|
|
329
402
|
def human_months(months)
|
data/lib/rresume/tool.rb
CHANGED
@@ -1,11 +1,23 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
|
1
3
|
require 'rubygems'
|
4
|
+
require 'rresume'
|
5
|
+
|
2
6
|
require "amrita/template"
|
3
7
|
include Amrita
|
4
8
|
|
5
|
-
|
6
|
-
|
9
|
+
# Ein Beispiel fuer komplettes Profil
|
10
|
+
# (in eine Methode gepackt zum leichtern Aufrufen,
|
11
|
+
# kann aber auch entfallen
|
7
12
|
|
8
13
|
def thomas_profil
|
14
|
+
|
15
|
+
# man definiert alle einzelnen 'Tools', die in Projekten verwendet wurden
|
16
|
+
# und die man im Profil ver�ffentlichen m�chte. Der Name in Anf�hrungszeichen
|
17
|
+
# beim Anlegen ist der Name, der sp�ter ausgegeben werden soll.
|
18
|
+
# 'Tools' k�nnen sein, Programmiersprachen, Datenbanken, Betriebssysteme, etc.
|
19
|
+
# oder auch Kenntnisse aus ganz anderen Berufsbereichen.
|
20
|
+
|
9
21
|
#-- Sprachen
|
10
22
|
ada = Tool.new("Ada")
|
11
23
|
php = Tool.new("PHP")
|
@@ -16,6 +28,7 @@ require 'rresume'
|
|
16
28
|
c = Tool.new("C")
|
17
29
|
shell = Tool.new("Shell-Script")
|
18
30
|
python = Tool.new("Python")
|
31
|
+
|
19
32
|
#-- Datenbanken
|
20
33
|
oracle = Tool.new("Oracle")
|
21
34
|
mysql = Tool.new("MySQL")
|
@@ -25,6 +38,7 @@ require 'rresume'
|
|
25
38
|
dbase = Tool.new("Dbase")
|
26
39
|
informix = Tool.new("Informix")
|
27
40
|
cisam = Tool.new("C-ISAM")
|
41
|
+
|
28
42
|
#-- Betriessysteme/Umgebungen
|
29
43
|
linux = Tool.new("Linux")
|
30
44
|
windows = Tool.new("Windows")
|
@@ -46,8 +60,12 @@ require 'rresume'
|
|
46
60
|
sqlloader = Tool.new("SQL-Loader")
|
47
61
|
awk = Tool.new("AWK")
|
48
62
|
|
49
|
-
# Person f�r Profil
|
63
|
+
# dann wird eine Person (mit Vor- und Zunamen) angegelegt, f�r die das Profil erstellt werden soll
|
50
64
|
thomas = Person.new("Thomas","Preymesser")
|
65
|
+
|
66
|
+
# anschliessend werden pers�nliche Daten und Daten zur Ausbildung, Weiterbildungen, ...
|
67
|
+
# f�r diese Person zugewiesen
|
68
|
+
# hierfuer stehen die im folgenden aufgelisteten Attribute zur Verf�gung
|
51
69
|
thomas.adresse = "Prinzenallee 36"
|
52
70
|
thomas.plz = "13359"
|
53
71
|
thomas.ort = "Berlin"
|
@@ -66,26 +84,52 @@ require 'rresume'
|
|
66
84
|
"Englisch",
|
67
85
|
"Italienisch (Grundkenntnisse)",
|
68
86
|
]
|
69
|
-
|
70
|
-
#
|
87
|
+
# freier Text, hier kann man weitere Kenntnisse angeben, die nicht einem
|
88
|
+
# bestimmten Projekt zuzuordnen sind (z.B. OOD, XML, etc.)
|
89
|
+
# Dies wird als einfacher Text in einem Textkasten ausgegeben. HTML-code
|
90
|
+
# ist erlaubt und wird empfohlen.
|
91
|
+
thomas.sonstiges =<<END
|
92
|
+
sonstige Kenntnisse, die vorhanden sind, aber nicht speziellen Projekten zugeordnet werden können
|
93
|
+
<ul>
|
94
|
+
<li>Objektorientieres Design und Entwicklung</li>
|
95
|
+
<li>Ruby</li>
|
96
|
+
<li>Ruby on Rails</li>
|
97
|
+
<li>XML</li>
|
98
|
+
<li>Test-Driven-Development</li>
|
99
|
+
<li>Unit-Tests</li>
|
100
|
+
<li>SCCS / CVS / Subversion - Versionsverwaltungssysteme</li>
|
101
|
+
<li>CSS</li>
|
102
|
+
<li>Extreme Programming</li>
|
103
|
+
</ul>
|
104
|
+
END
|
105
|
+
|
106
|
+
# ProjectList ist ein Container fuer saemtliche Projekte dieser Person
|
71
107
|
projectlist = ProjectList.new(thomas)
|
72
108
|
|
73
|
-
#
|
74
|
-
|
75
|
-
|
109
|
+
# diese Projektliste an Thomas zuweisen
|
110
|
+
thomas << projectlist
|
111
|
+
|
112
|
+
|
113
|
+
# Jetzt wird ein erstes Projekt angelegt. Die Reihenfolge der Projekte hier
|
114
|
+
# spielt keine Rolle. Bei der Ausgabe kann sp�er immer noch angegeben werden,
|
115
|
+
# ob die Ausgabe chronologisch auf- oder absteigend vorgenommen werden soll.
|
76
116
|
|
77
|
-
# ein erstes Projekt
|
78
117
|
cronon = Project.new("Cronon")
|
79
118
|
|
80
119
|
# Start und Ende des Projekts (Monat/Jahr)
|
81
120
|
cronon.von(4,2006)
|
82
121
|
cronon.bis(8,2006)
|
122
|
+
# Angabe der Branche, hier k�nnte auch direkt ein Kunde angegeben werden (wobei es aber
|
123
|
+
# besser w�re ein separates Attribut 'kunde' f�r sp�tere Versionen von rresume vorzusehen
|
124
|
+
# der Kunde k�nnte bei der Ausgabe wahlweise unterdr�ckt werden)
|
83
125
|
cronon.branche="IT/Web-Dienstleistungen"
|
126
|
+
# hier die Beschreibung des Projekts
|
84
127
|
cronon.beschreibung="- ERP-Anwendungsentwicklung (Baan)"+
|
85
128
|
"- Web-Entwicklung (www.1plusi.de)"+
|
86
129
|
"- Web-Entwicklung f�r eine neuen Online-Community �hnlich OpenBC"
|
87
130
|
|
88
|
-
# Tools
|
131
|
+
# jetzt k�nnen die vorher definierten Tools diesem Projekt zugeordnet werden.
|
132
|
+
|
89
133
|
cronon.used_tool(php)
|
90
134
|
cronon.used_tool(html)
|
91
135
|
cronon.used_tool(css)
|
@@ -94,8 +138,14 @@ require 'rresume'
|
|
94
138
|
cronon.used_tool(oracle)
|
95
139
|
cronon.used_tool(windows)
|
96
140
|
|
141
|
+
# abschliessend muss dieses Projekt noch in die Projektliste - sonst wird es nicht ausgegeben
|
142
|
+
# (bei Geheimprojekten kann dies weggelassen werden, man hat aber trotzdem die Projektdaten
|
143
|
+
# angelegt ;-) )
|
144
|
+
|
97
145
|
projectlist << cronon
|
98
146
|
|
147
|
+
# dann kommt das n�chstes Projekt - gleiches Prinzip wie vorher
|
148
|
+
|
99
149
|
#===================================================================
|
100
150
|
lulaliebe = Project.new("Lulaliebe")
|
101
151
|
lulaliebe.von(5,2005)
|
@@ -455,68 +505,82 @@ Datenbank Oracle 7.x.x, Shell-Scripts, awk, Python. - Realisierung von Batchprog
|
|
455
505
|
|
456
506
|
projectlist << vhs
|
457
507
|
|
508
|
+
# jetzt sind alle Projekte definiert worden
|
458
509
|
|
510
|
+
# Verwaltungskram:
|
459
511
|
|
460
|
-
|
461
|
-
|
462
|
-
# Ausgeben mit Verfuegbarkeit
|
463
|
-
#projectlist.output_personal(:mit_verfuegbarkeit)
|
464
|
-
# Ausgeben ohne Verfuegbarkeit (z.B. bei Verwendung durch andere Firma/Vermittler)
|
465
|
-
projectlist.output_personal(:pdf)
|
466
|
-
|
467
|
-
# alle Projekt auflisten (als html-output)
|
468
|
-
projectlist.output(true,:html)
|
469
|
-
|
470
|
-
# oder als einfache Liste, standardmaessig neueste Projekte am Anfang
|
471
|
-
# projectlist.output
|
472
|
-
# oder von alt nach neu sortieren:
|
473
|
-
# projectlist.output(false)
|
512
|
+
buffer = ""
|
474
513
|
|
514
|
+
def buffer.write(str)
|
515
|
+
self << str
|
516
|
+
end
|
517
|
+
|
518
|
+
# Ausgabe umlenken
|
519
|
+
$stdout = buffer #-> ">>>"
|
475
520
|
|
476
|
-
# Ausgabe der Tools
|
477
521
|
|
522
|
+
# da man nicht alle Fertigkeitkeiten/Tools wild durcheinander ausgeben m�chte, werden hier
|
523
|
+
# Kategorien definiert, denen die einzelnen, oben definierten Tools, zugewiesen werden.
|
524
|
+
# Z.B. Hier die Kategorien Programmmiersprachen, Datenbanken, etc.
|
525
|
+
# Kategorien k�nnen nach eigenen Erfordernissen angelegt und organisiert werden.
|
526
|
+
|
478
527
|
categories = {"Programmiersprachen" => [ada,php,c,cpp,cobol,python,ruby,abap,html,perl],
|
479
528
|
"Datenbanken" => [mysql,oracle,sybase,ctree,db2,dbase,informix,cisam],
|
480
529
|
"Betriebssysteme" => [amboss,linux,windows,os2,unix,sap],
|
481
530
|
"sonstige Tools" => [awk,sqlloader,plsql,css,cisam,oraclereports,oracledesigner,toad,shell],
|
482
531
|
}
|
483
532
|
|
533
|
+
# Da man versehentlich bei der obigen Kategorisierung vielleicht ein Tool vergisst oder doppelt
|
534
|
+
# zuordnet, kann die Zuordnung mit folgender Funktion �berpr�ft werden.
|
535
|
+
# Es wird die Exception RuntimeError ausgel�st mit einem entsprechenden Fehlerhinweis, falls dies
|
536
|
+
# der Fall sein sollte
|
484
537
|
|
485
|
-
# Testen, ob wir alle Tools in eine Kategorie aufgenommen haben
|
486
|
-
# und keines doppelt vorkommt
|
487
538
|
tools_in_categories?(categories)
|
488
539
|
|
489
|
-
#
|
490
|
-
|
491
|
-
|
492
|
-
}
|
493
|
-
projectlist.output_werbung(:html)
|
494
|
-
end # thomas_profil
|
540
|
+
# anschliessend werden diese Kategorien ebenfalls an die Person zugewiesen.
|
541
|
+
# Anmerkung: Man k�nnte hier, z.B. bei mehreren Mitarbeitern einer Firma, auch jedem Mitarbeiter
|
542
|
+
# ein andere Kategorisierung zuweisen (z.B. Buchhaltungskenntnise bei einem Assistenten und Programmiersprachen bei einer Softwareentwicklerin) (oder eben jedem die gleiche).
|
495
543
|
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
544
|
+
thomas << categories
|
545
|
+
|
546
|
+
# jetzt ist eine Person komplett und es folgt die
|
547
|
+
|
548
|
+
### AUSGABE
|
549
|
+
|
550
|
+
#thomas.write(mode=:html,order=:newest_first,:mit_verfuegbarkeit)
|
551
|
+
|
552
|
+
# Ausgabe im Format HTML, Sortierung: neuestes Projekt zuerst, Verfuegbarkeit wird weggelassen
|
553
|
+
# die Ausgabe erfolgt auf die Standand-Ausgabe und mu� mit >"dateiname.html" in die richtige
|
554
|
+
# html-Datei umgelenkt werden.
|
555
|
+
thomas.write(mode=:html,order=:newest_first)
|
556
|
+
|
557
|
+
# Ausgabe zur�cksetzen
|
558
|
+
$stdout = STDOUT
|
559
|
+
|
560
|
+
print buffer
|
561
|
+
|
562
|
+
# Hat der Buffer und die Vorlagedatei den gleichen Inhalt?
|
563
|
+
vergleich=""
|
564
|
+
f=File.new("vorlage_profil.html","r")
|
565
|
+
f.each { |line|
|
566
|
+
# puts line
|
567
|
+
vergleich<<line
|
518
568
|
}
|
569
|
+
|
570
|
+
# if vergleich==buffer
|
571
|
+
# puts "sind gleich"
|
572
|
+
# else
|
573
|
+
# puts "sind nicht gleich"
|
574
|
+
# File.open("/tmp/123","w") {|bf|
|
575
|
+
# bf.print(buffer)
|
576
|
+
# }
|
577
|
+
# puts `diff /tmp/123 vorlage_profil.html`
|
578
|
+
# end
|
579
|
+
# assert_equal(vergleich,buffer,"Buffer ist nicht gleich der Vorlagedatei vorlage_profil.html")
|
519
580
|
end
|
520
581
|
|
521
|
-
|
582
|
+
require 'toolcheck'
|
583
|
+
|
522
584
|
|
585
|
+
# main
|
586
|
+
thomas_profil
|