latex_curriculum_vitae 1.2.2 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +35 -28
- data/History.rdoc +14 -0
- data/LICENSE.rdoc +1 -1
- data/Manifest.txt +0 -8
- data/README.rdoc +10 -8
- data/Rakefile +5 -4
- data/bin/latexcv.rb +7 -4
- data/data/latex_curriculum_vitae/Appendix/Bibliography/bibliography1.bib +0 -4
- data/data/latex_curriculum_vitae/Cover/Cover.tex +6 -25
- data/data/latex_curriculum_vitae/Motivational_Letter/bwanschreiben.tex +11 -18
- data/data/latex_curriculum_vitae/Resume/cv_10.tex +71 -77
- data/data/latex_curriculum_vitae/Resume/friggeri-cv.cls +26 -11
- data/etc/latex_curriculum_vitae.cfg +5 -1
- data/etc/personal_data.tex +1 -1
- data/lib/latex_curriculum_vitae/cover.rb +1 -2
- data/lib/latex_curriculum_vitae/cv.rb +2 -1
- data/lib/latex_curriculum_vitae/email.rb +26 -18
- data/lib/latex_curriculum_vitae/entityfile.rb +26 -5
- data/lib/latex_curriculum_vitae/get-config.rb +11 -5
- data/lib/latex_curriculum_vitae/letter.rb +3 -1
- data/lib/latex_curriculum_vitae/notifier.rb +2 -1
- data/lib/latex_curriculum_vitae/outfile.rb +11 -5
- data/lib/latex_curriculum_vitae.rb +18 -7
- metadata +19 -13
- data/data/latex_curriculum_vitae/Resume/cv_10.aux +0 -43
- data/data/latex_curriculum_vitae/Resume/cv_10.bbl +0 -1238
- data/data/latex_curriculum_vitae/Resume/cv_10.bcf +0 -2273
- data/data/latex_curriculum_vitae/Resume/cv_10.blg +0 -82
- data/data/latex_curriculum_vitae/Resume/cv_10.out +0 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.pdf +0 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.run.xml +0 -86
- data/lib/latex_curriculum_vitae/glade/latexcv.glade +0 -249
@@ -9,6 +9,8 @@
|
|
9
9
|
% Original author:
|
10
10
|
% Adrien Friggeri (adrien@friggeri.net)
|
11
11
|
% https://github.com/afriggeri/CV
|
12
|
+
% Modfied by: Sascha Manns (Sascha.Manns@mailbox.org)
|
13
|
+
% https://github.com/saigkill/latex_curriculum_vitae
|
12
14
|
%
|
13
15
|
% License:
|
14
16
|
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
|
@@ -19,16 +21,15 @@
|
|
19
21
|
%
|
20
22
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
21
23
|
|
22
|
-
\documentclass[a4paper
|
24
|
+
\documentclass[a4paper]{friggeri-cv} % Add 'print' as an option into the square bracket to remove colors from this template for printing
|
23
25
|
\hypersetup{
|
24
26
|
pdftitle={Bewerbungsunterlagen von Sascha Manns}, %%
|
25
27
|
pdfauthor={Sascha Manns}, %%
|
26
28
|
pdfsubject={Bewerbungsunterlagen}, %%
|
27
29
|
pdfcreator={XeLaTEX and Biber with hyperref-package.},
|
28
30
|
pdfproducer={Sascha Manns, Mayen}, %%
|
29
|
-
pdfkeywords={Manns, Mayen, Bewerbung, IT, Community, Linux, Programmierer, Dispatcher, Buchautor, Schriftsteller, Geschäftsprozess} %%
|
31
|
+
pdfkeywords={Manns, Mayen, Bewerbung, IT-Support, Community, Linux, Programmierer, Dispatcher, Buchautor, Schriftsteller, Geschäftsprozess} %%
|
30
32
|
}
|
31
|
-
\usepackage{pdfpages}
|
32
33
|
\usepackage{graphicx}
|
33
34
|
\usepackage{xltxtra}
|
34
35
|
\usepackage{progressbar}
|
@@ -36,7 +37,6 @@ pdfkeywords={Manns, Mayen, Bewerbung, IT, Community, Linux, Programmierer, Dispa
|
|
36
37
|
\addbibresource{../Appendix/Bibliography/bibliography1.bib} % Specify the bibliography file to include publications
|
37
38
|
|
38
39
|
\begin{document}
|
39
|
-
%\includepdf{../Cover/Cover}
|
40
40
|
|
41
41
|
\header{Sascha}{Manns}{Supporter/Documentation Specialist} % Your name and current job title/field
|
42
42
|
|
@@ -53,7 +53,7 @@ Germany
|
|
53
53
|
+49 (1573) 924 2730
|
54
54
|
+49 (2651) 40 14 045
|
55
55
|
~
|
56
|
-
\href{mailto:Sascha.Manns@
|
56
|
+
\href{mailto:Sascha.Manns@mailbox.org}{Sascha.Manns@mailbox.org}\includegraphics[width=0.3cm]{../Pictures/email.png}
|
57
57
|
\href{http://saigkill.github.io}{saigkill.github.io}\includegraphics[width=0.3cm]{../Pictures/aboutme.png}
|
58
58
|
Geburtsdatum: 01.10.1979
|
59
59
|
\section{Social Media}
|
@@ -107,18 +107,18 @@ Russisch \progressbar[linecolor=blue,tickscolor=orange,emptycolor=white,filledco
|
|
107
107
|
{Hays Temp GmbH / More Holding}
|
108
108
|
{Mannheim}
|
109
109
|
{\emph{IT-Supporter/Dispatcher/Controller} \\
|
110
|
-
Detailierte Aufgaben bei ITSCare Neuwied (ZBV):
|
111
|
-
\begin{itemize}
|
112
|
-
\item Kundenpflege via Telefon und Email
|
113
|
-
\item Dispatching und Teamcontroling
|
114
|
-
\item AmSys/IDM (AOK Krankenkassen)
|
115
|
-
\item Eröffnung, Entsperrung oder Löschung von Benutzerkonten
|
116
|
-
\item Passwort- und Rechtevergaben
|
117
|
-
\item SLA-konforme Bearbeitung von eingehenden Störungen (betreffend Benutzerverwaltung) im Rahmen des Incident-Managements
|
118
|
-
\item Pflege von Logon-Prozeduren
|
119
|
-
\item Annahme, Erfassung und Bearbeitung eingehender Benutzeranträge
|
120
|
-
\item Benutzerkontenverwaltung im Active Directory
|
121
|
-
\end{itemize}
|
110
|
+
Detailierte Aufgaben bei ITSCare Neuwied (ZBV):
|
111
|
+
\begin{itemize}
|
112
|
+
\item Kundenpflege via Telefon und Email
|
113
|
+
\item Dispatching und Teamcontroling
|
114
|
+
\item AmSys/IDM (AOK Krankenkassen)
|
115
|
+
\item Eröffnung, Entsperrung oder Löschung von Benutzerkonten
|
116
|
+
\item Passwort- und Rechtevergaben
|
117
|
+
\item SLA-konforme Bearbeitung von eingehenden Störungen (betreffend Benutzerverwaltung) im Rahmen des Incident-Managements
|
118
|
+
\item Pflege von Logon-Prozeduren
|
119
|
+
\item Annahme, Erfassung und Bearbeitung eingehender Benutzeranträge
|
120
|
+
\item Benutzerkontenverwaltung im Active Directory
|
121
|
+
\end{itemize}
|
122
122
|
}
|
123
123
|
%------------------------------------------------
|
124
124
|
\entry
|
@@ -126,14 +126,14 @@ Detailierte Aufgaben bei ITSCare Neuwied (ZBV):
|
|
126
126
|
{Lulu Press Inc.}
|
127
127
|
{Homeoffice}
|
128
128
|
{\emph{Buchautor \& Herausgeber}\\
|
129
|
-
Detailierte Aufgaben:
|
130
|
-
\begin{itemize}
|
131
|
-
\item Recherche
|
132
|
-
\item Schreiben des Handbuchs
|
133
|
-
\item Einführung des Lektorenteams in das Projekt
|
134
|
-
\item Einführung einer Google Code-In Studentin in den Textsatz (Teilnahme als Mentor)
|
135
|
-
\item Satz \& Layout (\LaTeX{} und DocBook/XSL-FO)
|
136
|
-
\end{itemize}
|
129
|
+
Detailierte Aufgaben:
|
130
|
+
\begin{itemize}
|
131
|
+
\item Recherche
|
132
|
+
\item Schreiben des Handbuchs
|
133
|
+
\item Einführung des Lektorenteams in das Projekt
|
134
|
+
\item Einführung einer Google Code-In Studentin in den Textsatz (Teilnahme als Mentor)
|
135
|
+
\item Satz \& Layout (\LaTeX{} und DocBook/XSL-FO)
|
136
|
+
\end{itemize}
|
137
137
|
}
|
138
138
|
%------------------------------------------------
|
139
139
|
\entry
|
@@ -141,18 +141,18 @@ Detailierte Aufgaben:
|
|
141
141
|
{open-slx GmbH}
|
142
142
|
{Homeoffice}
|
143
143
|
{\emph{Community \& Support Agent} \\
|
144
|
-
Detailierte Aufgaben:
|
145
|
-
\begin{itemize}
|
146
|
-
\item Level 1 \& 2 Support via Telefon und Email
|
147
|
-
\item Testen von Software
|
148
|
-
\item Webseitenbetreuung \& Social Media
|
149
|
-
\item Dokumentation
|
150
|
-
\item Community Management
|
151
|
-
\item Projektleitung deutsches openSUSE Wiki. Migration des Wikis zu neuer Struktur
|
152
|
-
\item openSUSE Weekly News
|
153
|
-
\item Paketverwaltung einiger RPM-Pakete
|
154
|
-
\item openSUSE Membership Application Team
|
155
|
-
\end{itemize}
|
144
|
+
Detailierte Aufgaben:
|
145
|
+
\begin{itemize}
|
146
|
+
\item Level 1 \& 2 Support via Telefon und Email
|
147
|
+
\item Testen von Software
|
148
|
+
\item Webseitenbetreuung \& Social Media
|
149
|
+
\item Dokumentation
|
150
|
+
\item Community Management
|
151
|
+
\item Projektleitung deutsches openSUSE Wiki. Migration des Wikis zu neuer Struktur
|
152
|
+
\item openSUSE Weekly News
|
153
|
+
\item Paketverwaltung einiger RPM-Pakete
|
154
|
+
\item openSUSE Membership Application Team
|
155
|
+
\end{itemize}
|
156
156
|
Auflösung der Stelle durch mangelnde Absatzzahlen des Boxproduktes.
|
157
157
|
}
|
158
158
|
\end{entrylist}
|
@@ -163,17 +163,17 @@ Auflösung der Stelle durch mangelnde Absatzzahlen des Boxproduktes.
|
|
163
163
|
{openSUSE Linux Projekt}
|
164
164
|
{Homeoffice}
|
165
165
|
{\emph{Paketbetreuer/Teamleiter}\\
|
166
|
-
Detailierte Aufgaben:
|
167
|
-
\begin{itemize}
|
168
|
-
\item Beschaffung, Aktualisierung des Sourcecodes im Buildservice
|
169
|
-
\item Compiling und Packaging neuer Binärpakete
|
170
|
-
\item Verteilung via Buildservice
|
171
|
-
\item Leiter des openSUSE Newsletters und
|
172
|
-
\item Erfinder eines neuen Podcastformates (Vertonte Weekly News)
|
173
|
-
\item openSUSE Medical Project (Subprojektgründer)
|
174
|
-
\item Mitglied des openSUSE Marketing Teams
|
175
|
-
\item Mitglied des openSUSE Feature Screening Teams
|
176
|
-
\end{itemize}
|
166
|
+
Detailierte Aufgaben:
|
167
|
+
\begin{itemize}
|
168
|
+
\item Beschaffung, Aktualisierung des Sourcecodes im Buildservice
|
169
|
+
\item Compiling und Packaging neuer Binärpakete
|
170
|
+
\item Verteilung via Buildservice
|
171
|
+
\item Leiter des openSUSE Newsletters und publikation in bis zu 12 Sprachen
|
172
|
+
\item Erfinder eines neuen Podcastformates (Vertonte Weekly News)
|
173
|
+
\item openSUSE Medical Project (Subprojektgründer)
|
174
|
+
\item Mitglied des openSUSE Marketing Teams
|
175
|
+
\item Mitglied des openSUSE Feature Screening Teams
|
176
|
+
\end{itemize}
|
177
177
|
}
|
178
178
|
%-----------------------------------------------
|
179
179
|
\entry
|
@@ -189,14 +189,14 @@ Detailierte Aufgaben:
|
|
189
189
|
{Auto Deschner GmbH}
|
190
190
|
{Mendig}
|
191
191
|
{\emph{Kaufmann im Einzelhandel}\\
|
192
|
-
Detailierte Aufgaben:
|
193
|
-
\begin{itemize}
|
194
|
-
\item Einkauf \& Warenannahme \& Kontrolle
|
195
|
-
\item Bestandsbuchungen der Waren
|
196
|
-
\item Kundenbetreuung
|
197
|
-
\item Rechnungserstellung
|
198
|
-
\item Projektplanung
|
199
|
-
\end{itemize}
|
192
|
+
Detailierte Aufgaben:
|
193
|
+
\begin{itemize}
|
194
|
+
\item Einkauf \& Warenannahme \& Kontrolle
|
195
|
+
\item Bestandsbuchungen der Waren
|
196
|
+
\item Kundenbetreuung
|
197
|
+
\item Rechnungserstellung
|
198
|
+
\item Projektplanung
|
199
|
+
\end{itemize}
|
200
200
|
}
|
201
201
|
\end{entrylist}
|
202
202
|
|
@@ -233,12 +233,6 @@ Allgemeine kaufm. Tätigkeiten.
|
|
233
233
|
{Technische Hochschule Mittelhessen}
|
234
234
|
{\emph{MOOC}}
|
235
235
|
%------------------------------------------------
|
236
|
-
%\entry
|
237
|
-
%{06/2013}
|
238
|
-
%{Kompetenzpass für Ökonomen}
|
239
|
-
%{BV Deutscher Volks- und Betriebswirte}
|
240
|
-
%{Düsseldorf}
|
241
|
-
%------------------------------------------------
|
242
236
|
\entry
|
243
237
|
{04/2013}
|
244
238
|
{Onlinequalifizierung: Schlüsselkompetenzen kompakt}
|
@@ -258,18 +252,12 @@ Allgemeine kaufm. Tätigkeiten.
|
|
258
252
|
{mUXCamp}
|
259
253
|
{mUXCamp, Worms}
|
260
254
|
{Planungsteam für nächstes Camp. (Mitveranstalter: \\FG Wirtschaftsinformatik des BDVB)}
|
261
|
-
%--------------------------------------------
|
262
|
-
%\entry
|
263
|
-
%{2013--jetzt}
|
264
|
-
%{BV Deutscher Volks- und Betriebswirte}
|
265
|
-
%{FG Wirtschaftsinformatik}
|
266
|
-
%{Mitarbeit in verschiedenen Projekten}
|
267
255
|
%---------------------------------------------
|
268
256
|
\entry
|
269
257
|
{2010--2011}
|
270
258
|
{Piratenpartei Deutschland}
|
271
259
|
{Bundespressestelle}
|
272
|
-
{}
|
260
|
+
{Gründungsmitglied SG-Presse}
|
273
261
|
%--------------------------------------------
|
274
262
|
\entry
|
275
263
|
{2008--2015}
|
@@ -370,6 +358,12 @@ Allgemeine kaufm. Tätigkeiten.
|
|
370
358
|
%------------------------------------------------
|
371
359
|
\entry
|
372
360
|
{2010}
|
361
|
+
{Radiotux Podcast}
|
362
|
+
{Produzent}
|
363
|
+
{Erfinder des Weekly-News Podcast-Formats}
|
364
|
+
%------------------------------------------------
|
365
|
+
\entry
|
366
|
+
{2010}
|
373
367
|
{openSUSE Conference}
|
374
368
|
{Vortrag}
|
375
369
|
{Vortrag über den aktuellen Stand der Weekly News und die Planungen der Zukunft}
|
@@ -399,15 +393,15 @@ Allgemeine kaufm. Tätigkeiten.
|
|
399
393
|
|
400
394
|
\printbibsection{book}{Bücher} % Print all books from the bibliography
|
401
395
|
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
396
|
+
%\begin{refsection} % This is a custom heading for those references marked as "inproceedings" but not containing "keyword=france"
|
397
|
+
%\nocite{*}
|
398
|
+
%\printbibliography[sorting=chronological, type=inproceedings, title={international peer-reviewed conferences/proceedings}, notkeyword={france}, heading=subbibliography]
|
399
|
+
%\end{refsection}
|
406
400
|
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
401
|
+
%\begin{refsection} % This is a custom heading for those references marked as "inproceedings" and containing "keyword=france"
|
402
|
+
%\nocite{*}
|
403
|
+
%\printbibliography[sorting=chronological, type=inproceedings, title={local peer-reviewed conferences/proceedings}, keyword={france}, heading=subbibliography]
|
404
|
+
%\end{refsection}
|
411
405
|
|
412
406
|
\printbibsection{misc}{other publications} % Print all miscellaneous entries from the bibliography
|
413
407
|
|
@@ -1,3 +1,25 @@
|
|
1
|
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2
|
+
% Friggeri Resume/CV
|
3
|
+
% XeLaTeX Template
|
4
|
+
% Version 1.0 (5/5/13)
|
5
|
+
%
|
6
|
+
% This template has been downloaded from:
|
7
|
+
% http://www.LaTeXTemplates.com
|
8
|
+
%
|
9
|
+
% Original author:
|
10
|
+
% Adrien Friggeri (adrien@friggeri.net)
|
11
|
+
% https://github.com/afriggeri/CV
|
12
|
+
% Modfied by: Sascha Manns (Sascha.Manns@mailbox.org)
|
13
|
+
% https://github.com/saigkill/latex_curriculum_vitae
|
14
|
+
%
|
15
|
+
% License:
|
16
|
+
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
|
17
|
+
%
|
18
|
+
% Important notes:
|
19
|
+
% This template needs to be compiled with XeLaTeX and the bibliography, if used,
|
20
|
+
% needs to be compiled with biber rather than bibtex.
|
21
|
+
%
|
22
|
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
1
23
|
\ProvidesClass{friggeri-cv}[2012/04/30 CV class]
|
2
24
|
\NeedsTeXFormat{LaTeX2e}
|
3
25
|
|
@@ -51,10 +73,10 @@
|
|
51
73
|
|
52
74
|
\newfontfamily\bodyfont[]{Koblenz Serial}
|
53
75
|
\newfontfamily\thinfont[]{Koblenz Serial Light}
|
54
|
-
\newfontfamily\headingfont[]{Koblenz Serial Bold}
|
76
|
+
\newfontfamily\headingfont[]{Koblenz Serial Bold}
|
55
77
|
|
56
78
|
\defaultfontfeatures{Mapping=tex-text}
|
57
|
-
\setmainfont[Mapping=tex-text, Color=textcolor]{Isonorm Pro}
|
79
|
+
\setmainfont[Mapping=tex-text, Color=textcolor]{Isonorm Pro}
|
58
80
|
|
59
81
|
%\setmathfont{XITS Math}
|
60
82
|
|
@@ -295,14 +317,6 @@
|
|
295
317
|
\par\vspace{0.3\baselineskip}
|
296
318
|
}
|
297
319
|
|
298
|
-
%\DeclareNameFormat{author}{%
|
299
|
-
% \small\addfontfeature{Color=lightgray}%
|
300
|
-
% \ifblank{#3}{}{#3\space}#1%
|
301
|
-
% \ifthenelse{\value{listcount}<\value{liststop}}
|
302
|
-
% {\addcomma\space}
|
303
|
-
% {}%
|
304
|
-
%}
|
305
|
-
|
306
320
|
\DeclareNameFormat{author}{%
|
307
321
|
\nameparts{#1}%
|
308
322
|
\small\addfontfeature{Color=lightgray}%
|
@@ -314,8 +328,9 @@
|
|
314
328
|
|
315
329
|
\newcommand{\printbibsection}[2]{
|
316
330
|
\begin{refsection}
|
331
|
+
\newrefcontext[sorting=chronological]
|
317
332
|
\nocite{*}
|
318
|
-
\printbibliography[
|
333
|
+
\printbibliography[type={#1}, title={#2}, heading=subbibliography]
|
319
334
|
\end{refsection}
|
320
335
|
}
|
321
336
|
|
@@ -6,6 +6,10 @@ name_of_letter = "bwanschreiben"
|
|
6
6
|
own_name = "Sascha Manns"
|
7
7
|
own_email_address = "Sascha.Manns@directbox.com"
|
8
8
|
own_smtp = "smtp.my.com"
|
9
|
+
own_port = "587"
|
9
10
|
own_username = "myusername"
|
10
11
|
own_password = "mypassword"
|
11
|
-
pdf_reader = "/home/sascha/FoxitSoftware/FoxitReader/FoxitReader.sh"
|
12
|
+
pdf_reader = "/home/sascha/FoxitSoftware/FoxitReader/FoxitReader.sh"
|
13
|
+
shorten_url = "yes"
|
14
|
+
bitly_user = "test"
|
15
|
+
bitly_apikey = "0815"
|
data/etc/personal_data.tex
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
\def\mystreet{Maifeldstraße 10}
|
4
4
|
\def\mycity{56727 Mayen}
|
5
5
|
\def\myphone{+49-1573-924~27~30}
|
6
|
-
\def\myemail{Sascha.Manns@
|
6
|
+
\def\myemail{Sascha.Manns@mailbox.org}
|
7
7
|
\def\myblog{http://saigkill.github.io}
|
8
8
|
\def\mybank{Kto. DE88\ 5765\ 0010\ 0198\ 2426\ 20 \\
|
9
9
|
BIC: MALADE51MYN \\
|
@@ -1,9 +1,8 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
# encoding: utf-8
|
3
2
|
# @author Sascha Manns
|
4
3
|
# @abstract A module for creating the latex cover
|
5
4
|
#
|
6
|
-
# Copyright (C) 2015-
|
5
|
+
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
7
6
|
# License: MIT
|
8
7
|
|
9
8
|
# Dependencies
|
@@ -2,12 +2,13 @@
|
|
2
2
|
# @author Sascha Manns
|
3
3
|
# @abstract CV Module for creating the curriculum vitae
|
4
4
|
#
|
5
|
-
# Copyright (C) 2015-
|
5
|
+
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
6
6
|
# License: MIT
|
7
7
|
|
8
8
|
# Dependencies
|
9
9
|
require 'rainbow/ext/string'
|
10
10
|
require 'combine_pdf'
|
11
|
+
require 'fileutils'
|
11
12
|
|
12
13
|
# main Module
|
13
14
|
module LatexCurriculumVitae
|
@@ -3,12 +3,13 @@
|
|
3
3
|
# @author Sascha Manns
|
4
4
|
# @abstract module for preparing a email and send it out
|
5
5
|
#
|
6
|
-
# Copyright (C) 2015-
|
6
|
+
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
7
7
|
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
10
10
|
require 'rainbow/ext/string'
|
11
11
|
require 'pony'
|
12
|
+
require 'resolv-replace.rb'
|
12
13
|
require File.expand_path(File.join(File.dirname(__FILE__), 'get-config'))
|
13
14
|
|
14
15
|
# rubocop:disable Metrics/LineLength
|
@@ -22,8 +23,10 @@ module LatexCurriculumVitae
|
|
22
23
|
# @param [String] jobtitle Title of the target job
|
23
24
|
# @param [String] contact_sex Can be male, female or unknown
|
24
25
|
# @param [String] proactive Can be yes or no
|
26
|
+
# @param [String] letter For preparing the letter
|
27
|
+
# @param [String] name_of_pdf Name of the output pdf
|
25
28
|
def self.create_email(contact, emailaddress, jobtitle, contact_sex, proactive, letter, name_of_pdf)
|
26
|
-
own_email_address, own_smtp, own_username, own_password = LatexCurriculumVitae::GetConfig.get_smtp
|
29
|
+
own_email_address, own_smtp, own_username, own_password, own_port, own_tls = LatexCurriculumVitae::GetConfig.get_smtp
|
27
30
|
introduction = LatexCurriculumVitae::Email.introduction(contact, contact_sex)
|
28
31
|
subject = LatexCurriculumVitae::Email.subject(proactive, jobtitle)
|
29
32
|
body = LatexCurriculumVitae::Email.get_body(introduction, letter)
|
@@ -40,7 +43,8 @@ module LatexCurriculumVitae
|
|
40
43
|
:via => :smtp,
|
41
44
|
:via_options => {
|
42
45
|
:address => own_smtp,
|
43
|
-
:port =>
|
46
|
+
:port => own_port,
|
47
|
+
:enable_starttls_auto => true,
|
44
48
|
:user_name => own_username,
|
45
49
|
:password => own_password,
|
46
50
|
:authentication => :plain, # :plain, :login, :cram_md5, no auth by default
|
@@ -52,6 +56,7 @@ module LatexCurriculumVitae
|
|
52
56
|
# Method for building the introduction
|
53
57
|
# @param [String] contact Name of the contact
|
54
58
|
# @param [String] contact_sex Can be male, female or unknown
|
59
|
+
# @return [String] Returns introductiion
|
55
60
|
def self.introduction(contact, contact_sex)
|
56
61
|
if contact == ''
|
57
62
|
introduction = 'Sehr geehrte Damen und Herren,'
|
@@ -68,6 +73,7 @@ module LatexCurriculumVitae
|
|
68
73
|
# Method for building the subject
|
69
74
|
# @param [String] proactive Can be yes or no
|
70
75
|
# @param [String] jobtitle Title of the target job
|
76
|
+
# @return [String] subject Set the subject
|
71
77
|
def self.subject(proactive, jobtitle)
|
72
78
|
if proactive == 'yes'
|
73
79
|
subject = "Initiativbewerbung um einen Arbeitsplatz als #{jobtitle}"
|
@@ -80,6 +86,7 @@ module LatexCurriculumVitae
|
|
80
86
|
# Method for building the email body
|
81
87
|
# @param [String] introduction EMail introduction
|
82
88
|
# @param [String] letter With motivational letter? Can be yes or no
|
89
|
+
# @return [String] body Returns the messagebody for the email
|
83
90
|
def self.get_body(introduction, letter)
|
84
91
|
# rubocop:disable Style/MultilineOperationIndentation
|
85
92
|
if letter == 'no'
|
@@ -99,41 +106,42 @@ Persönlich runde ich das Profil mit den Eigenschaften: Teamfähigkeit, Kommunik
|
|
99
106
|
stärke und Leistungsbereitschaft ab.
|
100
107
|
Ich bin mir sicher, die von Ihnen gewünschten Kenntnisse und Fähigkeiten mitzubringen,
|
101
108
|
und würde mich sehr über ein Vorstellungsgespräch freuen.
|
102
|
-
|
103
109
|
--
|
104
|
-
|
110
|
+
Sincerly yours
|
105
111
|
|
106
112
|
Sascha Manns
|
107
113
|
Maifeldstraße 10
|
108
114
|
56727 Mayen
|
109
|
-
Phone: +49-2651-4014045 (home)
|
110
115
|
Phone: +49-1573-9242730 (mobile)
|
111
|
-
|
112
|
-
|
116
|
+
Phone: +49-2651-4014045 (home)
|
117
|
+
Email: Sascha.Manns@mailbox.org
|
113
118
|
Jabber: saigkill@jabber.org
|
114
|
-
|
115
|
-
|
119
|
+
Web: http://saigkill.github.io
|
120
|
+
Linkedin/Twitter: saigkill
|
121
|
+
Facebook: sascha.manns / Xing: Sascha_Manns2
|
122
|
+
GPG: 645A18FC6B573A7BE6E95150752763E8BFA83A2C @ hkp://keys.gnupg.net
|
123
|
+
S/MIME: C57921ED8F7535B08DC6D14BF11CD19BF9E8ED5C @ cacert.org
|
116
124
|
EOF
|
117
125
|
else
|
118
126
|
body =<<EOF
|
119
127
|
#{introduction}
|
120
128
|
gerne möchte ich mich bei Ihnen für die obige Stelle bewerben.
|
121
129
|
Meine Bewerbungsunterlagen samt des offiziellen Anschreibens sind der Mail als Anhang beigefügt.
|
122
|
-
|
123
130
|
--
|
124
|
-
|
131
|
+
Sincerly yours
|
125
132
|
|
126
133
|
Sascha Manns
|
127
134
|
Maifeldstraße 10
|
128
135
|
56727 Mayen
|
129
|
-
Phone: +49-2651-4014045 (home)
|
130
136
|
Phone: +49-1573-9242730 (mobile)
|
131
|
-
|
132
|
-
|
137
|
+
Phone: +49-2651-4014045 (home)
|
138
|
+
Email: Sascha.Manns@mailbox.org
|
133
139
|
Jabber: saigkill@jabber.org
|
134
|
-
|
135
|
-
|
136
|
-
|
140
|
+
Web: http://saigkill.github.io
|
141
|
+
Linkedin/Twitter: saigkill
|
142
|
+
Facebook: sascha.manns / Xing: Sascha_Manns2
|
143
|
+
GPG: 645A18FC6B573A7BE6E95150752763E8BFA83A2C @ hkp://keys.gnupg.net
|
144
|
+
S/MIME: C57921ED8F7535B08DC6D14BF11CD19BF9E8ED5C @ cacert.org
|
137
145
|
EOF
|
138
146
|
end
|
139
147
|
return body
|
@@ -3,12 +3,13 @@
|
|
3
3
|
# @author Sascha Manns
|
4
4
|
# @abstract module for creating the entity file for latex
|
5
5
|
#
|
6
|
-
# Copyright (C) 2015-
|
6
|
+
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
7
7
|
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
10
10
|
require 'fileutils'
|
11
11
|
require 'rainbow/ext/string'
|
12
|
+
require 'url_shortener'
|
12
13
|
|
13
14
|
# main module
|
14
15
|
module LatexCurriculumVitae
|
@@ -17,7 +18,7 @@ module LatexCurriculumVitae
|
|
17
18
|
# rubocop:disable Metrics/LineLength
|
18
19
|
# Method for getting information
|
19
20
|
# @param [String] entitytex Path to the entity.tex
|
20
|
-
# @return [Array] contact, emailaddress, jobtitle, contact_sex, company, proactive
|
21
|
+
# @return [Array] contact, emailaddress, jobtitle, contact_sex, company, proactive, job_url
|
21
22
|
def self.get_information(entitytex)
|
22
23
|
resume = `yad --title="Create application" --center --on-top --form --item-separator=, --separator="|" \
|
23
24
|
--field="What is the jobtitle of your application? Escape amp with backslash:TEXT" \
|
@@ -30,14 +31,32 @@ module LatexCurriculumVitae
|
|
30
31
|
--field="If you have a contact so give me the name of him/her. Leave blank if unknown contact:TEXT" \
|
31
32
|
--field="Tell me the email address for sending the application:TEXT" \
|
32
33
|
--field="What kind of target:CBE" \
|
34
|
+
--field="Tell me the URL of the job offer:TEXT" \
|
33
35
|
--button="Go!" "" "no,yes" "yes,no" "" "" "" "male,female,unknown" "" "" "doku,support,kaufm"`
|
34
|
-
jobtitle, proactive, letter, company, street, city, contact_sex, contact, emailaddress, target = resume.chomp.split('|')
|
35
|
-
[jobtitle, proactive, letter, company, street, city, contact_sex, contact, emailaddress, target].each do |s|
|
36
|
+
jobtitle, proactive, letter, company, street, city, contact_sex, contact, emailaddress, target, job_url = resume.chomp.split('|')
|
37
|
+
[jobtitle, proactive, letter, company, street, city, contact_sex, contact, emailaddress, target, job_url].each do |s|
|
36
38
|
puts s
|
37
39
|
end
|
38
40
|
|
39
41
|
create_file(jobtitle, company, street, city, contact, entitytex, contact_sex, proactive, target)
|
40
|
-
[contact, emailaddress, jobtitle, contact_sex, company, letter, proactive,
|
42
|
+
[contact, emailaddress, jobtitle, contact_sex, company, letter, proactive, job_url]
|
43
|
+
end
|
44
|
+
|
45
|
+
# Method for shorten the URL
|
46
|
+
# @param [String] job_url The Url to the job offer
|
47
|
+
# @param [String] bitly_user The Username in Bit.ly
|
48
|
+
# @param [String] bitly_apikey The Apikey from your Bit.ly User
|
49
|
+
# @return [String] joburl Returns the shortened Bit.ly URL
|
50
|
+
def self.shorten_url(job_url, bitly_user, bitly_apikey)
|
51
|
+
authorize = UrlShortener::Authorize.new "#{bitly_user}", "#{bitly_apikey}"
|
52
|
+
client = UrlShortener::Client.new authorize
|
53
|
+
|
54
|
+
shorten = client.shorten("#{job_url}") # => UrlShortener::Response::Shorten object
|
55
|
+
shorten.result # => returns a hash of all data returned from bitly
|
56
|
+
shorten.urls # => Only returns the short urls look for more convenience methods in the UrlShortener::Response::Shorten class
|
57
|
+
puts shorten.urls
|
58
|
+
joburl = shorten.urls
|
59
|
+
return joburl
|
41
60
|
end
|
42
61
|
|
43
62
|
# # Method for getting information through a real gui
|
@@ -136,6 +155,8 @@ EOF
|
|
136
155
|
end
|
137
156
|
|
138
157
|
# Method for getting the target code block
|
158
|
+
# @param [String] target The choosed target
|
159
|
+
# @returns [String] targetblock Returns a Block with the choosed Information
|
139
160
|
def self.get_target_block(target)
|
140
161
|
if target == 'doku'
|
141
162
|
targetblock = 'Neben der Beschreibungssprache DocBook samt XSL-FO lernte ich die Satzsprache \\LaTeX. \\\\ Selbstständig erarbeitete ich mir Kenntnisse in der Programmiersprache Ruby, sowie der Web-App-Entwicklung (Technische Hochschule Mittelrhein).\\\\'
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# @author Sascha Manns
|
4
4
|
# @abstract module for getting information from a config file
|
5
5
|
#
|
6
|
-
# Copyright (C) 2015-
|
6
|
+
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
7
7
|
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
@@ -14,7 +14,7 @@ module LatexCurriculumVitae
|
|
14
14
|
# Module for creating the GetConfig
|
15
15
|
module GetConfig
|
16
16
|
# This method gets the configs from the config file
|
17
|
-
# @return [Array] name_of_pdf, name_of_cover, name_of_resume, name_of_letter
|
17
|
+
# @return [Array] name_of_pdf, name_of_cover, name_of_resume, name_of_letter, pdf_reader, shorten_url, bitly_user, bitly_apikey
|
18
18
|
def self.get
|
19
19
|
home = Dir.home
|
20
20
|
config = ParseConfig.new("#{home}/.latex_curriculum_vitae/latex_curriculum_vitae.cfg")
|
@@ -23,11 +23,15 @@ module LatexCurriculumVitae
|
|
23
23
|
name_of_resume = config['name_of_resume']
|
24
24
|
name_of_letter = config['name_of_letter']
|
25
25
|
pdf_reader = config['pdf_reader']
|
26
|
-
|
26
|
+
shorten_url = config['shorten_url']
|
27
|
+
bitly_user = config['bitly_user']
|
28
|
+
bitly_apikey = config['bitly_apikey']
|
29
|
+
|
30
|
+
[name_of_pdf, name_of_cover, name_of_resume, name_of_letter, pdf_reader, shorten_url, bitly_user, bitly_apikey]
|
27
31
|
end
|
28
32
|
|
29
33
|
# Method for getting smtp configuration
|
30
|
-
# @return [Array] own_name, own_email_address, own_smtp, own_username, own_password
|
34
|
+
# @return [Array] own_name, own_email_address, own_smtp, own_username, own_password, own_port, own_domain, own_tls
|
31
35
|
def self.get_smtp
|
32
36
|
home = Dir.home
|
33
37
|
config = ParseConfig.new("#{home}/.latex_curriculum_vitae/latex_curriculum_vitae.cfg")
|
@@ -36,8 +40,10 @@ module LatexCurriculumVitae
|
|
36
40
|
own_smtp = config['own_smtp']
|
37
41
|
own_username = config['own_username']
|
38
42
|
own_password = config['own_password']
|
43
|
+
own_port = config['own_port'].to_i
|
44
|
+
own_tls = config['own_tls']
|
39
45
|
|
40
|
-
[own_email_address, own_smtp, own_username, own_password]
|
46
|
+
[own_email_address, own_smtp, own_username, own_password, own_port, own_tls]
|
41
47
|
end
|
42
48
|
|
43
49
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# @author Sascha Manns
|
4
4
|
# @abstract module for creating a motivational letter
|
5
5
|
#
|
6
|
-
# Copyright (C) 2015-
|
6
|
+
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
7
7
|
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
@@ -15,6 +15,8 @@ module LatexCurriculumVitae
|
|
15
15
|
# Module for creating the motivational letter
|
16
16
|
module Letter
|
17
17
|
# Method for creating a pdf from tex
|
18
|
+
# @param [String] tmpdir Name of the Tempdir
|
19
|
+
# @param [String] name_of_letter Filename of the Letter
|
18
20
|
def self.create_letter(tmpdir, name_of_letter)
|
19
21
|
puts 'Compiling motivational letter'.colour(:yellow)
|
20
22
|
system("pdflatex #{name_of_letter}.tex")
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# @abstract module for notify the user about finishing the email send
|
5
5
|
# process
|
6
6
|
#
|
7
|
-
# Copyright (C) 2015-
|
7
|
+
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
8
8
|
# License: MIT
|
9
9
|
|
10
10
|
# Dependencies
|
@@ -16,6 +16,7 @@ require 'notifier'
|
|
16
16
|
module LatexCurriculumVitae
|
17
17
|
# Method for notifying the user
|
18
18
|
module Notify
|
19
|
+
# @param [String] jobtitle The Title of your job application
|
19
20
|
def self.run(jobtitle)
|
20
21
|
home = Dir.home
|
21
22
|
prefix = "#{home}/.rvm/rubies/default"
|