latex_curriculum_vitae 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +10 -8
- data/Gemfile.lock +53 -52
- data/History.rdoc +15 -0
- data/LICENSE.rdoc +619 -24
- data/Manifest.txt +7 -12
- data/NEWS +69 -0
- data/README.rdoc +103 -43
- data/Rakefile +31 -42
- data/STATUS.rdoc +23 -0
- data/bin/latexcv.rb +13 -8
- data/data/latex_curriculum_vitae/Cover/Cover.tex +12 -4
- data/data/latex_curriculum_vitae/Motivational_Letter/bwanschreiben.tex +23 -6
- data/data/latex_curriculum_vitae/Pictures/codealike.png +0 -0
- data/data/latex_curriculum_vitae/Pictures/codestats.png +0 -0
- data/data/latex_curriculum_vitae/Pictures/openhub.png +0 -0
- data/data/latex_curriculum_vitae/Pictures/signatur1.png +0 -0
- data/data/latex_curriculum_vitae/Pictures/wakatime.jpg +0 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.tex +28 -10
- data/etc/latex_curriculum_vitae.cfg +2 -1
- data/etc/personal_data.tex +2 -1
- data/lib/latex_curriculum_vitae.rb +60 -51
- data/lib/latex_curriculum_vitae/cover.rb +17 -9
- data/lib/latex_curriculum_vitae/cv.rb +41 -27
- data/lib/latex_curriculum_vitae/email.rb +168 -94
- data/lib/latex_curriculum_vitae/entityfile.rb +99 -68
- data/lib/latex_curriculum_vitae/get-config.rb +28 -18
- data/lib/latex_curriculum_vitae/letter.rb +19 -12
- data/lib/latex_curriculum_vitae/notifier.rb +20 -13
- data/lib/latex_curriculum_vitae/outfile.rb +30 -19
- metadata +89 -56
- data/.autotest +0 -25
- data/.codeclimate.yml +0 -8
- data/.coveralls.yml +0 -2
- data/.gemnasium.yml +0 -5
- data/.rspec +0 -2
- data/.rubocop.yml +0 -38
- data/.scrutinizer.yml +0 -21
- data/.travis.yml +0 -29
- data/CODE_OF_CONDUCT.md +0 -17
- data/CONTRIBUTING.md +0 -25
- data/config.reek +0 -111
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/wtg.pdf +0 -0
@@ -1,9 +1,17 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# @author Sascha Manns
|
3
|
-
# @abstract CV Module for creating the curriculum vitae
|
4
|
-
#
|
5
1
|
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
6
|
-
#
|
2
|
+
#
|
3
|
+
# This program is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
7
15
|
|
8
16
|
# Dependencies
|
9
17
|
require 'rainbow/ext/string'
|
@@ -15,21 +23,23 @@ module LatexCurriculumVitae
|
|
15
23
|
# Module for creating the CV
|
16
24
|
module CV
|
17
25
|
# Create Curriculum Vitae method
|
26
|
+
# TODO: Try to fix this in future
|
27
|
+
# rubocop:disable Metrics/AbcSize
|
18
28
|
# @param [String] name_of_pdf Name of the resulting PDF file
|
19
29
|
# @param [String] name_of_resume Name of the resume file
|
20
|
-
# @param [String]
|
21
|
-
def self.create_cv(name_of_resume,
|
22
|
-
puts 'First run of xelatex'.
|
30
|
+
# @param [String] tmp_dir contains the path to the
|
31
|
+
def self.create_cv(name_of_resume, tmp_dir)
|
32
|
+
puts 'First run of xelatex'.color(:yellow)
|
23
33
|
system("xelatex #{name_of_resume}.tex")
|
24
|
-
puts 'First run of xelatex passed'.
|
25
|
-
puts 'Running biber'.
|
34
|
+
puts 'First run of xelatex passed'.color(:yellow)
|
35
|
+
puts 'Running biber'.color(:yellow)
|
26
36
|
system("biber #{name_of_resume}.bcf")
|
27
|
-
puts 'Run of biber passed'.
|
28
|
-
puts 'Second run of xelatex'.
|
37
|
+
puts 'Run of biber passed'.color(:yellow)
|
38
|
+
puts 'Second run of xelatex'.color(:yellow)
|
29
39
|
system("xelatex #{name_of_resume}.tex")
|
30
|
-
puts 'Second run of xelatex passed'.
|
31
|
-
puts 'All done'.
|
32
|
-
system("cp #{name_of_resume}.pdf #{
|
40
|
+
puts 'Second run of xelatex passed'.color(:yellow)
|
41
|
+
puts 'All done'.color(:green)
|
42
|
+
system("cp #{name_of_resume}.pdf #{tmp_dir}/#{name_of_resume}.pdf")
|
33
43
|
end
|
34
44
|
|
35
45
|
# Create the final cv
|
@@ -38,23 +48,26 @@ module LatexCurriculumVitae
|
|
38
48
|
# @param [String] name_of_resume Name of the resume file
|
39
49
|
# @param [String] name_of_pdf Name of the finished pdf
|
40
50
|
# @param [String] name_of_cover Name of the Cover file
|
51
|
+
# TODO: Try to fix this in future
|
52
|
+
# This method smells of :reek:LongParameterList
|
53
|
+
# This method smells of :reek:ControlParameter
|
41
54
|
def self.create_final_cv(letter, name_of_letter, name_of_resume, name_of_pdf, name_of_cover)
|
42
55
|
if letter == 'yes'
|
43
|
-
puts 'Merging the motivational letter with the cv'.
|
56
|
+
puts 'Merging the motivational letter with the cv'.color(:yellow)
|
44
57
|
pdf = CombinePDF.new
|
45
|
-
pdf << CombinePDF.load("#{name_of_letter}.pdf")
|
58
|
+
pdf << CombinePDF.load("#{name_of_letter}.pdf")
|
46
59
|
pdf << CombinePDF.load("#{name_of_cover}.pdf")
|
47
60
|
pdf << CombinePDF.load("#{name_of_resume}.pdf")
|
48
61
|
pdf.save 'result.pdf'
|
49
|
-
puts 'Merging done'.
|
62
|
+
puts 'Merging done'.color(:green)
|
50
63
|
else
|
51
|
-
puts "Copying #{name_of_resume}.pdf result.pdf".
|
64
|
+
puts "Copying #{name_of_resume}.pdf result.pdf".color(:green)
|
52
65
|
pdf = CombinePDF.new
|
53
66
|
pdf << CombinePDF.load("#{name_of_cover}.pdf")
|
54
67
|
pdf << CombinePDF.load("#{name_of_resume}.pdf")
|
55
68
|
pdf.save 'resumenew.pdf'
|
56
69
|
system('cp resumenew.pdf result.pdf')
|
57
|
-
puts 'Done'.
|
70
|
+
puts 'Done'.color(:green)
|
58
71
|
end
|
59
72
|
appendix(name_of_pdf)
|
60
73
|
end
|
@@ -62,28 +75,29 @@ module LatexCurriculumVitae
|
|
62
75
|
# Add additional stuff
|
63
76
|
# @param [String] name_of_pdf Name of the finished pdf
|
64
77
|
def self.appendix(name_of_pdf)
|
65
|
-
puts 'Adding additional stuff'.
|
78
|
+
puts 'Adding additional stuff'.color(:yellow)
|
66
79
|
pdf = CombinePDF.new
|
67
80
|
pdf << CombinePDF.load('result.pdf')
|
68
81
|
# Put there your own stuff
|
69
82
|
pdf << CombinePDF.load('../Appendix/Employers_Reference/xcom.pdf')
|
70
83
|
pdf << CombinePDF.load('../Appendix/Employers_Reference/hays.pdf')
|
71
84
|
pdf << CombinePDF.load('../Appendix/Certificates/thm-webeng1.pdf')
|
85
|
+
pdf << CombinePDF.load('../Appendix/Certificates/kompetenzpass12013.pdf')
|
72
86
|
pdf << CombinePDF.load('../Appendix/Employers_Reference/openslx.pdf')
|
73
87
|
pdf << CombinePDF.load('../Appendix/Employers_Reference/openslx1.pdf')
|
74
88
|
pdf << CombinePDF.load('../Appendix/Certificates/Zertifikat_Sascha_Manns1.pdf')
|
75
|
-
pdf << CombinePDF.load('../Appendix/Employers_Reference/wtg.pdf')
|
76
89
|
pdf << CombinePDF.load('../Appendix/First_References/ihk.pdf')
|
77
90
|
pdf.save "#{name_of_pdf}.pdf"
|
78
|
-
puts 'Additional stuff done'.
|
91
|
+
puts 'Additional stuff done'.color(:green)
|
79
92
|
end
|
80
93
|
|
81
94
|
# Copy result to .latex_curriculum_vitae
|
82
95
|
# @param [String] name_of_pdf Name of the resulting PDF file
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
96
|
+
# @param [String] data_dir Path to the data dir
|
97
|
+
def self.copy_home(name_of_pdf, data_dir)
|
98
|
+
puts "Copying #{name_of_pdf}.pdf to tmpdir".color(:yellow)
|
99
|
+
system("cp #{name_of_pdf}.pdf #{data_dir}")
|
100
|
+
puts 'Copied to tmpdir'.color(:green)
|
87
101
|
end
|
88
102
|
end
|
89
103
|
end
|
@@ -1,10 +1,17 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
# @author Sascha Manns
|
4
|
-
# @abstract module for preparing a email and send it out
|
5
|
-
#
|
6
1
|
# Copyright (C) 2015-2017 Sascha Manns <Sascha.Manns@mailbox.org>
|
7
|
-
#
|
2
|
+
#
|
3
|
+
# This program is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
8
15
|
|
9
16
|
# Dependencies
|
10
17
|
require 'rainbow/ext/string'
|
@@ -12,101 +19,172 @@ require 'pony'
|
|
12
19
|
require 'resolv-replace.rb'
|
13
20
|
require File.expand_path(File.join(File.dirname(__FILE__), 'get-config'))
|
14
21
|
|
15
|
-
# rubocop:disable Metrics/LineLength
|
16
22
|
# Module for creating the CV
|
17
23
|
module LatexCurriculumVitae
|
24
|
+
# Module for creating the Email
|
18
25
|
module Email
|
19
26
|
# Method for creating the email
|
20
|
-
# rubocop:disable Metrics/MethodLength
|
21
27
|
# @param [String] contact Name of the contact
|
22
|
-
# @param [String]
|
23
|
-
# @param [String]
|
28
|
+
# @param [String] email_address Email address of the contact
|
29
|
+
# @param [String] job_title Title of the target job
|
24
30
|
# @param [String] contact_sex Can be male, female or unknown
|
25
31
|
# @param [String] proactive Can be yes or no
|
26
32
|
# @param [String] letter For preparing the letter
|
27
33
|
# @param [String] name_of_pdf Name of the output pdf
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
34
|
+
# TODO: Try to fix this in future
|
35
|
+
# rubocop:disable Metrics/MethodLength
|
36
|
+
# rubocop:disable Metrics/ParameterLists
|
37
|
+
# This method smells of :reek:LongParameterList
|
38
|
+
# This method smells of :reek:ControlParameter
|
39
|
+
def self.create_email(contact, email_address, job_title, contact_sex, proactive, letter, name_of_pdf, sysconf_dir,
|
40
|
+
data_dir, mail_backend, target)
|
41
|
+
own_email_address, own_smtp, own_username, own_password,
|
42
|
+
own_port = LatexCurriculumVitae::GetConfig.get_smtp(sysconf_dir)
|
43
|
+
introduction = introduction(contact, contact_sex)
|
44
|
+
subject = subject(proactive, job_title)
|
45
|
+
body = get_body(introduction, letter, proactive, job_title, target)
|
46
|
+
filename = "#{data_dir}/#{name_of_pdf}.pdf"
|
47
|
+
|
48
|
+
if mail_backend == 'Pony'
|
49
|
+
# More information about Pony Mailer: https://github.com/benprew/pony
|
50
|
+
Pony.mail(to: email_address,
|
51
|
+
bcc: own_email_address,
|
52
|
+
from: own_email_address,
|
53
|
+
subject: subject,
|
54
|
+
body: body,
|
55
|
+
attachments: { 'Bewerbungsunterlagen_Manns.pdf' => File.read(filename) },
|
56
|
+
via: :smtp,
|
57
|
+
via_options: {
|
58
|
+
address: own_smtp,
|
59
|
+
port: own_port,
|
60
|
+
enable_starttls_auto: true,
|
61
|
+
user_name: own_username,
|
62
|
+
password: own_password,
|
63
|
+
authentication: :plain, # :plain, :login, :cram_md5, no auth by default
|
64
|
+
domain: 'localhost.localdomain', # the HELO domain provided by the client to the server
|
65
|
+
})
|
66
|
+
else
|
67
|
+
`evolution mailto:"#{email_address}?subject=#{subject}\&body=#{body}\&attach=#{filename}"`
|
68
|
+
end
|
54
69
|
end
|
55
70
|
|
56
71
|
# Method for building the introduction
|
57
72
|
# @param [String] contact Name of the contact
|
58
73
|
# @param [String] contact_sex Can be male, female or unknown
|
59
|
-
# @return [String] Returns
|
74
|
+
# @return [String] Returns introduction
|
75
|
+
# TODO: Try to fix this in future
|
76
|
+
# rubocop:disable Style/IfInsideElse
|
77
|
+
# This method smells of :reek:ControlParameter
|
60
78
|
def self.introduction(contact, contact_sex)
|
61
|
-
if contact == ''
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
79
|
+
introduction = if contact == ''
|
80
|
+
'Sehr geehrte Damen und Herren,'
|
81
|
+
else
|
82
|
+
if contact_sex == 'male'
|
83
|
+
"Sehr geehrter Herr #{contact},"
|
84
|
+
else
|
85
|
+
"Sehr geehrte Frau #{contact},"
|
86
|
+
end
|
87
|
+
end
|
70
88
|
return introduction
|
71
89
|
end
|
72
90
|
|
73
91
|
# Method for building the subject
|
74
92
|
# @param [String] proactive Can be yes or no
|
75
|
-
# @param [String]
|
76
|
-
# @return [
|
77
|
-
|
78
|
-
|
79
|
-
|
93
|
+
# @param [String] job_title Title of the target job
|
94
|
+
# @return [Array] subject, intro
|
95
|
+
# TODO: Try to fix this in future
|
96
|
+
# This method smells of :reek:ControlParameter
|
97
|
+
def self.subject(proactive, job_title)
|
98
|
+
subject = if proactive == 'yes'
|
99
|
+
"Initiativbewerbung um einen Arbeitsplatz als #{job_title}"
|
100
|
+
else
|
101
|
+
"Bewerbung um einen Arbeitsplatz als #{job_title}"
|
102
|
+
end
|
103
|
+
return subject
|
104
|
+
end
|
105
|
+
|
106
|
+
# Method for getting the email intro
|
107
|
+
# TODO: Try to fix this in future
|
108
|
+
# rubocop:disable Metrics/LineLength
|
109
|
+
# This method smells of :reek:ControlParameter
|
110
|
+
# @param [String] proactive Is this a proactive application yes/no
|
111
|
+
# @param [String] job_title The job title
|
112
|
+
# @return intro
|
113
|
+
def self.get_intro(proactive, job_title)
|
114
|
+
intro = if proactive == 'yes'
|
115
|
+
"gerne möchte ich mich bei Ihnen um die Stelle als #{job_title} oder einer ähnlichen Position bewerben."
|
116
|
+
else
|
117
|
+
"mit großem Interesse bin ich auf die ausgeschriebene Position aufmerksam geworden. Aus diesem Grund bewerbe ich mich bei Ihnen als #{job_title}."
|
118
|
+
end
|
119
|
+
return intro
|
120
|
+
end
|
121
|
+
|
122
|
+
# Method for getting the target code block
|
123
|
+
# @param [String] target The chosen target
|
124
|
+
# @returns [String] target_block Returns a Block with the chosen Information
|
125
|
+
# TODO: Try to fix this in future
|
126
|
+
# This method smells of :reek:ControlParameter
|
127
|
+
def self.get_target_block(target)
|
128
|
+
if target == 'doku'
|
129
|
+
target_block = 'Neben der Beschreibungssprache DocBook samt XSL-FO lernte ich die Satzsprache LaTeX.
|
130
|
+
Selbstständig erarbeitete ich mir Kenntnisse in den Programmiersprachen Ruby, Python, sowie der Web-App-Entwicklung
|
131
|
+
(TH Mittelrhein).'
|
132
|
+
elsif target == 'support'
|
133
|
+
target_block = 'Im IT-Support hatte ich bereits erste Führungserfahrung als Dispatcher und Controller.
|
134
|
+
Selbstständig erarbeitete ich mir Kenntnisse in den Programmiersprachen Bash, Ruby und Python, sowie der
|
135
|
+
Web-App-Entwicklung (TH Mittelrhein).'
|
80
136
|
else
|
81
|
-
|
137
|
+
target_block = 'Im kaufmännischen Bereich habe ich bereits vielfältige Erfahrungen im Einkauf, Verkauf,
|
138
|
+
Öffentlichkeitsarbeit und Vertrieb gemacht und bin stets bereit neues zu lernen.'
|
82
139
|
end
|
83
|
-
return
|
140
|
+
return target_block
|
84
141
|
end
|
85
142
|
|
86
143
|
# Method for building the email body
|
87
144
|
# @param [String] introduction EMail introduction
|
88
145
|
# @param [String] letter With motivational letter? Can be yes or no
|
146
|
+
# @param [String] proactive Is this a proactive application yes/no
|
147
|
+
# @param [String] job_title The job title
|
89
148
|
# @return [String] body Returns the messagebody for the email
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
149
|
+
# TODO: Try to fix this in future
|
150
|
+
# rubocop:disable Layout/IndentHeredoc
|
151
|
+
# This method smells of :reek:ControlParameter
|
152
|
+
def self.get_body(introduction, letter, proactive, job_title, target)
|
153
|
+
intro = get_intro(proactive, job_title)
|
154
|
+
target_block = get_target_block(target)
|
155
|
+
body = if letter == 'no'
|
156
|
+
<<BODY
|
94
157
|
#{introduction}
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
158
|
+
|
159
|
+
#{intro}
|
160
|
+
|
161
|
+
Mit meinen vielfältigen Erfahrungen als Kaufmann, Community-
|
162
|
+
Manager, Buchautor und Customer Supporter (Level 1 und 2),
|
163
|
+
sowie Autor Geschäftsprozess- und Anwendungsdokumentation
|
164
|
+
könnte ich Ihr neuer Mitarbeiter sein.
|
165
|
+
|
166
|
+
Zuletzt war ich für die XCOM AG im Bereich der Dokumentation
|
167
|
+
tätig.
|
168
|
+
|
169
|
+
Seit dieser Zeit habe ich an teamgesteuerten Projekten für Kunden
|
170
|
+
mitgearbeitet, wobei mein Schwerpunkt im Bereich Kundenpflege via
|
171
|
+
Telefon und Email, Dispatching und Teamcontrolling lag.
|
172
|
+
|
173
|
+
#{target_block}
|
174
|
+
|
102
175
|
In für mich fremde Arbeitsgebiete werde ich mich rasch einarbeiten.
|
103
|
-
Meine Kenntnisse in IT und Organisationsfähigkeiten kann ich für Ihr
|
104
|
-
Bereich des Managements gewinnbringend umsetzen.
|
105
|
-
Persönlich runde ich das Profil mit den Eigenschaften: Teamfähigkeit,
|
106
|
-
|
107
|
-
|
108
|
-
|
176
|
+
Meine Kenntnisse in IT und Organisationsfähigkeiten kann ich für Ihr
|
177
|
+
Unternehmen im Bereich des Managements gewinnbringend umsetzen.
|
178
|
+
Persönlich runde ich das Profil mit den Eigenschaften: Teamfähigkeit,
|
179
|
+
Kommunikationsstärke und Leistungsbereitschaft ab.
|
180
|
+
|
181
|
+
Ich bin mir sicher, die von Ihnen gewünschten Kenntnisse und
|
182
|
+
Fähigkeiten mitzubringen, und würde mich sehr über ein
|
183
|
+
Vorstellungsgespräch freuen.
|
184
|
+
|
109
185
|
--
|
186
|
+
|
187
|
+
|
110
188
|
Sincerly yours
|
111
189
|
|
112
190
|
Sascha Manns
|
@@ -115,18 +193,15 @@ Maifeldstraße 10
|
|
115
193
|
Phone: +49-1573-9242730 (mobile)
|
116
194
|
Phone: +49-2651-4014045 (home)
|
117
195
|
Email: Sascha.Manns@mailbox.org
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
GPG: 645A18FC6B573A7BE6E95150752763E8BFA83A2C @ hkp://keys.gnupg.net
|
123
|
-
S/MIME: C57921ED8F7535B08DC6D14BF11CD19BF9E8ED5C @ cacert.org
|
124
|
-
EOF
|
125
|
-
else
|
126
|
-
body =<<EOF
|
196
|
+
Web: http://saigkill.tuxfamily.org
|
197
|
+
BODY
|
198
|
+
else
|
199
|
+
<<BODY
|
127
200
|
#{introduction}
|
201
|
+
|
128
202
|
gerne möchte ich mich bei Ihnen für die obige Stelle bewerben.
|
129
|
-
Meine
|
203
|
+
Meine digitale Bewerbungsmappe, samt des offiziellen Anschreibens,
|
204
|
+
sind der Mail als Anhang beigefügt.
|
130
205
|
--
|
131
206
|
Sincerly yours
|
132
207
|
|
@@ -136,33 +211,32 @@ Maifeldstraße 10
|
|
136
211
|
Phone: +49-1573-9242730 (mobile)
|
137
212
|
Phone: +49-2651-4014045 (home)
|
138
213
|
Email: Sascha.Manns@mailbox.org
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
Facebook: sascha.manns / Xing: Sascha_Manns2
|
143
|
-
GPG: 645A18FC6B573A7BE6E95150752763E8BFA83A2C @ hkp://keys.gnupg.net
|
144
|
-
S/MIME: C57921ED8F7535B08DC6D14BF11CD19BF9E8ED5C @ cacert.org
|
145
|
-
EOF
|
146
|
-
end
|
214
|
+
Web: http://saigkill.tuxfamily.org
|
215
|
+
BODY
|
216
|
+
end
|
147
217
|
return body
|
148
218
|
end
|
149
219
|
|
150
220
|
# Method for checking the result
|
151
221
|
# @param [String] contact Name of the contact
|
152
|
-
# @param [String]
|
153
|
-
# @param [String]
|
222
|
+
# @param [String] email_address Email address from the contact
|
223
|
+
# @param [String] job_title The given jobtitle
|
154
224
|
# @param [String] contact_sex Can be male, female or unknown
|
155
225
|
# @param [String] proactive Can be yes or no
|
156
226
|
# @param [String] letter With motivational letter? Can be yes or no
|
157
227
|
# @param [String] name_of_pdf Name of the resulting PDF file
|
158
|
-
|
159
|
-
|
228
|
+
# TODO: Try to fix this in future
|
229
|
+
# This method smells of :reek:LongParameterList
|
230
|
+
def self.result_ok(contact, email_address, job_title, contact_sex, proactive, letter, name_of_pdf, sysconf_dir,
|
231
|
+
data_dir, mail_backend, target)
|
232
|
+
resultfile_ok = `yad --title="Resulting file" --center --on-top --form \
|
160
233
|
--item-separator=, --separator="|" \
|
161
234
|
--field="Resulting file ok?:CBE" \
|
162
235
|
"yes,no"`
|
163
|
-
ok =
|
236
|
+
ok = resultfile_ok.chomp.split('|')
|
164
237
|
if ok.include? 'yes'
|
165
|
-
LatexCurriculumVitae::Email.create_email(contact,
|
238
|
+
LatexCurriculumVitae::Email.create_email(contact, email_address, job_title, contact_sex, proactive, letter,
|
239
|
+
name_of_pdf, sysconf_dir, data_dir, mail_backend, target)
|
166
240
|
else
|
167
241
|
abort('Aborted')
|
168
242
|
end
|