latex_curriculum_vitae 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gemnasium.yml +5 -0
- data/.gitignore +5 -0
- data/.idea/latex_curriculum_vitae.iml +25 -0
- data/.idea/misc.xml +4 -0
- data/.idea/modules.xml +8 -0
- data/.idea/vcs.xml +6 -0
- data/.idea/workspace.xml +686 -0
- data/.index +84 -0
- data/.setup/installer.rb +30 -0
- data/.setup/metaconfig.rb +1 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +17 -0
- data/CONTRIBUTING.md +25 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +32 -0
- data/Index.yml +40 -0
- data/LICENSE +166 -0
- data/MANIFEST +69 -0
- data/README.md +122 -0
- data/Rakefile +216 -0
- data/VERSION +1 -0
- data/bin/latexcv.rb +10 -0
- data/data/latex_curriculum_vitae/Appendix/Bibliography/bibliography1.bib +61 -0
- data/data/latex_curriculum_vitae/Appendix/Certificates/Zertifikat_Sascha_Manns1.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Certificates/kompetenzpass12013.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Certificates/thm-webeng1.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/Arbeitszeugnisse.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/build.bat +4 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/hays.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/haysnew.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/openslx.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/openslx1.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/test.bat +2 -0
- data/data/latex_curriculum_vitae/Appendix/Employers_Reference/wtg.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/First_References/bsaz.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/First_References/hsaz.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/First_References/ihk.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Study/foo.pdf +0 -0
- data/data/latex_curriculum_vitae/Appendix/Study/zwzils.jpg +0 -0
- data/data/latex_curriculum_vitae/Appendix/Study/zwzils.pdf +0 -0
- data/data/latex_curriculum_vitae/Cover/Cover.tex +153 -0
- data/data/latex_curriculum_vitae/Motivational_Letter/Anschreiben.docx +0 -0
- data/data/latex_curriculum_vitae/Motivational_Letter/Anschreiben_MC.pdf +0 -0
- data/data/latex_curriculum_vitae/Motivational_Letter/bwanschreiben.tex +199 -0
- data/data/latex_curriculum_vitae/Pictures/Sascha1p.jpg +0 -0
- data/data/latex_curriculum_vitae/Pictures/arbeitsagentur.png +0 -0
- data/data/latex_curriculum_vitae/Pictures/background.jpg +0 -0
- data/data/latex_curriculum_vitae/Pictures/background.png +0 -0
- data/data/latex_curriculum_vitae/Pictures/signatur.png +0 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.aux +41 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.bbl +1982 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.bcf +2089 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.blg +100 -0
- 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 +86 -0
- data/data/latex_curriculum_vitae/Resume/cv_10.tex +440 -0
- data/data/latex_curriculum_vitae/Resume/friggeri-cv.cls +327 -0
- data/data/latex_curriculum_vitae/Resume/missfont.log +13 -0
- data/etc/personal_data.tex +6 -0
- data/latex_curriculum_vitae.gemspec +42 -0
- data/lib/latex_curriculum_vitae/cover.rb +17 -0
- data/lib/latex_curriculum_vitae/cv.rb +26 -0
- data/lib/latex_curriculum_vitae/email.rb +62 -0
- data/lib/latex_curriculum_vitae/entityfile.rb +65 -0
- data/lib/latex_curriculum_vitae/glade/latexcv.glade~ +249 -0
- data/lib/latex_curriculum_vitae/notifier.rb +26 -0
- data/lib/latex_curriculum_vitae/outfile.rb +35 -0
- data/lib/latex_curriculum_vitae/version.rb +24 -0
- data/lib/latex_curriculum_vitae.rb +56 -0
- data/setup.rb +1296 -0
- metadata +276 -0
@@ -0,0 +1,249 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.18.3 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.12"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="can_focus">False</property>
|
7
|
+
<child>
|
8
|
+
<object class="GtkGrid" id="grid1">
|
9
|
+
<property name="visible">True</property>
|
10
|
+
<property name="can_focus">False</property>
|
11
|
+
<child>
|
12
|
+
<object class="GtkLabel" id="label1">
|
13
|
+
<property name="visible">True</property>
|
14
|
+
<property name="can_focus">False</property>
|
15
|
+
<property name="halign">start</property>
|
16
|
+
<property name="label" translatable="yes">What is the jobtitle of your application?
|
17
|
+
Escape amp with backslash.
|
18
|
+
</property>
|
19
|
+
</object>
|
20
|
+
<packing>
|
21
|
+
<property name="left_attach">0</property>
|
22
|
+
<property name="top_attach">0</property>
|
23
|
+
</packing>
|
24
|
+
</child>
|
25
|
+
<child>
|
26
|
+
<object class="GtkEntry" id="entry1">
|
27
|
+
<property name="visible">True</property>
|
28
|
+
<property name="can_focus">True</property>
|
29
|
+
</object>
|
30
|
+
<packing>
|
31
|
+
<property name="left_attach">1</property>
|
32
|
+
<property name="top_attach">0</property>
|
33
|
+
</packing>
|
34
|
+
</child>
|
35
|
+
<child>
|
36
|
+
<object class="GtkLabel" id="label2">
|
37
|
+
<property name="visible">True</property>
|
38
|
+
<property name="can_focus">False</property>
|
39
|
+
<property name="halign">start</property>
|
40
|
+
<property name="label" translatable="yes">Is it a proactive application?</property>
|
41
|
+
</object>
|
42
|
+
<packing>
|
43
|
+
<property name="left_attach">0</property>
|
44
|
+
<property name="top_attach">1</property>
|
45
|
+
</packing>
|
46
|
+
</child>
|
47
|
+
<child>
|
48
|
+
<object class="GtkBox" id="box1">
|
49
|
+
<property name="visible">True</property>
|
50
|
+
<property name="can_focus">False</property>
|
51
|
+
<property name="orientation">vertical</property>
|
52
|
+
<child>
|
53
|
+
<object class="GtkRadioButton" id="radiobutton1">
|
54
|
+
<property name="label" translatable="yes">yes</property>
|
55
|
+
<property name="visible">True</property>
|
56
|
+
<property name="can_focus">True</property>
|
57
|
+
<property name="receives_default">False</property>
|
58
|
+
<property name="xalign">0</property>
|
59
|
+
<property name="active">True</property>
|
60
|
+
<property name="draw_indicator">True</property>
|
61
|
+
</object>
|
62
|
+
<packing>
|
63
|
+
<property name="expand">False</property>
|
64
|
+
<property name="fill">True</property>
|
65
|
+
<property name="position">0</property>
|
66
|
+
</packing>
|
67
|
+
</child>
|
68
|
+
<child>
|
69
|
+
<object class="GtkRadioButton" id="radiobutton2">
|
70
|
+
<property name="label" translatable="yes">no</property>
|
71
|
+
<property name="visible">True</property>
|
72
|
+
<property name="can_focus">True</property>
|
73
|
+
<property name="receives_default">False</property>
|
74
|
+
<property name="xalign">0</property>
|
75
|
+
<property name="active">True</property>
|
76
|
+
<property name="draw_indicator">True</property>
|
77
|
+
</object>
|
78
|
+
<packing>
|
79
|
+
<property name="expand">False</property>
|
80
|
+
<property name="fill">True</property>
|
81
|
+
<property name="position">1</property>
|
82
|
+
</packing>
|
83
|
+
</child>
|
84
|
+
</object>
|
85
|
+
<packing>
|
86
|
+
<property name="left_attach">1</property>
|
87
|
+
<property name="top_attach">1</property>
|
88
|
+
</packing>
|
89
|
+
</child>
|
90
|
+
<child>
|
91
|
+
<object class="GtkLabel" id="label3">
|
92
|
+
<property name="visible">True</property>
|
93
|
+
<property name="can_focus">False</property>
|
94
|
+
<property name="halign">start</property>
|
95
|
+
<property name="label" translatable="yes">What is the companies name?
|
96
|
+
Escape amp with backslash.</property>
|
97
|
+
</object>
|
98
|
+
<packing>
|
99
|
+
<property name="left_attach">0</property>
|
100
|
+
<property name="top_attach">2</property>
|
101
|
+
</packing>
|
102
|
+
</child>
|
103
|
+
<child>
|
104
|
+
<object class="GtkEntry" id="entry2">
|
105
|
+
<property name="visible">True</property>
|
106
|
+
<property name="can_focus">True</property>
|
107
|
+
</object>
|
108
|
+
<packing>
|
109
|
+
<property name="left_attach">1</property>
|
110
|
+
<property name="top_attach">2</property>
|
111
|
+
</packing>
|
112
|
+
</child>
|
113
|
+
<child>
|
114
|
+
<object class="GtkLabel" id="label4">
|
115
|
+
<property name="visible">True</property>
|
116
|
+
<property name="can_focus">False</property>
|
117
|
+
<property name="halign">start</property>
|
118
|
+
<property name="label" translatable="yes">Is your contact male or female?
|
119
|
+
Use unknown if unknown.</property>
|
120
|
+
</object>
|
121
|
+
<packing>
|
122
|
+
<property name="left_attach">0</property>
|
123
|
+
<property name="top_attach">3</property>
|
124
|
+
</packing>
|
125
|
+
</child>
|
126
|
+
<child>
|
127
|
+
<object class="GtkBox" id="box2">
|
128
|
+
<property name="visible">True</property>
|
129
|
+
<property name="can_focus">False</property>
|
130
|
+
<property name="orientation">vertical</property>
|
131
|
+
<child>
|
132
|
+
<object class="GtkRadioButton" id="radiobutton3">
|
133
|
+
<property name="label" translatable="yes">male</property>
|
134
|
+
<property name="visible">True</property>
|
135
|
+
<property name="can_focus">True</property>
|
136
|
+
<property name="receives_default">False</property>
|
137
|
+
<property name="xalign">0</property>
|
138
|
+
<property name="active">True</property>
|
139
|
+
<property name="draw_indicator">True</property>
|
140
|
+
</object>
|
141
|
+
<packing>
|
142
|
+
<property name="expand">False</property>
|
143
|
+
<property name="fill">True</property>
|
144
|
+
<property name="position">0</property>
|
145
|
+
</packing>
|
146
|
+
</child>
|
147
|
+
<child>
|
148
|
+
<object class="GtkRadioButton" id="radiobutton4">
|
149
|
+
<property name="label" translatable="yes">female</property>
|
150
|
+
<property name="visible">True</property>
|
151
|
+
<property name="can_focus">True</property>
|
152
|
+
<property name="receives_default">False</property>
|
153
|
+
<property name="xalign">0</property>
|
154
|
+
<property name="active">True</property>
|
155
|
+
<property name="draw_indicator">True</property>
|
156
|
+
</object>
|
157
|
+
<packing>
|
158
|
+
<property name="expand">False</property>
|
159
|
+
<property name="fill">True</property>
|
160
|
+
<property name="position">1</property>
|
161
|
+
</packing>
|
162
|
+
</child>
|
163
|
+
<child>
|
164
|
+
<object class="GtkRadioButton" id="radiobutton5">
|
165
|
+
<property name="label" translatable="yes">unknown</property>
|
166
|
+
<property name="visible">True</property>
|
167
|
+
<property name="can_focus">True</property>
|
168
|
+
<property name="receives_default">False</property>
|
169
|
+
<property name="xalign">0</property>
|
170
|
+
<property name="active">True</property>
|
171
|
+
<property name="draw_indicator">True</property>
|
172
|
+
</object>
|
173
|
+
<packing>
|
174
|
+
<property name="expand">False</property>
|
175
|
+
<property name="fill">True</property>
|
176
|
+
<property name="position">2</property>
|
177
|
+
</packing>
|
178
|
+
</child>
|
179
|
+
</object>
|
180
|
+
<packing>
|
181
|
+
<property name="left_attach">1</property>
|
182
|
+
<property name="top_attach">3</property>
|
183
|
+
</packing>
|
184
|
+
</child>
|
185
|
+
<child>
|
186
|
+
<object class="GtkLabel" id="label5">
|
187
|
+
<property name="visible">True</property>
|
188
|
+
<property name="can_focus">False</property>
|
189
|
+
<property name="halign">start</property>
|
190
|
+
<property name="label" translatable="yes">If you have a contact so give me
|
191
|
+
the name of him/her.</property>
|
192
|
+
</object>
|
193
|
+
<packing>
|
194
|
+
<property name="left_attach">0</property>
|
195
|
+
<property name="top_attach">4</property>
|
196
|
+
</packing>
|
197
|
+
</child>
|
198
|
+
<child>
|
199
|
+
<object class="GtkEntry" id="entry3">
|
200
|
+
<property name="visible">True</property>
|
201
|
+
<property name="can_focus">True</property>
|
202
|
+
</object>
|
203
|
+
<packing>
|
204
|
+
<property name="left_attach">1</property>
|
205
|
+
<property name="top_attach">4</property>
|
206
|
+
</packing>
|
207
|
+
</child>
|
208
|
+
<child>
|
209
|
+
<object class="GtkLabel" id="label6">
|
210
|
+
<property name="visible">True</property>
|
211
|
+
<property name="can_focus">False</property>
|
212
|
+
<property name="halign">start</property>
|
213
|
+
<property name="label" translatable="yes">Tell me the email address for
|
214
|
+
sending the application</property>
|
215
|
+
</object>
|
216
|
+
<packing>
|
217
|
+
<property name="left_attach">0</property>
|
218
|
+
<property name="top_attach">5</property>
|
219
|
+
</packing>
|
220
|
+
</child>
|
221
|
+
<child>
|
222
|
+
<object class="GtkEntry" id="entry4">
|
223
|
+
<property name="visible">True</property>
|
224
|
+
<property name="can_focus">True</property>
|
225
|
+
</object>
|
226
|
+
<packing>
|
227
|
+
<property name="left_attach">1</property>
|
228
|
+
<property name="top_attach">5</property>
|
229
|
+
</packing>
|
230
|
+
</child>
|
231
|
+
<child>
|
232
|
+
<object class="GtkButton" id="button1">
|
233
|
+
<property name="label" translatable="yes">Go</property>
|
234
|
+
<property name="visible">True</property>
|
235
|
+
<property name="can_focus">True</property>
|
236
|
+
<property name="receives_default">True</property>
|
237
|
+
</object>
|
238
|
+
<packing>
|
239
|
+
<property name="left_attach">1</property>
|
240
|
+
<property name="top_attach">6</property>
|
241
|
+
</packing>
|
242
|
+
</child>
|
243
|
+
<child>
|
244
|
+
<placeholder/>
|
245
|
+
</child>
|
246
|
+
</object>
|
247
|
+
</child>
|
248
|
+
</object>
|
249
|
+
</interface>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
# @author Sascha Manns
|
4
|
+
# @abstract Notifier Module for latex_curriculum_vitae
|
5
|
+
#
|
6
|
+
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
7
|
+
# License: GPL-3
|
8
|
+
|
9
|
+
# Dependencies
|
10
|
+
|
11
|
+
# Module for notify the user
|
12
|
+
require 'notifier'
|
13
|
+
|
14
|
+
module Notifier
|
15
|
+
def self.run
|
16
|
+
home = Dir.home
|
17
|
+
prefix = "#{home}/.rvm/rubies/default"
|
18
|
+
datadir = "#{prefix}/share"
|
19
|
+
img = "#{datadir}/latex_curriculum_vitae/Pictures/arbeitsagentur.png"
|
20
|
+
Notifier.notify(
|
21
|
+
:image => "#{img}",
|
22
|
+
:title => "Your Job Application",
|
23
|
+
:message => "Your Job Application was created now."
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
# @author Sascha Manns
|
4
|
+
# @abstract CV Module for latex_curriculum_vitae
|
5
|
+
#
|
6
|
+
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
7
|
+
# License: GPL-3
|
8
|
+
|
9
|
+
# Dependencies
|
10
|
+
require 'csv'
|
11
|
+
|
12
|
+
# Module for creating and appending the outfile
|
13
|
+
module CVOutfile
|
14
|
+
# Method to adding the data into the csv file
|
15
|
+
def self.add_to_outfile(jobtitle, company, contact, emailaddress, csvout)
|
16
|
+
home = Dir.home
|
17
|
+
time = Time.new
|
18
|
+
date = time.strftime('%Y-%m-%d')
|
19
|
+
contact.gsub!('%20', ' ')
|
20
|
+
jobtitle.gsub!('%20', ' ')
|
21
|
+
jobtitle.gsub!('%26', '&')
|
22
|
+
if File.exist?(csvout)
|
23
|
+
puts 'do nothing'
|
24
|
+
else
|
25
|
+
FileUtils.touch(csvout)
|
26
|
+
File.write "#{csvout}", <<EOF
|
27
|
+
date,company,job,contact,email,status
|
28
|
+
EOF
|
29
|
+
end
|
30
|
+
CSV.open("#{csvout}", 'a+') do |csv|
|
31
|
+
#datum,firma,stelle,kontakt,email,status
|
32
|
+
csv << ["#{date}","#{company}","#{jobtitle}","#{contact}","#{emailaddress}",'Open']
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# latex_curriculum_vitae
|
2
|
+
# @author Sascha Manns
|
3
|
+
# @abstract Class for maintaining the version number
|
4
|
+
#
|
5
|
+
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
6
|
+
# License: GPL-3
|
7
|
+
|
8
|
+
# Method for versioning the gem
|
9
|
+
class LatexCurriculumVitae
|
10
|
+
# @note human readable Version
|
11
|
+
# @return [String] STRING (Version)
|
12
|
+
module Version
|
13
|
+
# Major version. Maybe never reached
|
14
|
+
MAJOR = 0
|
15
|
+
# Minor version.
|
16
|
+
MINOR = 1
|
17
|
+
# Patchlevel
|
18
|
+
PATCH = 1
|
19
|
+
# Buildversion. Mostly 0
|
20
|
+
BUILD = 0
|
21
|
+
# @note This will be shown by PublicanCreatorsVersion::Version::STRING
|
22
|
+
STRING = [MAJOR, MINOR, PATCH].compact.join('.')
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
# @author Sascha Manns
|
4
|
+
# @abstract Main Class for latex_curriculum_vitae
|
5
|
+
#
|
6
|
+
# Copyright (C) 2015 Sascha Manns <samannsml@directbox.com>
|
7
|
+
# License: GPL-3
|
8
|
+
#$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
9
|
+
|
10
|
+
# Dependencies
|
11
|
+
require 'fileutils'
|
12
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'latex_curriculum_vitae/entityfile'))
|
13
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'latex_curriculum_vitae/cv'))
|
14
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'latex_curriculum_vitae/cover'))
|
15
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'latex_curriculum_vitae/email'))
|
16
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'latex_curriculum_vitae/outfile'))
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'latex_curriculum_vitae/notifier'))
|
18
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'latex_curriculum_vitae/version'))
|
19
|
+
|
20
|
+
# Main Class LatexCurriculumVitae
|
21
|
+
class LatexCurriculumVitae
|
22
|
+
# Variables
|
23
|
+
home = Dir.home
|
24
|
+
prefix = "#{home}/.rvm/rubies/default"
|
25
|
+
datadir = "#{prefix}/share"
|
26
|
+
version = LatexCurriculumVitae::Version::STRING
|
27
|
+
entitytex = "#{home}/.latex_curriculum_vitae/entity.tex"
|
28
|
+
personaldata = "#{home}/.latex_curriculum_vitae/personal_data.tex"
|
29
|
+
csvout = "#{home}/.latex_curriculum_vitae/job-applications.csv"
|
30
|
+
|
31
|
+
# Get the needed Information for creating the application
|
32
|
+
contact, emailaddress, jobtitle, contact_sex, company, proactive = Entityfile.get_information(entitytex)
|
33
|
+
|
34
|
+
# Create the cover
|
35
|
+
FileUtils.cd("#{datadir}/latex_curriculum_vitae/Cover") do
|
36
|
+
Cover.create_cover
|
37
|
+
end
|
38
|
+
|
39
|
+
# Create the Curriculum Vitae
|
40
|
+
FileUtils.cd("#{datadir}/latex_curriculum_vitae/Resume") do
|
41
|
+
CV.create_cv
|
42
|
+
end
|
43
|
+
|
44
|
+
# Create the email
|
45
|
+
CVEmail.create_email(contact, emailaddress, jobtitle, contact_sex, proactive)
|
46
|
+
|
47
|
+
# Add entry to Outfile
|
48
|
+
CVOutfile.add_to_outfile(jobtitle, company, contact, emailaddress, csvout)
|
49
|
+
|
50
|
+
# Start evince to check the output file
|
51
|
+
system("evince #{datadir}/latex_curriculum_vitae/Bewerbungsunterlagen_Manns.pdf")
|
52
|
+
system("cp #{datadir}/latex_curriculum_vitae/Bewerbungsunterlagen_Manns.pdf #{home}/.latex_curriculum_vitae")
|
53
|
+
|
54
|
+
# Inform about creation is done
|
55
|
+
Notifier.run
|
56
|
+
end
|