resme 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 41210e013344cdaa0ebf2bda62cb32e6a7ab12d0
4
- data.tar.gz: 502428f940851e89c7d67434d1a7e159c51e8115
2
+ SHA256:
3
+ metadata.gz: c6651b4bfa0fa13684adffb20867adec59cbc93d7d611451f68b042e0f41147d
4
+ data.tar.gz: f53176624b4f6dd462bcedeee0ac9d1233b3dfa374ef377cd7237c60878733c6
5
5
  SHA512:
6
- metadata.gz: 3bbb1d5a0b1ec9a4aaecc61878d87cbb34c922058073c2660f4e06bdd42286d55956d49bccc988693d8ea4fd8dc28b58f89ab5052f4f7f9ae87c8fc0cccc6efb
7
- data.tar.gz: 3376bfe326cc4bb00c97d858cabc4df8793408a9b5a979090dab19710bce64bb674e16dff02465a6fedb6defa125d02591c9fd939c47f2515190f26f42441034
6
+ metadata.gz: 8ef0373b98367dd22913213ef546899b8f20161d5e3cd8e4db4982e8d5602d9b3006fade7f899ce6010a82dda06a7f306c7f702150d8a099a7f39dff19015a24
7
+ data.tar.gz: 2bf517a51726b9a89d6a7f71b5ba50b612c69283ed3f56900477d81b1f036183a4203448f7503087e4c817ed69ac2a57a9b56ae0e522ba7f63d70cf678e98afd
@@ -75,12 +75,22 @@ class Hash
75
75
 
76
76
  # error: nil value
77
77
  if self.has_key? key and self[key] == nil
78
- $stderr.puts "WARNING!! The value of key '#{key}' is nil in the following entry."
79
- # $stderr.puts self.to_s
80
- self.keys.each do |k|
81
- $stderr.puts " #{k}: #{self[k]}"
78
+ $stderr.puts "WARNING!! The value of key '#{key}' is nil."
79
+
80
+ # we put a bit of info about the top level structure of a resume to avoid extra-long error messages
81
+ # I don't want to print detailed information about top-level entries missing in the resume
82
+ top_level_entries = [
83
+ "contacts", "addresses", "web_presence", "summary", "work", "teaching", "projects", "other",
84
+ "committees", "volunteer", "visits", "education", "publications", "talks", "awards", "achievements",
85
+ "software", "skills", "languages", "driving", "interests", "references"]
86
+ if not top_level_entries.include?(key) then
87
+ $stderr.puts "Offending entry:"
88
+ # $stderr.puts self.to_s
89
+ self.keys.each do |k|
90
+ $stderr.puts "\t#{k}: #{self[k]}"
91
+ end
92
+ $stderr.puts ""
82
93
  end
83
- $stderr.puts ""
84
94
  end
85
95
 
86
96
  return self[key] if self.has_key? key
@@ -8,8 +8,8 @@ messaging = data.contacts.select { |x|
8
8
  }
9
9
  address = data.addresses.select { |x| x.label == "home" }.first
10
10
 
11
- # make a period (2015, 2015-10, 2015-01-01 into the date attributes day, month, year"
12
- def period_tod period
11
+ # make a period (2015, 2015-10, 2015-01-01 into the xml attributes day, month, year for a date tag
12
+ def self.period_tod period
13
13
  el = period.to_s.split("-")
14
14
  fields = ["year=\"%d\"", "month=\"--%02d\"", "day=\"---%02d\""]
15
15
  el.each_with_index.map { |x, i| fields[i] % x.to_i }.join(" ")
@@ -55,6 +55,7 @@ end
55
55
  <Email>
56
56
  <Contact><%= email.value %></Contact>
57
57
  </Email>
58
+ <% if phones %>
58
59
  <TelephoneList>
59
60
  <% phones.each do |phone| %>
60
61
  <Telephone>
@@ -66,6 +67,8 @@ end
66
67
  </Telephone>
67
68
  <% end %>
68
69
  </TelephoneList>
70
+ <% end %>
71
+ <% if data.web_presence %>
69
72
  <WebsiteList>
70
73
  <% data.web_presence.each do |web| %>
71
74
  <Website>
@@ -77,6 +80,8 @@ end
77
80
  </Website>
78
81
  <% end %>
79
82
  </WebsiteList>
83
+ <% end %>
84
+ <% if messaging and not messaging.empty? %>
80
85
  <InstantMessagingList>
81
86
  <% messaging.each do |im| %>
82
87
  <InstantMessaging>
@@ -88,16 +93,18 @@ end
88
93
  </InstantMessaging>
89
94
  <% end %>
90
95
  </InstantMessagingList>
96
+ <% end %>
91
97
  <ContactMethodList>
92
98
  <!-- other contacts not defined above -->
93
99
  </ContactMethodList>
94
100
  </ContactInfo>
95
101
  <Demographics>
96
102
  <Birthdate day="---<%= "%02d" % data.basics.birthdate.day %>" month="--<%= "%02d" % data.basics.birthdate.month %>" year="<%= data.basics.birthdate.year %>" />
97
- <% if data.gender %>
103
+ <%# ["gender"] in place of .gender, so that the code does not complain about gender not being defined (being nil) %>
104
+ <% if data.basics["gender"] == "M" or data.basics["gender"] == "F" %>
98
105
  <Gender>
99
- <Code><%= data.gender %></Code>
100
- <Label><%= data.gender == "M" ? "Male" : "Female" %></Label>
106
+ <Code><%= data.basics.gender %></Code>
107
+ <Label><%= data.basics.gender == "M" ? "Male" : "Female" %></Label>
101
108
  </Gender>
102
109
  <% end %>
103
110
  <NationalityList>
@@ -130,9 +137,9 @@ end
130
137
  <% data.work.each do |pos| %>
131
138
  <WorkExperience>
132
139
  <Period>
133
- <From <%= period_tod pos.from %>/>
134
- <% if pos["till"] and pos.till != "" %>
135
- <To <%= period_tod pos.from %>/>
140
+ <From <%= self.period_tod pos.from %>/>
141
+ <% if pos.till and pos.till != "" %>
142
+ <To <%= self.period_tod pos.till %>/>
136
143
  <% else %>
137
144
  <Current>true</Current>
138
145
  <% end %>
@@ -175,18 +182,21 @@ end
175
182
  </Employer>
176
183
  </WorkExperience>
177
184
  <% end %>
185
+ <% if data.teaching and not data.teaching.empty? %>
178
186
  <% data.teaching.each do |pos| %>
179
187
  <WorkExperience>
180
188
  <Period>
181
- <From <%= period_tod pos.from %>/>
182
- <% if pos["till"] and pos.till != "" %>
183
- <To <%= period_tod pos.from %>/>
189
+ <% if pos.from and pos.from != "" %>
190
+ <From <%= self.period_tod pos.from %>/>
191
+ <% end %>
192
+ <% if pos.till and pos.till != "" %>
193
+ <To <%= self.period_tod pos.till %>/>
184
194
  <% else %>
185
195
  <Current>true</Current>
186
196
  <% end %>
187
197
  </Period>
188
198
  <!--
189
- <Documentation>
199
+ <nation>
190
200
  <ReferenceTo idref="ATT_1"/>
191
201
  </Documentation>
192
202
  -->
@@ -197,7 +207,7 @@ end
197
207
  <%= pos.summary %>
198
208
  </Activities>
199
209
  <Employer>
200
- <Name><%= pos.who + (pos["school"] ? pos.school : "") %></Name>
210
+ <Name><%= "#{pos.who} #{pos['school'] ? pos.school : ''}" %></Name>
201
211
  <% if pos["address"] %>
202
212
  <ContactInfo>
203
213
  <Address>
@@ -223,13 +233,78 @@ end
223
233
  </Employer>
224
234
  </WorkExperience>
225
235
  <% end %>
236
+ <% end %>
237
+ <% if data.volunteer and not data.volunteer.empty? %>
238
+ <% data.volunteer.each do |pos| %>
239
+ <WorkExperience>
240
+ <% if pos["date"] %>
241
+ <Period>
242
+ <From <%= self.period_tod pos.date.strftime("%Y-%m-%d") %>/>
243
+ <To <%= self.period_tod pos.date.strftime("%Y-%m-%d") %>/>
244
+ </Period>
245
+ <% elsif pos.from or (pos.till and pos.till != "") %>
246
+ <Period>
247
+ <% if pos.from %>
248
+ <From <%= self.period_tod pos.from %>/>
249
+ <% end %>
250
+ <% if pos.till and pos.till != "" %>
251
+ <To <%= self.period_tod pos.till %>/>
252
+ <% else %>
253
+ <Current>true</Current>
254
+ <% end %>
255
+ </Period>
256
+ <% end %>
257
+ <!--
258
+ <ntation>
259
+ <ReferenceTo idref="ATT_1"/>
260
+ </Documentation>
261
+ -->
262
+ <Position>
263
+ <Label><%= pos.role %></Label>
264
+ </Position>
265
+ <Activities>
266
+ <%= pos.summary %>
267
+ </Activities>
268
+ <Employer>
269
+ <Name><%= pos.who %></Name>
270
+ <% if pos["address"] %>
271
+ <ContactInfo>
272
+ <Address>
273
+ <Contact>
274
+ <AddressLine><%= pos.address %></AddressLine>
275
+ <!-- <Country>
276
+ <Code></Code>
277
+ <Label></Label>
278
+ </Country> -->
279
+ </Contact>
280
+ </Address>
281
+ <Website>
282
+ <Contact><%= pos["website"] %></Contact>
283
+ </Website>
284
+ </ContactInfo>
285
+ <!--
286
+ <Sector>
287
+ <Code></Code>
288
+ <Label></Label>
289
+ </Sector>
290
+ -->
291
+ <% end %>
292
+ </Employer>
293
+ </WorkExperience>
294
+ <% end %>
295
+ <% end %>
226
296
  </WorkExperienceList>
297
+ <% if data.education and not data.education.empty? %>
227
298
  <EducationList>
228
299
  <% data.education.select { |x| x.publish }.each do |edu| %>
229
300
  <Education>
230
301
  <Period>
231
- <From <%= period_tod edu.from %>/>
232
- <To <%= period_tod edu.till %>/>
302
+ <% if edu.from and not edu.from == "" %>
303
+ <From <%= self.period_tod edu.from %>/>
304
+ <% end %>
305
+ <% if edu.till and not edu.till == "" %>
306
+ <To <%= self.period_tod edu.till %>/>
307
+ <% end %>
233
308
  </Period>
234
309
  <!--
235
310
  <Documentation>
@@ -257,12 +332,13 @@ end
257
332
  </Education>
258
333
  <% end %>
259
334
  </EducationList>
335
+ <% end %>
260
336
  <Skills>
261
337
  <% if data.languages %>
262
338
  <Linguistic>
263
- <% if data.mother_tongues %>
339
+ <% if data.languages.mother_tongues and not data.languages.mother_tongues.empty? %>
264
340
  <MotherTongueList>
265
- <% data.mother_tongues.each do |mt| %>
341
+ <% data.languages.mother_tongues.each do |mt| %>
266
342
  <MotherTongue>
267
343
  <Description>
268
344
  <Code><%= mt.code %></Code>
@@ -272,12 +348,13 @@ end
272
348
  <% end %>
273
349
  </MotherTongueList>
274
350
  <% end %>
275
- <% if data.foreign %>
351
+ <% if data.languages.foreign and not data.languages.foreign.empty? %>
276
352
  <ForeignLanguageList>
277
- <% data.foreign.each do |language| %>
353
+ <% data.languages.foreign.each do |language| %>
278
354
  <ForeignLanguage>
279
355
  <Description>
280
- <Code><%= language.code %></Code><Label><%= language.language %></Label>
356
+ <Code><%= language.code %></Code>
357
+ <Label><%= language.language %></Label>
281
358
  </Description>
282
359
  <ProficiencyLevel>
283
360
  <Listening>
@@ -324,7 +401,7 @@ end
324
401
  <Documentation></Documentation>
325
402
  </Computer>
326
403
  -->
327
- <% if data.driving %>
404
+ <% if data.driving and not data.driving.empty? %>
328
405
  <Driving>
329
406
  <Description>
330
407
  <% data.driving.each do |license| %>
@@ -335,17 +412,14 @@ end
335
412
  <% end %>
336
413
  <Other>
337
414
  <Description>
338
- <% [[:volunteer, "Volunteering Work"], [:interests]
339
- <% if data.volunteer %>
340
- <p><b>Volunteering Work</b></p>
341
- <% data.volunteer.each do |v| %>
342
-
343
- <% end %>
415
+ <% if data.interests and not data.interests.empty? %>
416
+ <%= data.interests.map { |x| (x.name || "") + ": " + (x.level || "") + ", " + (x.summary || "") + "; " }.join(", ") %>
344
417
  <% end %>
345
418
  </Description>
346
419
  </Other>
347
420
  </Skills>
348
421
  <AchievementList>
422
+ <% if data.awards and not data.awards.empty? %>
349
423
  <% data.awards.each do |award| %>
350
424
  <Achievement>
351
425
  <Title>
@@ -357,6 +431,8 @@ end
357
431
  </Description>
358
432
  </Achievement>
359
433
  <% end %>
434
+ <% end %>
435
+ <% if data.achievements and not data.achievements.empty? %>
360
436
  <% data.achievements.each do |achievement| %>
361
437
  <Achievement>
362
438
  <Title>
@@ -368,7 +444,8 @@ end
368
444
  </Description>
369
445
  </Achievement>
370
446
  <% end %>
371
- <% if data.projects %>
447
+ <% end %>
448
+ <% if data.projects and not data.projects.empty? %>
372
449
  <Achievement>
373
450
  <Title>
374
451
  <Code>projects</Code>
@@ -381,7 +458,7 @@ end
381
458
  </Description>
382
459
  </Achievement>
383
460
  <% end %>
384
- <% if data.publications %>
461
+ <% if data.publications and not data.publications.empty? %>
385
462
  <Achievement>
386
463
  <Title>
387
464
  <Code>publications</Code>
@@ -1,113 +1,111 @@
1
1
  # <%= data.basics.first_name + " " + data.basics.last_name %>, <%= data.basics.title %>
2
- <% address = data.addresses.map { |x| ["**" + x.label + "**", x.street, x.zip_code.to_s + " " + x.city] }.flatten
3
- presence = data.contacts.map { |x| x.label + ": **" + x.value + "**" } + data.web_presence.map { |x| "<" + x.value + ">" }
4
-
5
- def self.max(x,y)
6
- x>y ? x : y
7
- end
8
- %><% (0..self.max(address.size, presence.size)).each do |i| %>
9
- <%= "|%-34s | %38s |" % [address[i] || "", presence[i] || ""] %><% end %>
2
+ <%
3
+ addresses = data.addresses.map { |x| "**#{x.label}**: #{x.street}, #{x.zip_code} #{x.city}" }
4
+ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_presence.map { |x| "<" + x.value + ">" }
5
+ %>
6
+ <%= presence.map { |x| "* #{x}" }.join("\n") %>
7
+ <%= addresses.map { |x| "* #{x}" }.join("\n") %>
10
8
 
11
9
  ## Summary
12
10
  <% reflow(data.summary, 78).each do |string| %>
13
- <%= string %><% end %>
11
+ <%= string %><% end %>
14
12
 
15
13
  <% if data.skills %>## Skills
16
14
 
17
15
  <% (data.skills || []).each do |item| %>
18
- - <%= item.name %> <%= item.level %>
19
- <% end %><% end %>
16
+ - <%= item.name %> <%= item.level %>
17
+ <% end %>
20
18
 
21
- <% if data.experience %>## Experience
19
+ <% end %><% if data.experience %>## Experience
22
20
  <% (data.work || []).each do |exp| %>
23
- - **<%= clean((exp.role ? exp.role + ", " : "") + " " + (exp.who || "") ) %>**
24
- <%= exp.from %> -- <%= exp.till ? exp.till : "today " %>
25
- <% reflow(exp.summary, 72).each do |string| %>
26
- <%= string %><% end %>
21
+ - **<%= clean((exp.role ? exp.role + ", " : "") + " " + (exp.who || "") ) %>**
22
+ <%= exp.from %> -- <%= exp.till ? exp.till : "today " %>
23
+ <% reflow(exp.summary, 72).each do |string| %>
24
+ <%= string %><% end %>
27
25
  <% end %><% end %>
28
26
 
29
27
  <% if data.teaching %>## Teaching
30
28
  <% (data.teaching || []).each do |item| %>
31
- - **<%= item.role %>, <%= item.who %>**
32
- <%= item.from %> -- <%= item.till ? item.till : "today " %>
33
- <%= item.subject %> <%= ("(" + item["school"] + ")") if item["school"] %>
29
+ - **<%= item.role %>, <%= item.who %>**
30
+ <%= item.from %> -- <%= item.till ? item.till : "today " %>
31
+ <%= item.subject %> <%= ("(" + item["school"] + ")") if item["school"] %>
34
32
  <% end %><% end %>
35
33
 
36
34
  <% if data.projects %>## Projects
37
35
  <% (data.projects || []).each do |item| %>
38
- - <%= item.name %>, <%= item.role %>
39
- <%= item.from %> -- <%= item.till %> <% reflow(item.summary, 72).each do |line| %>
40
- <%= line %><% end %>
36
+ - <%= item.name %>, <%= item.role %>
37
+ <%= item.from %> -- <%= item.till %> <% reflow(item.summary, 72).each do |line| %>
38
+ <%= line %><% end %>
41
39
  <% end %><% end %>
42
40
 
43
41
  <% if data.other %>## Other Initiatives
44
42
  <% (data.other || []).each do |item| %>
45
- - <%= item.who %>, <%= item.role %>
46
- <%= item.from %> -- <%= item.till %> <% reflow(item.summary, 72).each do |line| %>
47
- <%= line %><% end %>
43
+ - <%= item.who %>, <%= item.role %>
44
+ <%= item.from %> -- <%= item.till %> <% reflow(item.summary, 72).each do |line| %>
45
+ <%= line %><% end %>
48
46
  <% end %><% end %>
49
47
 
50
48
  <% if data.committees %>## Committees
51
49
  <% (data.committees || []).each do |item| %>
52
- - <%= item.who %>, <%= item.role %> <%= item.editions %>
53
- <%= item.url %>
50
+ - <%= item.who %>, <%= item.role %> <%= item.editions %>
51
+ <%= item.url %>
54
52
  <% end %><% end %>
55
53
 
56
54
  <% if data.volunteer %>## Volunteer
57
55
  <% (data.volunteer || []).each do |item| %>
58
- - <%= item.who %>, <%= item.role %>
59
- <%= item.from %> -- <%= item.till %> <% reflow(item.summary, 72).each do |line| %>
60
- <%= line %><% end %>
56
+ - <%= item.who %>, <%= item.role %>
57
+ <%= item.from %> -- <%= item.till %> <% reflow(item.summary, 72).each do |line| %>
58
+ <%= line %><% end %>
61
59
  <% end %><% end %>
62
60
 
63
61
  <% if data.publications %>## Publications
64
62
  <% (data.publications || []).each do |item| %>
65
- - <%= item.authors %>, *"<%= item.title %>"* <%= item.publisher %>, <%= item.date %>
63
+ - <%= item.authors %>, *"<%= item.title %>"* <%= item.publisher %>, <%= item.date %>
66
64
  <% end %><% end %>
67
65
 
68
66
  <% if data.talks %>## Talks
69
67
  <% (data.talks || []).each do |item| %>
70
- - *<%= item.title %>*
71
- <%= item.venue %> (<%= item.date %>)
68
+ - *<%= item.title %>*
69
+ <%= item.venue %> (<%= item.date %>)
72
70
  <% end %><% end %>
73
71
 
74
72
  <% if data.visits %>## Visits
75
73
  <% (data.visits || []).each do |item| %>
76
- - **<%= item.role %> **<%= item.who %>, <%= item.address %>**
77
- <%= item.from %> -- <%= item.till %><% reflow(item.summary, 72).each do |line| %>
78
- <%= line %><% end %>
74
+ - **<%= item.role %> **<%= item.who %>, <%= item.address %>**
75
+ <%= item.from %> -- <%= item.till %><% reflow(item.summary, 72).each do |line| %>
76
+ <%= line %><% end %>
79
77
  <% end %><% end %>
80
78
 
81
79
  <% if data.education %>## Education
82
80
  <% data.education.select { |x| x.publish }.each do |school| %>
83
- <%= year(school["till"]) %>
84
- : <%= school.degree if school.degree %> <%= school.school %>,
85
- <%= school.address if school.address %>
81
+ <%= year(school["till"]) %>
82
+ : <%= school.degree if school.degree %> <%= school.school %>,
83
+ <%= school.address if school.address %>
86
84
  <% end %><% end %>
87
85
 
88
86
  <% if data.awards %>## Awards
89
87
  <% (data.awards || []).each do |item| %>
90
- - <%= item.date %>, <%= item.who %> *<%= item.title %>*, <%= item.where %><% reflow(item.summary, 72).each do |line| %>
91
- <%= line %><% end %>
88
+ - <%= item.date %>, <%= item.who %> *<%= item.title %>*, <%= item.where %><% reflow(item.summary, 72).each do |line| %>
89
+ <%= line %><% end %>
92
90
  <% end %><% end %>
93
91
 
94
92
  <% if data.achievements %>
95
93
  ## Achievements
96
94
  <% (data.achievements || []).each do |item| %>
97
- - <%= item.date %>, <%= item.who %> *<%= item.title %>*, <%= item.where %><% reflow(item.summary, 72).each do |line| %>
98
- <%= line %><% end %>
95
+ - <%= item.date %>, <%= item.who %> *<%= item.title %>*, <%= item.where %><% reflow(item.summary, 72).each do |line| %>
96
+ <%= line %><% end %>
99
97
  <% end %><% end %>
100
98
 
101
99
  <% if data.software %>## Software
102
100
  <% (data.software || []).each do |item| %>
103
- - <%= item.title %> (<%= item.role %>)
104
- <%= item.url %>
101
+ - <%= item.title %> (<%= item.role %>)
102
+ <%= item.url %>
105
103
  <% end %><% end %>
106
104
 
107
105
  <% if data.interests %>## Interests
108
106
  <% (data.interests || []).each do |item| %>
109
- - <%= item.name %> <%= item.level %><% reflow(item.summary, 72).each do |line| %>
110
- <%= line %><% end %>
107
+ - <%= item.name %> <%= item.level %><% reflow(item.summary, 72).each do |line| %>
108
+ <%= line %><% end %>
111
109
  <% end %><% end %>
112
110
 
113
111
  <% if data.languages %>## Languages
@@ -116,5 +114,5 @@ Mother Tongue(s): <%= data.languages.mother_tongues.map { |x| x.language }.join(
116
114
  <% end %>
117
115
  <% if data.languages.foreign %>Other Languages(s):
118
116
  <% data.languages.foreign.each do |x| %>
119
- - <%= x.language %>: <%= x.level %>
117
+ - <%= x.language %>: <%= x.level %>
120
118
  <% end %><% end %><% end %>