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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.autotest +25 -0
  4. data/.codeclimate.yml +8 -0
  5. data/.coveralls.yml +2 -0
  6. data/.gemnasium.yml +1 -1
  7. data/.index +5 -8
  8. data/.rspec +2 -0
  9. data/.rubocop.yml +39 -0
  10. data/.scrutinizer.yml +17 -0
  11. data/.travis.yml +27 -0
  12. data/CONTRIBUTING.md +2 -2
  13. data/Gemfile +41 -2
  14. data/Gemfile.lock +181 -16
  15. data/History.rdoc +32 -0
  16. data/Index.yml +4 -5
  17. data/LICENSE.rdoc +24 -0
  18. data/{MANIFEST → Manifest.txt} +24 -21
  19. data/README.rdoc +98 -0
  20. data/Rakefile +97 -198
  21. data/VERSION +1 -1
  22. data/bin/latexcv.rb +2 -2
  23. data/config.reek +111 -0
  24. data/data/latex_curriculum_vitae/Cover/Cover.tex +1 -2
  25. data/data/latex_curriculum_vitae/Motivational_Letter/bwanschreiben.tex +28 -34
  26. data/etc/latex_curriculum_vitae.cfg +5 -0
  27. data/etc/personal_data.tex +6 -2
  28. data/lib/latex_curriculum_vitae/cover.rb +7 -4
  29. data/lib/latex_curriculum_vitae/cv.rb +44 -13
  30. data/lib/latex_curriculum_vitae/email.rb +22 -12
  31. data/lib/latex_curriculum_vitae/entityfile.rb +68 -29
  32. data/lib/latex_curriculum_vitae/get-config.rb +25 -0
  33. data/lib/latex_curriculum_vitae/glade/{latexcv.glade~ → latexcv.glade} +0 -0
  34. data/lib/latex_curriculum_vitae/letter.rb +23 -0
  35. data/lib/latex_curriculum_vitae.rb +42 -13
  36. data.tar.gz.sig +0 -0
  37. metadata +412 -91
  38. metadata.gz.sig +0 -0
  39. data/.gitignore +0 -5
  40. data/.idea/latex_curriculum_vitae.iml +0 -25
  41. data/.idea/misc.xml +0 -4
  42. data/.idea/modules.xml +0 -8
  43. data/.idea/vcs.xml +0 -6
  44. data/.idea/workspace.xml +0 -708
  45. data/.setup/installer.rb +0 -30
  46. data/.setup/metaconfig.rb +0 -1
  47. data/CHANGELOG.md +0 -10
  48. data/LICENSE +0 -166
  49. data/README.md +0 -122
  50. data/data/latex_curriculum_vitae/Appendix/Employers_Reference/build.bat +0 -4
  51. data/data/latex_curriculum_vitae/Motivational_Letter/Anschreiben.docx +0 -0
  52. data/data/latex_curriculum_vitae/Motivational_Letter/Anschreiben_MC.pdf +0 -0
  53. data/latex_curriculum_vitae.gemspec +0 -42
  54. data/lib/latex_curriculum_vitae/version.rb +0 -24
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
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.rb'
7
- require 'bundler/setup'
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{mygruen}\LARGE}
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{entity.tex}
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.45,0.75}
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}{Sascha Manns}
93
- \setkomavar{fromaddress}{Maifeldstraße 10\\D-56 727 Mayen}
94
- \setkomavar{fromphone}[\Mobilefone~]{+49\,(0)\,2651\,40\,14\,045}
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~]{Sascha.Manns@bdvb.de}
97
- \setkomavar{fromurl}[]{http://saigkill.github.io}
98
- \setkomafont{fromaddress}{\small\rmfamily\mdseries\slshape\color{mygruen}}
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.7]{spool/signatur.png}\\
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
- \setkomavar{frombank}{Kto. 198\ 242\ 620\\
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}{\Firma \\
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{Bewerbung um einen Arbeitsplatz als \Stelle}
172
+ \setkomavar{subject}{\bf{\subject}
171
173
  }
172
174
  %---------------------------------------------------------------------------
173
175
  %\opening{Sehr geehrter \Ansprechpartner,}
174
- \opening{Sehr geehrte Damen und Herren,}
175
-
176
- gerne antworte ich auf Ihre Anzeige. \\
177
- %gerne möchte ich eine Initiativbewerbung einreichen.\\
178
- Mit meinen vielfältigen Erfahrungen als Kaufmann, Community Manager, Buchautor und Customer Supporter (Level 1\&2) könnte ich Ihr neuer Mitarbeiter sein. \\
179
- %Nach meiner Kaufmännischen Ausbildung und anschließenden Arbeit wurde ich während meines Ersatzdienstes als Maler \& Bodenleger angelernt. In letzterem durfte ich auch nach einer Weile eigene Teams und Projekte leiten.\\
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
 
@@ -0,0 +1,5 @@
1
+ # Name your resulting pdf set
2
+ name_of_pdf = "Bewerbungsunterlagen_Manns"
3
+ name_of_cover = "Cover"
4
+ name_of_resume = "cv_10"
5
+ name_of_letter = "bwanschreiben"
@@ -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-2651-40~14~045}
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: GPL-3
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
- system('pdflatex Cover.tex')
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: GPL-3
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
- def self.create_cv
15
- system('xelatex cv_10.tex')
16
- puts 'First run of xelatex passed'
17
- system('biber cv_10.bcf')
18
- puts 'Run of biber passed'
19
- system('xelatex cv_10.tex')
20
- puts 'Second run of xelatex passed'
21
- puts 'Shrinking PDF'
22
- system('gs -o Bewerbungsunterlagen_Manns.pdf -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress cv_10.pdf')
23
- puts 'All done'
24
- system('cp Bewerbungsunterlagen_Manns.pdf ..')
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
- end
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: GPL-3
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
- 'gerne möchte ich mich bei Ihnen für die obige Stelle bewerben.' + "#{crlf}" +
45
- 'Ich kann auf einige Jahre im IT-Bereich zurückblicken und war' + "#{crlf}" +
46
- 'hauptsächlich in den Bereichen Support und Geschäftsprozess- ' + "#{ampersand}" + "#{crlf}" +
47
- 'Anwendungsdokumentation tätig, zuletzt im Bankbereich.' + "#{crlf}" + "#{crlf}" +
48
- 'Auf die übliche übertriebene Selbstdarstellung verzichte ich an dieser' + "#{crlf}" +
49
- 'Stelle, da dies nicht mein Stil ist und Sie tatsächlich ohne mich' + "#{crlf}" +
50
- 'auskommen würden.' + "#{crlf}" + "#{crlf}" +
51
- 'Dennoch freue ich mich auf eine Einladung zum Vorstellungsgespräch.' + "#{crlf}" + "#{crlf}" +
52
- 'Meine Bewerbungsunterlagen sind der Mail als Anhang beigefügt.' + "#{crlf}"
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: GPL-3
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
- resume = `yad --title="Create application" --center --on-top --form \
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="Is your contact male or female? leave blank if unknown contact:CBE" \
22
- --field="If you have a contact so give me the name of him/her. leave blank if unknown contact:TEXT" \
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
- jobtitle, proactive, company, contact_sex, contact, emailaddress = resume.chomp.split('|')
26
- [jobtitle, proactive, company, contact_sex, contact, emailaddress].each do |s|
27
- puts s
28
- end
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
- city = ''
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
- # TODO: Extend code for using the gtk GUI
41
- require 'gtk2'
42
- require 'libglade2'
43
- @threads = []
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
- Gtk.init
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
- @glade = GladeXML.new('glade/latexcv.glade')
48
- @glade.widget_names.each do |name|
49
- instance_variable_set("@#{name}".intern, @glade[name])
81
+ addressstring = "#{company} \\\\"
82
+ if contact == ''
83
+ addressstring << 'z.Hd. Personalabteilung \\\\'
84
+ else
85
+ addressstring << "z.Hd. #{contact} \\\\"
50
86
  end
51
- end
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