resme 0.3.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.org +19 -0
- data/README.org +272 -0
- data/exe/resme +2 -2
- data/lib/resme/cli/command_semantics.rb +110 -103
- data/lib/resme/cli/command_syntax.rb +252 -204
- data/lib/resme/cli/resume_structure_validator.rb +293 -0
- data/lib/resme/renderer/renderer.rb +6 -50
- data/lib/resme/templates/resume.json.erb +148 -130
- data/lib/resme/templates/resume.md.erb +36 -36
- data/lib/resme/templates/resume.org.erb +54 -51
- data/lib/resme/templates/resume.xml.erb +496 -0
- data/lib/resme/version.rb +1 -1
- data/lib/resme.rb +1 -0
- data/resme.gemspec +6 -9
- metadata +16 -43
- data/README.md +0 -192
- data/lib/resme/templates/europass/eu.xml.erb +0 -491
- data/lib/resme/templates/schema.yml +0 -494
@@ -1,8 +1,8 @@
|
|
1
|
-
# <%= full_name data %>, <%= data
|
1
|
+
# <%= full_name data %>, <%= data["basics"]["title"] %>
|
2
2
|
|
3
3
|
<%
|
4
|
-
addresses = data
|
5
|
-
presence = data
|
4
|
+
addresses = (data["addresses"] || []).map { |x| "**#{x['label']}**: #{x['street']}, #{x['zip_code']} #{x['city']}" }
|
5
|
+
presence = (data["contacts"] || []).map { |x| "**#{x['label']}:** #{x['value']}" } + (data["web_presence"] || []).map { |x| "<" + x["value"] + ">" }
|
6
6
|
-%>
|
7
7
|
<%= presence.map { |x| "* #{x}" }.join("\n") %>
|
8
8
|
<%= addresses.map { |x| "* #{x}" }.join("\n") %>
|
@@ -10,21 +10,21 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
10
10
|
<% if data["summary"] -%>
|
11
11
|
## Summary
|
12
12
|
|
13
|
-
<%= reflow_to_string data
|
13
|
+
<%= reflow_to_string data["summary"], 78 -%>
|
14
14
|
<% end -%>
|
15
15
|
|
16
16
|
<% if data["skills"] -%>
|
17
17
|
## Skills
|
18
18
|
|
19
|
-
<% (data
|
20
|
-
- **<%= item
|
19
|
+
<% (data["skills"] || []).each do |item| -%>
|
20
|
+
- **<%= item["name"] %>:** <%= item["level"] %>
|
21
21
|
<% end -%>
|
22
22
|
<% end -%>
|
23
23
|
|
24
24
|
<% if data["work"] -%>
|
25
25
|
## Work Experience
|
26
26
|
|
27
|
-
<% (data
|
27
|
+
<% (data["work"] || []).each do |item| -%>
|
28
28
|
<%= itemize item -%>
|
29
29
|
<% end -%>
|
30
30
|
<% end -%>
|
@@ -32,7 +32,7 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
32
32
|
<% if data["teaching"] -%>
|
33
33
|
## Teaching
|
34
34
|
|
35
|
-
<% (data
|
35
|
+
<% (data["teaching"] || []).each do |item| -%>
|
36
36
|
<%= itemize item, ["subject", "role"] -%>
|
37
37
|
<% end -%>
|
38
38
|
<% end -%>
|
@@ -40,7 +40,7 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
40
40
|
<% if data["projects"] -%>
|
41
41
|
## Projects
|
42
42
|
|
43
|
-
<% (data
|
43
|
+
<% (data["projects"] || []).each do |item| -%>
|
44
44
|
<%= itemize item, ["name", "role"] -%>
|
45
45
|
<% end -%>
|
46
46
|
<% end -%>
|
@@ -48,7 +48,7 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
48
48
|
<% if data["other"] -%>
|
49
49
|
## Other Initiatives
|
50
50
|
|
51
|
-
<% (data
|
51
|
+
<% (data["other"] || []).each do |item| -%>
|
52
52
|
<%= itemize item -%>
|
53
53
|
<% end -%>
|
54
54
|
<% end -%>
|
@@ -56,16 +56,16 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
56
56
|
<% if data["committees"] -%>
|
57
57
|
## Committees
|
58
58
|
|
59
|
-
<% (data
|
60
|
-
- <%= item
|
61
|
-
<%= item
|
59
|
+
<% (data["committees"] || []).each do |item| -%>
|
60
|
+
- <%= item["role"] %> (<%= item["url"] %>)
|
61
|
+
<%= item["editions"] %>
|
62
62
|
<% end -%>
|
63
63
|
<% end -%>
|
64
64
|
|
65
65
|
<% if data["volunteer"] -%>
|
66
66
|
## Volunteer
|
67
67
|
|
68
|
-
<% (data
|
68
|
+
<% (data["volunteer"] || []).each do |item| -%>
|
69
69
|
<%= itemize item -%>
|
70
70
|
<% end -%>
|
71
71
|
<% end -%>
|
@@ -73,24 +73,24 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
73
73
|
<% if data["publications"] -%>
|
74
74
|
## Publications
|
75
75
|
|
76
|
-
<% (data
|
77
|
-
- <%= item
|
76
|
+
<% (data["publications"] || []).each do |item| -%>
|
77
|
+
- <%= item["authors"] %>, *"<%= item["title"] %>"* <%= item["publisher"] %>, <%= item["date"] %>
|
78
78
|
<% end -%>
|
79
79
|
<% end -%>
|
80
80
|
|
81
81
|
<% if data["talks"] -%>
|
82
82
|
## Talks
|
83
83
|
|
84
|
-
<% (data
|
85
|
-
- *<%= item
|
86
|
-
<%= item
|
84
|
+
<% (data["talks"] || []).each do |item| -%>
|
85
|
+
- *<%= item["title"] %>*
|
86
|
+
<%= item["venue"] %>, <%= item["date"] %>
|
87
87
|
<% end -%>
|
88
88
|
<% end -%>
|
89
89
|
|
90
90
|
<% if data["visits"] -%>
|
91
91
|
## Visits
|
92
92
|
|
93
|
-
<% (data
|
93
|
+
<% (data["visits"] || []).each do |item| -%>
|
94
94
|
<%= itemize item -%>
|
95
95
|
<% end -%>
|
96
96
|
<% end -%>
|
@@ -98,10 +98,10 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
98
98
|
<% if data["education"] -%>
|
99
99
|
## Education
|
100
100
|
|
101
|
-
<% data
|
101
|
+
<% data["education"].select { |x| x["publish"] }.each do |school| -%>
|
102
102
|
<%= year(school["till"]) %>
|
103
|
-
: <%= [school["degree"], school
|
104
|
-
<%= school
|
103
|
+
: <%= [school["degree"], school["school"]].join(", ") %>
|
104
|
+
<%= school["address"] if school["address"] %>
|
105
105
|
<% end -%>
|
106
106
|
<% end -%>
|
107
107
|
|
@@ -119,31 +119,31 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
119
119
|
<% if data["software"] %>
|
120
120
|
## Software
|
121
121
|
|
122
|
-
<% (data
|
123
|
-
- <%= item
|
124
|
-
<%= item
|
122
|
+
<% (data["software"] || []).each do |item| -%>
|
123
|
+
- <%= item["title"] %> (<%= item["role"] %>)
|
124
|
+
<%= item["url"] %>
|
125
125
|
<% end -%>
|
126
126
|
<% end -%>
|
127
127
|
|
128
128
|
<% if data["interests"] -%>
|
129
129
|
## Interests
|
130
130
|
|
131
|
-
<% (data
|
132
|
-
- <%= item
|
131
|
+
<% (data["interests"] || []).each do |item| -%>
|
132
|
+
- <%= item["name"] %> <%= reflow_to_string item["summary"], 72, " " %>
|
133
133
|
<% end -%>
|
134
134
|
<% end -%>
|
135
135
|
|
136
136
|
<% if data["languages"] %>
|
137
137
|
## Languages
|
138
138
|
|
139
|
-
<% if data["languages"] and data
|
140
|
-
Mother Tongue(s): <%= data
|
139
|
+
<% if data["languages"] and data["languages"]["mother_tongues"] -%>
|
140
|
+
Mother Tongue(s): <%= data["languages"]["mother_tongues"].map { |x| x["language"] }.join(",") %>
|
141
141
|
<% end -%>
|
142
142
|
|
143
|
-
<% if data["languages"] and data
|
143
|
+
<% if data["languages"] and data["languages"]["foreign"] -%>
|
144
144
|
Other Language(s):
|
145
|
-
<% data
|
146
|
-
- <%= x
|
145
|
+
<% data["languages"]["foreign"].each do |x| -%>
|
146
|
+
- <%= x["language"] %>: <%= x["level"] %>
|
147
147
|
<% end -%>
|
148
148
|
<% end -%>
|
149
149
|
<% end -%>
|
@@ -151,9 +151,9 @@ Other Language(s):
|
|
151
151
|
<% if data["references"] %>
|
152
152
|
## References
|
153
153
|
|
154
|
-
<% (data
|
155
|
-
<%= item
|
156
|
-
<%= reflow_to_string item
|
154
|
+
<% (data["references"] || []).each do |item| -%>
|
155
|
+
<%= item["name"] %>:
|
156
|
+
<%= reflow_to_string item["reference"], 72, " " %>
|
157
157
|
<% end -%>
|
158
158
|
<% end -%>
|
159
159
|
|
@@ -1,36 +1,39 @@
|
|
1
|
-
#+TITLE:
|
2
|
-
#+AUTHOR: <%= data
|
1
|
+
#+TITLE: Curriculum Vitae
|
2
|
+
#+AUTHOR: <%= full_name data %>, <%= data["basics"]["title"] %>
|
3
|
+
#+EMAIL: <%= ((data["contacts"] || []).select { |x| x["label"] == "email" }.first || {})["value"] %>
|
3
4
|
#+DATE: <<%= Date.today %>>
|
4
5
|
#+STARTUP: showall
|
5
6
|
#+OPTIONS: toc:nil num:nil
|
6
7
|
#+OPTIONS: h:1
|
7
8
|
#+OPTIONS: prop:nil
|
8
9
|
|
10
|
+
<% if data["addresses"] or data["contacts"] %>
|
9
11
|
* Contacts
|
10
12
|
:PROPERTIES:
|
11
|
-
<% data
|
12
|
-
<%= ":#{x
|
13
|
+
<% (data["addresses"] || []).each do |x| -%>
|
14
|
+
<%= ":#{x['label'].upcase}: #{x['street']}, #{x['zip_code']} #{x['city']}" %>
|
13
15
|
<% end -%>
|
14
|
-
<% data
|
15
|
-
<%= ":#{x
|
16
|
+
<% (data["contacts"] || []).each do |x| -%>
|
17
|
+
<%= ":#{x['label'].upcase}: #{x['value']}" %>
|
16
18
|
<% end -%>
|
17
19
|
:END:
|
18
20
|
|
19
|
-
<% data
|
20
|
-
| <%= "%-30s" % x
|
21
|
+
<% (data["contacts"] || []).each do |x| -%>
|
22
|
+
| <%= "%-30s" % x["label"] %> | <%= "%-40s" % x["value"] %> |
|
21
23
|
<% end -%>
|
24
|
+
<% end %>
|
22
25
|
|
23
|
-
<% if data["
|
26
|
+
<% if data["summary"] -%>
|
24
27
|
* Summary
|
25
28
|
|
26
|
-
<%= reflow_to_string data
|
29
|
+
<%= reflow_to_string data["summary"], 78 -%>
|
27
30
|
<% end -%>
|
28
31
|
|
29
32
|
<% if data["skills"] -%>
|
30
33
|
* Skills
|
31
34
|
|
32
|
-
<% (data
|
33
|
-
** <%= item
|
35
|
+
<% (data["skills"] || []).each do |item| -%>
|
36
|
+
** <%= item["name"] %>: <%= item["level"] %>
|
34
37
|
<%= propertify item, " " %>
|
35
38
|
|
36
39
|
<% end -%>
|
@@ -39,8 +42,8 @@
|
|
39
42
|
<% if data["work"] -%>
|
40
43
|
* Work Experience
|
41
44
|
|
42
|
-
<% (data
|
43
|
-
**
|
45
|
+
<% (data["work"] || []).each do |item| -%>
|
46
|
+
** <%= period item %>: <%= clean [item["role"], item["who"]].join(", ") %>
|
44
47
|
<%= propertify item, " " %>
|
45
48
|
|
46
49
|
<%= reflow_to_string item["summary"], 72, " " -%>
|
@@ -51,8 +54,8 @@
|
|
51
54
|
<% if data["teaching"] -%>
|
52
55
|
* Teaching
|
53
56
|
|
54
|
-
<% (data
|
55
|
-
**
|
57
|
+
<% (data["teaching"] || []).each do |item| -%>
|
58
|
+
** <%= period item %>: <%= item["subject"] %>
|
56
59
|
<%= propertify item, " " %>
|
57
60
|
|
58
61
|
<%= [item["role"], item["school"], item["who"]].join(", ") %>
|
@@ -63,8 +66,8 @@
|
|
63
66
|
<% if data["projects"] -%>
|
64
67
|
* Projects
|
65
68
|
|
66
|
-
<% (data
|
67
|
-
**
|
69
|
+
<% (data["projects"] || []).each do |item| -%>
|
70
|
+
** <%= period item %>: <%= [item["name"], item["role"]].join(", ") %>
|
68
71
|
<%= propertify item, " " %>
|
69
72
|
|
70
73
|
<%= reflow_to_string item["summary"], 72, " " -%>
|
@@ -73,10 +76,10 @@
|
|
73
76
|
<% end -%>
|
74
77
|
|
75
78
|
<% if data["other"] -%>
|
76
|
-
* Other
|
79
|
+
* Other
|
77
80
|
|
78
|
-
<% (data
|
79
|
-
**
|
81
|
+
<% (data["other"] || []).each do |item| -%>
|
82
|
+
** <%= period item %>: <%= [item["who"], item["role"]].join(", ") %>
|
80
83
|
<%= propertify item, " " %>
|
81
84
|
|
82
85
|
<%= reflow_to_string item["summary"], 72, " " -%>
|
@@ -87,8 +90,8 @@
|
|
87
90
|
<% if data["committees"] -%>
|
88
91
|
* Committees
|
89
92
|
|
90
|
-
<% (data
|
91
|
-
** <%= item
|
93
|
+
<% (data["committees"] || []).each do |item| -%>
|
94
|
+
** <%= item["who"] %>, <%= item["role"] %> <%= item["editions"] %>
|
92
95
|
<%= propertify item, " " %>
|
93
96
|
|
94
97
|
<% end -%>
|
@@ -97,11 +100,11 @@
|
|
97
100
|
<% if data["volunteer"] -%>
|
98
101
|
* Volunteer
|
99
102
|
|
100
|
-
<% (data
|
101
|
-
** *<%= period item %>: <%= [item
|
103
|
+
<% (data["volunteer"] || []).each do |item| -%>
|
104
|
+
** *<%= period item %>: <%= [item["role"], item["who"]].join(", ") %>*
|
102
105
|
<%= propertify item, " " %>
|
103
106
|
|
104
|
-
<%= reflow_to_string item
|
107
|
+
<%= reflow_to_string item["summary"], 72, " " -%>
|
105
108
|
|
106
109
|
<% end -%>
|
107
110
|
<% end -%>
|
@@ -109,28 +112,28 @@
|
|
109
112
|
<% if data["publications"] -%>
|
110
113
|
* Publications
|
111
114
|
|
112
|
-
<% (data
|
113
|
-
- <%= item
|
115
|
+
<% (data["publications"] || []).each do |item| -%>
|
116
|
+
- <%= item["authors"] %>, *"<%= item["title"] %>"* <%= item["publisher"] %>, <%= item["date"] %>
|
114
117
|
<% end -%>
|
115
118
|
<% end -%>
|
116
119
|
|
117
120
|
<% if data["talks"] -%>
|
118
121
|
* Talks
|
119
122
|
|
120
|
-
<% (data
|
121
|
-
- <%= item
|
122
|
-
<%= item
|
123
|
+
<% (data["talks"] || []).each do |item| -%>
|
124
|
+
- <%= item["title"] %>
|
125
|
+
<%= item["venue"] %> (<%= item["date"] %>)
|
123
126
|
<% end -%>
|
124
127
|
<% end -%>
|
125
128
|
|
126
129
|
<% if data["visits"] -%>
|
127
130
|
* Visits
|
128
131
|
|
129
|
-
<% (data
|
130
|
-
** *<%= period item %>: <%= [item
|
132
|
+
<% (data["visits"] || []).each do |item| -%>
|
133
|
+
** *<%= period item %>: <%= [item["role"], item["who"], item["address"]].join(", ") %>*
|
131
134
|
<%= propertify item, " " %>
|
132
135
|
|
133
|
-
<%= reflow_to_string item
|
136
|
+
<%= reflow_to_string item["summary"], 72, " " -%>
|
134
137
|
|
135
138
|
<% end -%>
|
136
139
|
<% end -%>
|
@@ -138,8 +141,8 @@
|
|
138
141
|
<% if data["education"] -%>
|
139
142
|
* Education
|
140
143
|
|
141
|
-
<% data
|
142
|
-
** *<%= year(item["till"]) %>: <%= [item
|
144
|
+
<% data["education"].select { |x| x["publish"] }.each do |item| -%>
|
145
|
+
** *<%= year(item["till"]) %>: <%= [item["degree"], item["school"], item["address"]].join(", ") %>*
|
143
146
|
<%= propertify item, " " %>
|
144
147
|
|
145
148
|
<% end -%>
|
@@ -150,10 +153,10 @@
|
|
150
153
|
* <%= group.capitalize %>
|
151
154
|
|
152
155
|
<% (group || []).each do |item| -%>
|
153
|
-
**
|
156
|
+
** <%= item["date"] %>: <%= [item["title"], item["who"], item["address"]].join(", ") %>
|
154
157
|
<%= propertify item, " " %>
|
155
158
|
|
156
|
-
<%= reflow_to_string item
|
159
|
+
<%= reflow_to_string item["summary"], 72, " " -%>
|
157
160
|
|
158
161
|
<% end -%>
|
159
162
|
<% end -%>
|
@@ -162,30 +165,30 @@
|
|
162
165
|
<% if data["software"] %>
|
163
166
|
* Software
|
164
167
|
|
165
|
-
<% (data
|
166
|
-
- <%= item
|
167
|
-
<%= item
|
168
|
+
<% (data["software"] || []).each do |item| -%>
|
169
|
+
- <%= item["title"] %> (<%= item["role"] %>)
|
170
|
+
<%= item["url"] %>
|
168
171
|
<% end -%>
|
169
172
|
<% end -%>
|
170
173
|
|
171
174
|
<% if data["interests"] -%>
|
172
175
|
* Interests
|
173
176
|
|
174
|
-
<% (data
|
175
|
-
- *<%= item
|
177
|
+
<% (data["interests"] || []).each do |item| -%>
|
178
|
+
- *<%= item["name"] %>:* <%= reflow_to_string item["summary"], 72 %>
|
176
179
|
<% end -%>
|
177
180
|
<% end -%>
|
178
181
|
|
179
182
|
<% if data["languages"] %>
|
180
183
|
* Languages
|
181
184
|
|
182
|
-
<% if data["languages"] and data
|
183
|
-
- Mother Tongue(s): <%= data
|
185
|
+
<% if data["languages"] and data["languages"]["mother_tongues"] -%>
|
186
|
+
- Mother Tongue(s): <%= data["languages"]["mother_tongues"].map { |x| x["language"] }.join(",") %>
|
184
187
|
<% end -%>
|
185
|
-
<% if data["languages"] and data
|
188
|
+
<% if data["languages"] and data["languages"]["foreign"] -%>
|
186
189
|
- Other Language(s):
|
187
|
-
<% data
|
188
|
-
+ <%= x
|
190
|
+
<% data["languages"]["foreign"].each do |x| -%>
|
191
|
+
+ <%= x["language"] %>: <%= x["level"] %>
|
189
192
|
<% end -%>
|
190
193
|
<% end -%>
|
191
194
|
<% end -%>
|
@@ -193,9 +196,9 @@
|
|
193
196
|
<% if data["references"] %>
|
194
197
|
* References
|
195
198
|
|
196
|
-
<% (data
|
197
|
-
<%= item
|
198
|
-
<%= reflow_to_string item
|
199
|
+
<% (data["references"] || []).each do |item| -%>
|
200
|
+
<%= item["name"] %>:
|
201
|
+
<%= reflow_to_string item["reference"], 72 %>
|
199
202
|
<% end -%>
|
200
203
|
<% end -%>
|
201
204
|
|