latex_curriculum_vitae 0.1.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.autotest +25 -0
- data/.codeclimate.yml +8 -0
- data/.coveralls.yml +2 -0
- data/.gemnasium.yml +1 -1
- data/.index +5 -8
- data/.rspec +2 -0
- data/.rubocop.yml +39 -0
- data/.scrutinizer.yml +17 -0
- data/.travis.yml +27 -0
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +41 -2
- data/Gemfile.lock +181 -16
- data/History.rdoc +32 -0
- data/Index.yml +4 -5
- data/LICENSE.rdoc +24 -0
- data/{MANIFEST → Manifest.txt} +24 -21
- data/README.rdoc +98 -0
- data/Rakefile +97 -198
- data/VERSION +1 -1
- data/bin/latexcv.rb +2 -2
- data/config.reek +111 -0
- data/data/latex_curriculum_vitae/Cover/Cover.tex +1 -2
- data/data/latex_curriculum_vitae/Motivational_Letter/bwanschreiben.tex +28 -34
- data/etc/latex_curriculum_vitae.cfg +5 -0
- data/etc/personal_data.tex +6 -2
- data/lib/latex_curriculum_vitae/cover.rb +7 -4
- data/lib/latex_curriculum_vitae/cv.rb +44 -13
- data/lib/latex_curriculum_vitae/email.rb +22 -12
- data/lib/latex_curriculum_vitae/entityfile.rb +68 -29
- data/lib/latex_curriculum_vitae/get-config.rb +25 -0
- data/lib/latex_curriculum_vitae/glade/{latexcv.glade~ → latexcv.glade} +0 -0
- data/lib/latex_curriculum_vitae/letter.rb +23 -0
- data/lib/latex_curriculum_vitae.rb +42 -13
- data.tar.gz.sig +0 -0
- metadata +412 -91
- metadata.gz.sig +0 -0
- data/.gitignore +0 -5
- data/.idea/latex_curriculum_vitae.iml +0 -25
- data/.idea/misc.xml +0 -4
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -6
- data/.idea/workspace.xml +0 -708
- data/.setup/installer.rb +0 -30
- data/.setup/metaconfig.rb +0 -1
- data/CHANGELOG.md +0 -10
- data/LICENSE +0 -166
- data/README.md +0 -122
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/build.bat +0 -4
- data/data/latex_curriculum_vitae/Motivational_Letter/Anschreiben.docx +0 -0
- data/data/latex_curriculum_vitae/Motivational_Letter/Anschreiben_MC.pdf +0 -0
- data/latex_curriculum_vitae.gemspec +0 -42
- data/lib/latex_curriculum_vitae/version.rb +0 -24
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
data/bin/latexcv.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
|
4
4
|
# Dependencies
|
5
5
|
require 'rubygems'
|
6
|
-
require 'latex_curriculum_vitae
|
7
|
-
require '
|
6
|
+
#require 'latex_curriculum_vitae'
|
7
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/latex_curriculum_vitae'))
|
8
8
|
require 'setup/command'
|
9
9
|
|
10
10
|
IRB.start
|
data/config.reek
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
---
|
2
|
+
Attribute:
|
3
|
+
enabled: false
|
4
|
+
exclude: []
|
5
|
+
BooleanParameter:
|
6
|
+
enabled: true
|
7
|
+
exclude: []
|
8
|
+
ClassVariable:
|
9
|
+
enabled: true
|
10
|
+
exclude: []
|
11
|
+
ControlParameter:
|
12
|
+
enabled: true
|
13
|
+
exclude: []
|
14
|
+
DataClump:
|
15
|
+
enabled: true
|
16
|
+
exclude: []
|
17
|
+
max_copies: 2
|
18
|
+
min_clump_size: 2
|
19
|
+
DuplicateMethodCall:
|
20
|
+
enabled: true
|
21
|
+
exclude: []
|
22
|
+
max_calls: 3
|
23
|
+
allow_calls: []
|
24
|
+
FeatureEnvy:
|
25
|
+
enabled: true
|
26
|
+
exclude: []
|
27
|
+
IrresponsibleModule:
|
28
|
+
enabled: true
|
29
|
+
exclude: []
|
30
|
+
LongParameterList:
|
31
|
+
enabled: true
|
32
|
+
exclude: []
|
33
|
+
max_params: 3
|
34
|
+
overrides:
|
35
|
+
initialize:
|
36
|
+
max_params: 5
|
37
|
+
LongYieldList:
|
38
|
+
enabled: true
|
39
|
+
exclude: []
|
40
|
+
max_params: 3
|
41
|
+
ModuleInitialize:
|
42
|
+
enabled: true
|
43
|
+
exclude: []
|
44
|
+
NestedIterators:
|
45
|
+
enabled: true
|
46
|
+
exclude: []
|
47
|
+
max_allowed_nesting: 1
|
48
|
+
ignore_iterators: []
|
49
|
+
NilCheck:
|
50
|
+
enabled: true
|
51
|
+
exclude: []
|
52
|
+
PrimaDonnaMethod:
|
53
|
+
enabled: true
|
54
|
+
exclude: []
|
55
|
+
RepeatedConditional:
|
56
|
+
enabled: true
|
57
|
+
exclude: []
|
58
|
+
max_ifs: 2
|
59
|
+
TooManyInstanceVariables:
|
60
|
+
enabled: true
|
61
|
+
exclude: []
|
62
|
+
max_instance_variables: 9
|
63
|
+
TooManyMethods:
|
64
|
+
enabled: true
|
65
|
+
exclude: []
|
66
|
+
max_methods: 25
|
67
|
+
TooManyStatements:
|
68
|
+
enabled: true
|
69
|
+
exclude:
|
70
|
+
- initialize
|
71
|
+
max_statements: 15
|
72
|
+
UncommunicativeMethodName:
|
73
|
+
enabled: true
|
74
|
+
exclude: []
|
75
|
+
reject:
|
76
|
+
- !ruby/regexp /^[a-z]$/
|
77
|
+
- !ruby/regexp /[0-9]$/
|
78
|
+
- !ruby/regexp /[A-Z]/
|
79
|
+
accept: []
|
80
|
+
UncommunicativeModuleName:
|
81
|
+
enabled: true
|
82
|
+
exclude: []
|
83
|
+
reject:
|
84
|
+
- !ruby/regexp /^.$/
|
85
|
+
- !ruby/regexp /[0-9]$/
|
86
|
+
accept:
|
87
|
+
- Inline::C
|
88
|
+
UncommunicativeParameterName:
|
89
|
+
enabled: true
|
90
|
+
exclude: []
|
91
|
+
reject:
|
92
|
+
- !ruby/regexp /^.$/
|
93
|
+
- !ruby/regexp /[0-9]$/
|
94
|
+
- !ruby/regexp /[A-Z]/
|
95
|
+
- !ruby/regexp /^_/
|
96
|
+
accept: []
|
97
|
+
UncommunicativeVariableName:
|
98
|
+
enabled: true
|
99
|
+
exclude: []
|
100
|
+
reject:
|
101
|
+
- !ruby/regexp /^.$/
|
102
|
+
- !ruby/regexp /[0-9]$/
|
103
|
+
- !ruby/regexp /[A-Z]/
|
104
|
+
accept:
|
105
|
+
- _
|
106
|
+
UnusedParameters:
|
107
|
+
enabled: true
|
108
|
+
exclude: []
|
109
|
+
UtilityFunction:
|
110
|
+
enabled: true
|
111
|
+
exclude: []
|
@@ -36,9 +36,8 @@
|
|
36
36
|
\input{$HOME/.latex_curriculum_vitae/personal_data.tex}
|
37
37
|
%
|
38
38
|
% -------------------------------------------------
|
39
|
-
% Firmendaten
|
39
|
+
% Firmendaten
|
40
40
|
% -------------------------------------------------
|
41
|
-
%\newcommand*{\CommonRubyPath}{/home/sascha/}%
|
42
41
|
\input{$HOME/.latex_curriculum_vitae/entity.tex}
|
43
42
|
%
|
44
43
|
%
|
@@ -47,7 +47,7 @@
|
|
47
47
|
%---------------------------------------------------------------------------
|
48
48
|
% Schriften werden hier definiert
|
49
49
|
\renewcommand*\familydefault{\sfdefault} % Latin Modern Sans
|
50
|
-
\setkomafont{fromname}{\sffamily\color{
|
50
|
+
\setkomafont{fromname}{\sffamily\color{myblue}\LARGE}
|
51
51
|
%\setkomafont{pagenumber}{\sffamily}
|
52
52
|
\setkomafont{subject}{\mdseries}
|
53
53
|
\setkomafont{backaddress}{\mdseries}
|
@@ -59,7 +59,12 @@
|
|
59
59
|
%\def\Strasse{Sigmund-Riefler-Bogen 13}
|
60
60
|
%\def\PLZ{81829 München - Trudering-Riem}
|
61
61
|
%\def\Stelle{Buchstabenzähler}
|
62
|
-
\input{
|
62
|
+
\input{$HOME/.latex_curriculum_vitae/personal_data.tex}
|
63
|
+
%
|
64
|
+
% -------------------------------------------------
|
65
|
+
% Firmendaten
|
66
|
+
% -------------------------------------------------
|
67
|
+
\input{$HOME/.latex_curriculum_vitae/entity.tex}
|
63
68
|
%---------------------------------------------------------------------------
|
64
69
|
\begin{document}
|
65
70
|
%---------------------------------------------------------------------------
|
@@ -84,23 +89,23 @@
|
|
84
89
|
% define gray for header
|
85
90
|
\definecolor{mygray}{gray}{.55}
|
86
91
|
% define blue for address
|
87
|
-
\definecolor{myblue}{rgb}{0.25,0.
|
92
|
+
\definecolor{myblue}{rgb}{0.25,0.50,0.75}
|
88
93
|
\definecolor{mygruen}{rgb}{0.35,0.70,0.30}
|
89
94
|
%\setkomavar{fromlogo}{\includegraphics[scale=0.2]{pabook.jpg}}
|
90
95
|
%---------------------------------------------------------------------------
|
91
|
-
% Absender Daten
|
92
|
-
\setkomavar{fromname}{
|
93
|
-
\setkomavar{fromaddress}{
|
94
|
-
\setkomavar{fromphone}[\Mobilefone~]{
|
96
|
+
% Absender Daten +49\,(0)\,2651\,40\,14\,045
|
97
|
+
\setkomavar{fromname}{\firstname\ \familyname}
|
98
|
+
\setkomavar{fromaddress}{\mystreet\\\mycity}
|
99
|
+
\setkomavar{fromphone}[\Mobilefone~]{\myphone}
|
95
100
|
\setkomavar{fromfax}[\FAX~]{+49\,(0)\,123\,456\,789\,1}
|
96
|
-
\setkomavar{fromemail}[\Letter~]{
|
97
|
-
\setkomavar{fromurl}[]{
|
98
|
-
\setkomafont{fromaddress}{\small\rmfamily\mdseries\slshape\color{
|
101
|
+
\setkomavar{fromemail}[\Letter~]{\myemail}
|
102
|
+
\setkomavar{fromurl}[]{\myblog}
|
103
|
+
\setkomafont{fromaddress}{\small\rmfamily\mdseries\slshape\color{myblue}}
|
99
104
|
|
100
105
|
\setkomavar{backaddressseparator}{ - }
|
101
106
|
\setkomavar{signature}{\\[-3\baselineskip]%
|
102
107
|
%\rule{10em}{2\baselineskip}\\
|
103
|
-
\includegraphics[scale=0.
|
108
|
+
\includegraphics[scale=0.5]{../Pictures/signatur.png}\\
|
104
109
|
SASCHA MANNS}
|
105
110
|
%\setkomavar{backaddress}{Tim Metzner, Felderhof 112, 40880 Ratingen} % wenn erwünscht kann hier eine andere Backaddress eingetragen werden
|
106
111
|
%\setkomavar{signature}{SASCHA MANNS}
|
@@ -140,9 +145,10 @@ SASCHA MANNS}
|
|
140
145
|
}%
|
141
146
|
%---------------------------------------------------------------------------
|
142
147
|
% Bankverbindung
|
143
|
-
|
144
|
-
BLZ 576\,500\,10\\
|
145
|
-
Kreissparkasse Mayen}
|
148
|
+
%\setkomavar{frombank}{Kto. 198\ 242\ 620\\
|
149
|
+
%BLZ 576\,500\,10\\
|
150
|
+
%Kreissparkasse Mayen}
|
151
|
+
\setkomavar{frombank}{\mybank}
|
146
152
|
%---------------------------------------------------------------------------
|
147
153
|
%\setkomavar{yourref}{}
|
148
154
|
%\setkomavar{yourmail}{}
|
@@ -159,32 +165,20 @@ Kreissparkasse Mayen}
|
|
159
165
|
%---------------------------------------------------------------------------
|
160
166
|
% Hier beginnt der Brief, mit der Anschrift des Empfängers
|
161
167
|
|
162
|
-
\begin{letter}{\
|
163
|
-
c/o \Ansprechpartner \\
|
164
|
-
%\Strasse \\
|
165
|
-
%\PLZ
|
166
|
-
}
|
168
|
+
\begin{letter}{\addressstring}
|
167
169
|
|
168
170
|
%---------------------------------------------------------------------------
|
169
171
|
% Der Betreff des Briefes
|
170
|
-
\setkomavar{subject}{\bf{
|
172
|
+
\setkomavar{subject}{\bf{\subject}
|
171
173
|
}
|
172
174
|
%---------------------------------------------------------------------------
|
173
175
|
%\opening{Sehr geehrter \Ansprechpartner,}
|
174
|
-
\opening{
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
%Im Rahmen des Supports betreute ich im den letzten Jahren Kunden unseres Linux-Boxproduktes via Email und Telefon und erreichte stets eine gute Kundenzufriedenheit.
|
181
|
-
Durch meine Tätigkeit als Projektgründer der openSUSE Medical Distribution ist mir das Testing und Packaging medizinischer SW bestens bekannt. In den letzten Monaten arbeitete ich bei ITSCare (dem IT-Dienstleister der AOKen) als Dispatcher und Supporter. Alle erarbeitete Lösungen pflegte ich in unsere Support-Datenbank ein. Auch die Einrichtung und Durchführung von Projekten sind mir vertraut.\\
|
182
|
-
%Als Kaufmann sammelte ich bereits umfangreiche Erfahrungen im Bereich der Materialwirtschaft im T\&Z Bereich der Automobilteile. Sämtliche Prozesse von der Bestellung bis hin zu Warenannahme bis zur Mängelrüge sind mir bekannt.\\
|
183
|
-
%Innerhalb meiner Laufbahn habe ich bereits Erfahrungen im Projektmanagement sammeln können, als Leiter des Weekly News Projektes, als auch als Gründer des Projektes für freie medizinische Software.
|
184
|
-
%Innerhalb der open-slx GmbH durfte ich ein Wiki-Migrationsprojekt leiten.\\
|
185
|
-
%In meiner Freizeit arbeite ich am Plasma Active Projekt mit, einem Open-Source GUI Projekt für neuartige Geräteklassen. Darüber habe ich auch kürzlich ein Buch veröffentlicht. \\
|
186
|
-
%Meine Erfahrungen mit Tools zur Handbucherstellung sind nützlich für Sie. Neben der Beschreibungssprache DocBook samt XSL-FO lerne ich aktuell die Satzsprache \LaTeX. \\
|
187
|
-
Aktuell studiere ich berufsbegleitend den staatlich geprüften Betriebswirt im Schwerpunktfach Wirtschaftsinformatik. Ein aktuelles Zwischenzeugnis liegt im Anhang.\\
|
176
|
+
\opening{\intro}
|
177
|
+
Mit meinen vielfältigen Erfahrungen als Kaufmann, Community Manager, Buchautor und Customer Supporter (Level 1\&2), sowie Autor Geschäftsprozess- \& Anwendungsdokumentation könnte ich Ihr neuer Mitarbeiter sein. \\
|
178
|
+
Seit dieser Zeit habe ich an teamgesteuerten Projekten für Kunden mitgearbeitet, wobei mein Schwerpunkt im Bereich Kundenpflege via Telefon und Email, Dispatching und Teamcontrolling lag. \\
|
179
|
+
In für mich fremde Arbeitsgebiete werde ich mich rasch einarbeiten.\\
|
180
|
+
Meine Kenntnisse in IT und Organisationsfähigkeiten kann ich für Ihr Unternehmen im Bereich des Managements gewinnbringend umsetzen.\\
|
181
|
+
Persönlich runde ich das Profil mit den Eigenschaften: Teamfähigkeit, Kommunikationsstärke und Leistungsbereitschaft ab.\\
|
188
182
|
Ich bin mir sicher, die von Ihnen gewünschten Kenntnisse und Fähigkeiten mitzubringen, und würde mich sehr über ein Vorstellungsgespräch freuen.
|
189
183
|
\closing{Mit freundlichen Grüßen}
|
190
184
|
|
data/etc/personal_data.tex
CHANGED
@@ -2,5 +2,9 @@
|
|
2
2
|
\def\familyname{Manns}
|
3
3
|
\def\mystreet{Maifeldstraße 10}
|
4
4
|
\def\mycity{56727 Mayen}
|
5
|
-
\def\myphone{+49-
|
6
|
-
\def\myemail{Sascha.Manns@directbox.com}
|
5
|
+
\def\myphone{+49-1573-924~27~30}
|
6
|
+
\def\myemail{Sascha.Manns@directbox.com}
|
7
|
+
\def\myblog{http://saigkill.github.io}
|
8
|
+
\def\mybank{Kto. DE88\ 5765\ 0010\ 0198\ 2426\ 20 \\
|
9
|
+
BIC: MALADE51MYN \\
|
10
|
+
Kreissparkasse Mayen}
|
@@ -4,14 +4,17 @@
|
|
4
4
|
# @abstract CoverModule for latex_curriculum_vitae
|
5
5
|
#
|
6
6
|
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
7
|
-
# License:
|
7
|
+
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
10
|
+
require 'rainbow/ext/string'
|
10
11
|
|
11
12
|
# Cover module
|
12
13
|
module Cover
|
13
14
|
# Create cover method
|
14
|
-
def self.create_cover
|
15
|
-
|
15
|
+
def self.create_cover(name_of_cover)
|
16
|
+
puts 'Creating cover'.colour(:yellow)
|
17
|
+
system("pdflatex #{name_of_cover}.tex")
|
18
|
+
puts 'Creating cover done'.colour(:green)
|
16
19
|
end
|
17
|
-
end
|
20
|
+
end
|
@@ -4,23 +4,54 @@
|
|
4
4
|
# @abstract CV Module for latex_curriculum_vitae
|
5
5
|
#
|
6
6
|
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
7
|
-
# License:
|
7
|
+
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
10
|
+
require 'rainbow/ext/string'
|
10
11
|
|
11
12
|
# Module for creating the CV
|
12
13
|
module CV
|
13
14
|
# Create Curriculum Vitae method
|
14
|
-
|
15
|
-
|
16
|
-
puts 'First run of xelatex
|
17
|
-
system(
|
18
|
-
puts '
|
19
|
-
|
20
|
-
|
21
|
-
puts '
|
22
|
-
|
23
|
-
|
24
|
-
|
15
|
+
# @param [string] tmpdir contains the path to the
|
16
|
+
def self.create_cv(name_of_pdf, name_of_resume, tmpdir)
|
17
|
+
puts 'First run of xelatex'.colour(:yellow)
|
18
|
+
system("xelatex #{name_of_resume}.tex")
|
19
|
+
puts 'First run of xelatex passed'.colour(:yellow)
|
20
|
+
puts 'Running biber'.colour(:yellow)
|
21
|
+
system("biber #{name_of_resume}.bcf")
|
22
|
+
puts 'Run of biber passed'.colour(:yellow)
|
23
|
+
puts 'Second run of xelatex'.colour(:yellow)
|
24
|
+
system("xelatex #{name_of_resume}.tex")
|
25
|
+
puts 'Second run of xelatex passed'.colour(:yellow)
|
26
|
+
puts 'All done'.colour(:green)
|
27
|
+
system("cp #{name_of_resume}.pdf #{tmpdir}/#{name_of_resume}.pdf")
|
25
28
|
end
|
26
|
-
|
29
|
+
|
30
|
+
# Create the final cv
|
31
|
+
def self.create_final_cv(letter, name_of_letter, name_of_resume)
|
32
|
+
# pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
|
33
|
+
if letter == 'yes'
|
34
|
+
puts 'Merging the motivational letter with the cv'.colour(:yellow)
|
35
|
+
system("pdfunite #{name_of_letter}.pdf #{name_of_resume}.pdf result.pdf")
|
36
|
+
puts 'Merging done'.colour(:green)
|
37
|
+
else
|
38
|
+
puts "Copying #{name_of_resume}.tex result.pdf".colour(:green)
|
39
|
+
system("cp #{name_of_resume}.pdf result.pdf")
|
40
|
+
puts 'Done'.colour(:green)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# Schrink and get final compiled pdf
|
45
|
+
def self.shrink_cv(name_of_pdf)
|
46
|
+
puts 'Shrinking PDF'.colour(:yellow)
|
47
|
+
system("gs -o #{name_of_pdf}.pdf -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress result.pdf")
|
48
|
+
puts 'Shrinking done'.colour(:yellow)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Copy result to .latex_curriculum_vitae
|
52
|
+
def self.copy_home(name_of_pdf)
|
53
|
+
puts "Copying #{name_of_pdf}.pdf to tmpdir".colour(:yellow)
|
54
|
+
system("cp #{name_of_pdf}.pdf #{Dir.home}/.latex_curriculum_vitae")
|
55
|
+
puts 'Copied to tmpdir'.colour(:green)
|
56
|
+
end
|
57
|
+
end
|
@@ -4,13 +4,22 @@
|
|
4
4
|
# @abstract CVEmail Module for latex_curriculum_vitae
|
5
5
|
#
|
6
6
|
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
7
|
-
# License:
|
7
|
+
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
10
|
+
require 'rainbow/ext/string'
|
10
11
|
|
12
|
+
# rubocop:disable Metrics/LineLength
|
11
13
|
# Module for creating the CV
|
12
14
|
module CVEmail
|
13
15
|
# Method for creating the email
|
16
|
+
# rubocop:disable Metrics/MethodLength
|
17
|
+
# rubocop:disable Metrics/AbcSize
|
18
|
+
# @param [String] contact Name of the contact
|
19
|
+
# @param [String] emailaddress Email address of the contact
|
20
|
+
# @param [String] jobtitle Title of the target job
|
21
|
+
# @param [String] contact_sex Can be male, female or unknown
|
22
|
+
# @param [String] proactive Can be yes or no
|
14
23
|
def self.create_email(contact, emailaddress, jobtitle, contact_sex, proactive)
|
15
24
|
# Hex codes from http://www.obkb.com/dcljr/charstxt.html
|
16
25
|
space = '%20'
|
@@ -40,23 +49,24 @@ module CVEmail
|
|
40
49
|
|
41
50
|
subject.gsub!(/ /, "#{space}")
|
42
51
|
|
52
|
+
# rubocop:disable Style/MultilineOperationIndentation
|
43
53
|
body = "#{introduction}" + "#{crlf}" + "#{crlf}" +
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
54
|
+
'gerne möchte ich mich bei Ihnen für die obige Stelle bewerben.' + "#{crlf}" +
|
55
|
+
'Ich kann auf einige Jahre im IT-Bereich zurückblicken und war' + "#{crlf}" +
|
56
|
+
'hauptsächlich in den Bereichen Support und Geschäftsprozess- ' + "#{ampersand}" + "#{crlf}" +
|
57
|
+
'Anwendungsdokumentation tätig, zuletzt im Bankbereich.' + "#{crlf}" + "#{crlf}" +
|
58
|
+
'Auf die übliche übertriebene Selbstdarstellung verzichte ich an dieser' + "#{crlf}" +
|
59
|
+
'Stelle, da dies nicht mein Stil ist und Sie tatsächlich ohne mich' + "#{crlf}" +
|
60
|
+
'auskommen würden.' + "#{crlf}" + "#{crlf}" +
|
61
|
+
'Dennoch freue ich mich auf eine Einladung zum Vorstellungsgespräch.' + "#{crlf}" + "#{crlf}" +
|
62
|
+
'Meine Bewerbungsunterlagen sind der Mail als Anhang beigefügt.' + "#{crlf}"
|
53
63
|
body.gsub!(/ /, "#{space}")
|
54
64
|
|
55
65
|
home = Dir.home
|
56
66
|
prefix = "#{home}/.rvm/rubies/default"
|
57
67
|
datadir = "#{prefix}/share"
|
58
68
|
attachment = "#{datadir}/latex_curriculum_vitae/Bewerbungsunterlagen_Manns.pdf"
|
59
|
-
|
69
|
+
puts 'Opening Email'.colour(:green)
|
60
70
|
system("thunderbird mailto:#{emailaddress}?subject=#{subject}\\&body=#{body}\\&attach=#{attachment}")
|
61
71
|
end
|
62
|
-
end
|
72
|
+
end
|
@@ -4,54 +4,89 @@
|
|
4
4
|
# @abstract Entityfile Module for latex_curriculum_vitae
|
5
5
|
#
|
6
6
|
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
7
|
-
# License:
|
7
|
+
# License: MIT
|
8
8
|
|
9
9
|
# Dependencies
|
10
10
|
require 'fileutils'
|
11
|
+
require 'rainbow/ext/string'
|
11
12
|
|
12
13
|
# Module for creating the entityfile
|
13
14
|
module Entityfile
|
15
|
+
# rubocop:disable Metrics/LineLength
|
14
16
|
# Method for getting information
|
17
|
+
# @param [String] entitytex Path to the entity.tex
|
18
|
+
# @return [Array] contact, emailaddress, jobtitle, contact_sex, company, proactive:q:q
|
15
19
|
def self.get_information(entitytex)
|
16
|
-
|
20
|
+
resume = `yad --title="Create application" --center --on-top --form \
|
17
21
|
--item-separator=, --separator="|" \
|
18
22
|
--field="What is the jobtitle of your application? Escape amp with backslash:TEXT" \
|
19
23
|
--field="Is it a proactive application?:CBE" \
|
20
24
|
--field="What is the companies name? Escape amp with backslash:TEXT" \
|
21
|
-
--field="
|
22
|
-
--field="
|
25
|
+
--field="Create a motivational letter?:CBE" \
|
26
|
+
--field="Give me the street of the company:TEXT" \
|
27
|
+
--field="What is the zip-code (german PLZ) and city from the company:TEXT" \
|
28
|
+
--field="Is your contact male or female? Leave blank if unknown contact:CBE" \
|
29
|
+
--field="If you have a contact so give me the name of him/her. Leave blank if unknown contact:TEXT" \
|
23
30
|
--field="Tell me the email address for sending the application:TEXT" \
|
24
|
-
--button="Go!" "" "yes,no" "" "male,female,unknown"`
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
31
|
+
--button="Go!" "" "yes,no" "" "yes,no" "" "" "male,female,unknown" "" ""`
|
32
|
+
jobtitle, proactive, company, letter, street, city, contact_sex, contact, emailaddress = resume.chomp.split('|')
|
33
|
+
[jobtitle, proactive, company, letter, street, city, contact_sex, contact, emailaddress].each do |s|
|
34
|
+
puts s
|
35
|
+
end
|
29
36
|
|
30
|
-
street
|
31
|
-
|
32
|
-
puts 'before create'
|
33
|
-
create_file(jobtitle, company, street, city, contact, entitytex)
|
34
|
-
puts 'after create'
|
35
|
-
[contact, emailaddress, jobtitle, contact_sex, company, proactive]
|
37
|
+
create_file(jobtitle, company, street, city, contact, entitytex, contact_sex, proactive)
|
38
|
+
[contact, emailaddress, jobtitle, contact_sex, company, letter, proactive]
|
36
39
|
end
|
37
40
|
|
38
|
-
# Method for getting information through a real gui
|
39
|
-
def self.get_information_gui(entitytex)
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
# # Method for getting information through a real gui
|
42
|
+
# def self.get_information_gui(entitytex)
|
43
|
+
# # TODO: Extend code for using the gtk GUI
|
44
|
+
# require 'gtk2'
|
45
|
+
# require 'libglade2'
|
46
|
+
# @threads = []
|
47
|
+
#
|
48
|
+
# Gtk.init
|
49
|
+
#
|
50
|
+
# @glade = GladeXML.new('glade/latexcv.glade')
|
51
|
+
# @glade.widget_names.each do |name|
|
52
|
+
# instance_variable_set("@#{name}".intern, @glade[name])
|
53
|
+
# end
|
54
|
+
# end
|
44
55
|
|
45
|
-
|
56
|
+
# Method for creating the entity.tex
|
57
|
+
# @param [String] jobtitle Title of the target job
|
58
|
+
# @param [String] company Comanys name
|
59
|
+
# @param [String] street Companies street
|
60
|
+
# @param [String] city City of the company
|
61
|
+
# @param [String] contact Name of the contact
|
62
|
+
# @param [String] entitytex Path to the entity.tex
|
63
|
+
def self.create_file(jobtitle, company, street, city, contact, entitytex, contact_sex, proactive)
|
64
|
+
if contact == ''
|
65
|
+
introduction = 'Sehr geehrte Damen und Herren,'
|
66
|
+
else
|
67
|
+
if contact_sex == 'male'
|
68
|
+
introduction = "Sehr geehrter Herr #{contact},"
|
69
|
+
else
|
70
|
+
introduction = "Sehr geehrte Frau #{contact},"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
if proactive == 'yes'
|
74
|
+
subject = "Initiativbewerbung um einen Arbeitsplatz als #{jobtitle}"
|
75
|
+
intro = 'Gerne möchte ich mich bei Ihnen um die obige oder eine vergleichbare Stelle bewerben.'
|
76
|
+
else
|
77
|
+
subject = "Bewerbung um einen Arbeitsplatz als #{jobtitle}"
|
78
|
+
intro = "Wie ich Ihrer Anzeige entnommen habe, stellen Sie einen #{jobtitle} ein. Um diese Position bewerbe ich mich und übersende Ihnen hiermit meine Unterlagen."
|
79
|
+
end
|
46
80
|
|
47
|
-
|
48
|
-
|
49
|
-
|
81
|
+
addressstring = "#{company} \\\\"
|
82
|
+
if contact == ''
|
83
|
+
addressstring << 'z.Hd. Personalabteilung \\\\'
|
84
|
+
else
|
85
|
+
addressstring << "z.Hd. #{contact} \\\\"
|
50
86
|
end
|
51
|
-
|
87
|
+
addressstring << "#{street} \\\\" if street != ''
|
88
|
+
addressstring << "#{city}" if city != ''
|
52
89
|
|
53
|
-
# Method for creating the entity.tex
|
54
|
-
def self.create_file(jobtitle, company, street, city, contact, entitytex)
|
55
90
|
FileUtils.rm(entitytex) if File.exist?(entitytex)
|
56
91
|
FileUtils.touch(entitytex)
|
57
92
|
File.write "#{entitytex}", <<EOF
|
@@ -60,6 +95,10 @@ module Entityfile
|
|
60
95
|
\\def\\contact{#{contact}}
|
61
96
|
\\def\\street{#{street}}
|
62
97
|
\\def\\city{#{city}}
|
98
|
+
\\def\\introduction{#{introduction}}
|
99
|
+
\\def\\subject{#{subject}}
|
100
|
+
\\def\\addressstring{#{addressstring}}
|
101
|
+
\\def\\intro{#{intro}}
|
63
102
|
EOF
|
64
103
|
end
|
65
|
-
end
|
104
|
+
end
|