resume_exporter 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/bin/resume_exporter +4 -2
  3. data/lib/exporters/html.rb +33 -0
  4. data/lib/exporters/pdf.rb +13 -0
  5. data/lib/extractors/html/linkedin.rb +145 -169
  6. data/lib/extractors/html/stackoverflow.rb +60 -72
  7. data/lib/extractors/html/xing.rb +46 -60
  8. data/lib/extractors/html.rb +1 -1
  9. data/lib/extractors/json/fresh.rb +196 -233
  10. data/lib/extractors/json/json_resume.rb +107 -127
  11. data/lib/extractors/json/prtflio.rb +20 -24
  12. data/lib/extractors/json.rb +7 -6
  13. data/lib/resume_exporter.rb +6 -0
  14. data/lib/templates/default.json.jbuilder +162 -229
  15. data/lib/templates/default.md.erb +99 -244
  16. data/lib/templates/default.txt.erb +99 -224
  17. data/lib/templates/default.xml.builder +162 -227
  18. data/lib/templates/fresh.json.jbuilder +149 -155
  19. data/lib/templates/html/_affiliation.liquid +53 -0
  20. data/lib/templates/html/_basics.liquid +19 -0
  21. data/lib/templates/html/_contact.liquid +27 -0
  22. data/lib/templates/html/_css.liquid +324 -0
  23. data/lib/templates/html/_disposition.liquid +13 -0
  24. data/lib/templates/html/_education.liquid +56 -0
  25. data/lib/templates/html/_employment.liquid +67 -0
  26. data/lib/templates/html/_extracurricular.liquid +53 -0
  27. data/lib/templates/html/_footer.liquid +1 -0
  28. data/lib/templates/html/_governance.liquid +52 -0
  29. data/lib/templates/html/_image.liquid +7 -0
  30. data/lib/templates/html/_interests.liquid +23 -0
  31. data/lib/templates/html/_languages.liquid +22 -0
  32. data/lib/templates/html/_open_source.liquid +53 -0
  33. data/lib/templates/html/_patents.liquid +50 -0
  34. data/lib/templates/html/_projects.liquid +53 -0
  35. data/lib/templates/html/_qualifications.liquid +53 -0
  36. data/lib/templates/html/_reading.liquid +52 -0
  37. data/lib/templates/html/_recognition.liquid +54 -0
  38. data/lib/templates/html/_references.liquid +28 -0
  39. data/lib/templates/html/_resume.liquid +49 -0
  40. data/lib/templates/html/_service.liquid +53 -0
  41. data/lib/templates/html/_skills.liquid +35 -0
  42. data/lib/templates/html/_social.liquid +25 -0
  43. data/lib/templates/html/_speaking.liquid +53 -0
  44. data/lib/templates/html/_writing.liquid +52 -0
  45. data/lib/templates/html/default.liquid +1 -0
  46. data/lib/templates/json_resume.json.jbuilder +72 -72
  47. metadata +119 -20
@@ -1,217 +1,211 @@
1
- json.name @data.dig(:basics, :name)
1
+ json.name @data.dig("basics", "name")
2
2
 
3
3
  json.meta do
4
4
  json.format "FRESH@0.6.0"
5
- json.version @data.dig(:meta, :version)
5
+ json.version @data.dig("meta", "version")
6
6
  end
7
7
 
8
8
  json.info do
9
- json.label @data.dig(:basics, :label)
10
- json.class @data.dig(:basics, :class)
11
- json.image @data.dig(:basics, :image)
12
- json.brief @data.dig(:basics, :summary)
13
- json.quote @data.dig(:basics, :quote)
9
+ json.label @data.dig("basics", "label")
10
+ json.class @data.dig("basics", "class")
11
+ json.image @data.dig("basics", "image")
12
+ json.brief @data.dig("basics", "summary")
13
+ json.quote @data.dig("basics", "quote")
14
14
  end
15
15
 
16
16
  json.disposition do
17
- json.travel @data.dig(:disposition, :travel)
18
- json.authorization @data.dig(:disposition, :authorization)
19
- json.commitment @data.dig(:disposition, :commitment)
20
- json.remote @data.dig(:disposition, :remote)
17
+ json.travel @data.dig("disposition", "travel")
18
+ json.authorization @data.dig("disposition", "authorization")
19
+ json.commitment @data.dig("disposition", "commitment")
20
+ json.remote @data.dig("disposition", "remote")
21
21
  json.relocation do
22
- json.willing @data.dig(:disposition, :relocation, :willing)
23
- json.destinations @data.dig(:disposition, :relocation, :destinations)
22
+ json.willing @data.dig("disposition", "relocation", "willing")
23
+ json.destinations @data.dig("disposition", "relocation", "destinations")
24
24
  end
25
25
  end
26
26
 
27
27
  json.contact do
28
- json.email @data.dig(:basics, :contact, :email)
29
- json.phone @data.dig(:basics, :contact, :phone)
30
- json.website @data.dig(:basics, :contact, :website)
31
- json.other @data.dig(:basics, :contact, :other)
28
+ json.email @data.dig("basics", "contact", "email")
29
+ json.phone @data.dig("basics", "contact", "phone")
30
+ json.website @data.dig("basics", "contact", "website")
31
+ json.other @data.dig("basics", "contact", "other")
32
32
  end
33
33
 
34
34
  json.location do
35
- json.address @data.dig(:location, :address) || @data.dig(:basics, :contact, :location)
36
- json.code @data.dig(:location, :code)
37
- json.city @data.dig(:location, :city)
38
- json.country @data.dig(:location, :country)
39
- json.region @data.dig(:location, :region)
35
+ json.address @data.dig("location", "address") || @data.dig("basics", "contact", "location")
36
+ json.code @data.dig("location", "code")
37
+ json.city @data.dig("location", "city")
38
+ json.country @data.dig("location", "country")
39
+ json.region @data.dig("location", "region")
40
40
  end
41
41
 
42
42
  json.employment do
43
- json.summary @data.dig(:employment, :summary)
44
- json.history @data.dig(:employment, :history) do |job|
45
- json.employer job[:employer]
46
- json.position job[:position]
47
- json.url job[:url]
48
- json.start job[:startDate]
49
- json.end job[:endDate]
50
- json.summary job[:summary]
51
- json.location job[:location]
52
- json.highlights job[:highlights]
53
- json.keywords job[:keywords]
43
+ json.history @data.dig("employment") do |job|
44
+ json.employer job["employer"]
45
+ json.position job["position"]
46
+ json.url job["url"]
47
+ json.start job["startDate"]
48
+ json.end job["endDate"]
49
+ json.summary job["summary"]
50
+ json.location job["location"]
51
+ json.highlights job["highlights"]
52
+ json.keywords job["keywords"]
54
53
  end
55
54
  end
56
55
 
57
- json.projects @data.dig(:projects, :history) do |project|
58
- json.title project[:title]
59
- json.category project[:category]
60
- json.description project[:description]
61
- json.summary project[:summary]
62
- json.role project[:roles].join(", ") if project[:roles]
63
- json.url project[:url]
64
- json.media project[:media]
65
- json.repo project[:repo]
66
- json.start project[:startDate]
67
- json.end project[:endDate]
68
- json.highlights project[:highlights]
69
- json.location project[:location]
70
- json.keywords project[:keywords]
56
+ json.projects @data.dig("projects") do |project|
57
+ json.title project["title"]
58
+ json.category project["category"]
59
+ json.description project["description"]
60
+ json.summary project["summary"]
61
+ json.role project["roles"].join(", ") if project["roles"]
62
+ json.url project["url"]
63
+ json.media project["media"]
64
+ json.repo project["repo"]
65
+ json.start project["startDate"]
66
+ json.end project["endDate"]
67
+ json.highlights project["highlights"]
68
+ json.location project["location"]
69
+ json.keywords project["keywords"]
71
70
  end
72
71
 
73
72
  json.skills do
74
- json.sets @data.dig(:skills, :sets) do |skill|
75
- json.name skill[:name]
76
- json.level skill[:level]
77
- json.skills skill[:keywords]
73
+ json.sets @data.dig("skills", "sets") do |skill|
74
+ json.name skill["name"]
75
+ json.level skill["level"]
76
+ json.skills skill["keywords"]
78
77
  end
79
78
 
80
- json.list @data.dig(:skills, :list)
79
+ json.list @data.dig("skills", "list")
81
80
  end
82
81
 
83
82
  json.service do
84
- json.summary @data.dig(:service, :summary)
85
- json.history @data.dig(:service, :history) do |entry|
86
- json.category entry[:category]
87
- json.organization entry[:organization]
88
- json.position entry[:roles].join(", ") if entry[:roles]
89
- json.url entry[:url]
90
- json.start entry[:startDate]
91
- json.end entry[:endDate]
92
- json.summary entry[:summary]
93
- json.highlights entry[:highlights]
94
- json.keywords entry[:keywords]
95
- json.location entry[:location]
83
+ json.history @data.dig("service") do |entry|
84
+ json.category entry["category"]
85
+ json.organization entry["organization"]
86
+ json.position entry["roles"].join(", ") if entry["roles"]
87
+ json.url entry["url"]
88
+ json.start entry["startDate"]
89
+ json.end entry["endDate"]
90
+ json.summary entry["summary"]
91
+ json.highlights entry["highlights"]
92
+ json.keywords entry["keywords"]
93
+ json.location entry["location"]
96
94
  end
97
95
  end
98
96
 
99
97
  json.education do
100
- json.summary @data.dig(:education, :summary)
101
- json.level @data.dig(:education, :level)
102
- json.degree @data.dig(:education, :degree)
103
- json.history @data.dig(:education, :history) do |entry|
104
- json.title entry[:title]
105
- json.institution entry[:institution]
106
- json.area entry[:fieldOfStudy]
107
- json.studyType entry[:degree]
108
- json.start entry[:startDate]
109
- json.end entry[:endDate]
110
- json.grade entry[:grade]
111
- json.curriculum entry[:curriculum]
112
- json.url entry[:url]
113
- json.summary entry[:description]
114
- json.keywords entry[:keywords]
115
- json.highlights entry[:highlights]
116
- json.location entry[:location]
98
+ json.history @data.dig("education") do |entry|
99
+ json.title entry["title"]
100
+ json.institution entry["institution"]
101
+ json.area entry["fieldOfStudy"]
102
+ json.studyType entry["degree"]
103
+ json.start entry["startDate"]
104
+ json.end entry["endDate"]
105
+ json.grade entry["grade"]
106
+ json.curriculum entry["curriculum"]
107
+ json.url entry["url"]
108
+ json.summary entry["description"]
109
+ json.keywords entry["keywords"]
110
+ json.highlights entry["highlights"]
111
+ json.location entry["location"]
117
112
  end
118
113
  end
119
114
 
120
- json.social @data.dig(:basics, :contact, :social)
115
+ json.social @data.dig("basics", "contact", "social")
121
116
 
122
- json.recognition @data.dig(:recognition, :history) do |entry|
123
- json.category entry[:category]
124
- json.title entry[:title]
125
- json.date entry[:startDate]
126
- json.from entry[:from]
127
- json.summary entry[:summary]
128
- json.url entry[:url]
117
+ json.recognition @data.dig("recognition") do |entry|
118
+ json.category entry["category"]
119
+ json.title entry["title"]
120
+ json.date entry["startDate"]
121
+ json.from entry["from"]
122
+ json.summary entry["summary"]
123
+ json.url entry["url"]
129
124
  end
130
125
 
131
- json.writing @data.dig(:writing, :history) do |entry|
132
- json.title entry[:title]
133
- json.category entry[:category]
134
- json.publisher entry[:publisher]
135
- json.date entry[:date]
136
- json.url entry[:url]
137
- json.summary entry[:summary]
126
+ json.writing @data.dig("writing") do |entry|
127
+ json.title entry["title"]
128
+ json.category entry["category"]
129
+ json.publisher entry["publisher"]
130
+ json.date entry["date"]
131
+ json.url entry["url"]
132
+ json.summary entry["summary"]
138
133
  end
139
134
 
140
- json.reading @data.dig(:reading, :history) do |entry|
141
- json.title entry[:title]
142
- json.category entry[:category]
143
- json.url entry[:url]
144
- json.author entry[:author]
145
- json.date entry[:date]
146
- json.summary entry[:summary]
135
+ json.reading @data.dig("reading") do |entry|
136
+ json.title entry["title"]
137
+ json.category entry["category"]
138
+ json.url entry["url"]
139
+ json.author entry["author"]
140
+ json.date entry["date"]
141
+ json.summary entry["summary"]
147
142
  end
148
143
 
149
- json.speaking @data.dig(:speaking, :history) do |entry|
150
- json.title entry[:title]
151
- json.event entry[:event]
152
- json.location entry[:location]
153
- json.date entry[:date]
154
- json.summary entry[:summary]
155
- json.highlights entry[:highlights]
156
- json.keywords entry[:keywords]
144
+ json.speaking @data.dig("speaking") do |entry|
145
+ json.title entry["title"]
146
+ json.event entry["event"]
147
+ json.location entry["location"]
148
+ json.date entry["date"]
149
+ json.summary entry["summary"]
150
+ json.highlights entry["highlights"]
151
+ json.keywords entry["keywords"]
157
152
  end
158
153
 
159
- json.governance @data.dig(:governance, :history) do |entry|
160
- json.summary entry[:summary]
161
- json.category entry[:category]
162
- json.role entry[:roles].join(", ") if entry[:roles]
163
- json.organization entry[:organization]
164
- json.start entry[:startDate]
165
- json.end entry[:endDate]
166
- json.keywords entry[:keywords]
167
- json.highlights entry[:highlights]
154
+ json.governance @data.dig("governance") do |entry|
155
+ json.summary entry["summary"]
156
+ json.category entry["category"]
157
+ json.role entry["roles"].join(", ") if entry["roles"]
158
+ json.organization entry["organization"]
159
+ json.start entry["startDate"]
160
+ json.end entry["endDate"]
161
+ json.keywords entry["keywords"]
162
+ json.highlights entry["highlights"]
168
163
  end
169
164
 
170
- json.languages @data.dig(:languages, :list) do |language|
171
- json.language language[:language]
172
- json.level language[:level]
173
- json.years language[:years]
165
+ json.languages @data.dig("languages") do |language|
166
+ json.language language["language"]
167
+ json.level language["level"]
168
+ json.years language["years"]
174
169
  end
175
170
 
176
- json.samples @data.dig(:samples)
171
+ json.samples @data.dig("samples")
177
172
 
178
- json.references @data.dig(:references, :history) do |reference|
179
- json.name reference[:name]
180
- json.role reference[:role]
181
- json.category reference[:category]
182
- json.private reference[:private]
183
- json.summary reference[:summary]
184
- json.contact reference[:contact]
173
+ json.references @data.dig("references") do |reference|
174
+ json.name reference["name"]
175
+ json.role reference["role"]
176
+ json.category reference["category"]
177
+ json.private reference["private"]
178
+ json.summary reference["summary"]
179
+ json.contact reference["contact"]
185
180
  end
186
181
 
187
- json.testimonials @data.dig(:testimonials)
182
+ json.testimonials @data.dig("testimonials")
188
183
 
189
- json.interests @data.dig(:interests, :list) do |interest|
190
- json.name interest[:name]
191
- json.summary interest[:description]
192
- json.keywords interest[:keywords]
184
+ json.interests @data.dig("interests") do |interest|
185
+ json.name interest["name"]
186
+ json.summary interest["summary"]
187
+ json.keywords interest["keywords"]
193
188
  end
194
189
 
195
- json.extracurricular @data.dig(:extracurriculars, :history) do |entry|
196
- json.title entry[:title]
197
- json.activity entry[:summary]
198
- json.location entry[:location]
199
- json.start entry[:startDate]
200
- json.end entry[:endDate]
190
+ json.extracurricular @data.dig("extracurriculars") do |entry|
191
+ json.title entry["title"]
192
+ json.activity entry["summary"]
193
+ json.location entry["location"]
194
+ json.start entry["startDate"]
195
+ json.end entry["endDate"]
201
196
  end
202
197
 
203
198
  json.affiliation do
204
- json.summary @data.dig(:affiliations, :summary)
205
- json.history @data.dig(:affiliations, :history) do |entry|
206
- json.category entry[:category]
207
- json.organization entry[:organization]
208
- json.role entry[:roles].join(", ") if entry[:roles]
209
- json.url entry[:url]
210
- json.start entry[:startDate]
211
- json.end entry[:endDate]
212
- json.summary entry[:summary]
213
- json.location entry[:location]
214
- json.highlights entry[:highlights]
215
- json.keywords entry[:keywords]
199
+ json.history @data.dig("affiliations") do |entry|
200
+ json.category entry["category"]
201
+ json.organization entry["organization"]
202
+ json.role entry["roles"].join(", ") if entry["roles"]
203
+ json.url entry["url"]
204
+ json.start entry["startDate"]
205
+ json.end entry["endDate"]
206
+ json.summary entry["summary"]
207
+ json.location entry["location"]
208
+ json.highlights entry["highlights"]
209
+ json.keywords entry["keywords"]
216
210
  end
217
211
  end
@@ -0,0 +1,53 @@
1
+ {% if site.data.resume.affiliation.size > 0 %}
2
+ <div class="row affiliation section" id="affiliation">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Affiliation</h2>
5
+
6
+ {% for affiliation in site.data.resume.affiliation %}
7
+ <div class="affiliation-entry entry {% if affiliation == site.data.resume.affiliation.last %}last{% endif %}">
8
+ <div class="row title">
9
+ <div class="organization col-sm-8">
10
+ <h3>
11
+ {% if affiliation.url %}
12
+ <a href="{{affiliation.url}}">{{affiliation.organization}}</a>
13
+ {% else %}
14
+ {{affiliation.organization}}
15
+ {% endif %}
16
+ </h3>
17
+ </div>
18
+ <div class="col-sm-4 right">
19
+ {% capture dates %}{{ affiliation.startDate }}{% if affiliation.startDate.size > 0 and affiliation.endDate.size > 0 %} - {% endif %} {{affiliation.endDate}}{%endcapture%}
20
+ {{ dates }}
21
+ </div>
22
+ </div>
23
+
24
+ <div class="row subtitle">
25
+ <div class="col-sm-6">
26
+ {{ affiliation.category }}
27
+ </div>
28
+ <div class="col-sm-6 right">
29
+ {{ affiliation.location }}
30
+ </div>
31
+ </div>
32
+
33
+ {% if affiliation.summary %}
34
+ <div class="summary row">
35
+ {{affiliation.summary}}
36
+ </div>
37
+ {% endif %}
38
+
39
+ {% if affiliation.keywords %}
40
+ <div class="keywords row">
41
+ {% for keyword in affiliation.keywords %}
42
+ <span class="keyword tag col-12">
43
+ {{ keyword }}
44
+ </span>
45
+ {% endfor %}
46
+ </div>
47
+ {% endif %}
48
+
49
+ </div>
50
+ {% endfor %}
51
+ </div>
52
+ </div>
53
+ {% endif %}
@@ -0,0 +1,19 @@
1
+ {% if site.data.resume.basics.size > 0 %}
2
+ <div class="row basics section" id="basics">
3
+ <div class="col-12">
4
+ {% if site.data.resume.basics.name %}
5
+ <h1 class="name">{{ site.data.resume.basics.name }}</h1>
6
+ {% endif %}
7
+
8
+ {% if site.data.resume.basics.label %}
9
+ <h2 class="label">{{ site.data.resume.basics.label }}</h2>
10
+ {% endif %}
11
+
12
+ {% if site.data.resume.basics.summary %}
13
+ <div class="summary">
14
+ {{ site.data.resume.basics.summary }}
15
+ </div>
16
+ {% endif %}
17
+ </div>
18
+ </div>
19
+ {% endif %}
@@ -0,0 +1,27 @@
1
+ {% if site.data.resume.basics.contact.size > 0 %}
2
+ <div class="row contact">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Contact</h2>
5
+ {% if site.data.resume.basics.contact.email %}
6
+ <div class="email">
7
+ {{ site.data.resume.basics.contact.email }}
8
+ </div>
9
+ {% endif %}
10
+ {% if site.data.resume.basics.contact.phone %}
11
+ <div class="phone">
12
+ {{ site.data.resume.basics.contact.phone }}
13
+ </div>
14
+ {% endif %}
15
+ {% if site.data.resume.basics.contact.website %}
16
+ <div class="website">
17
+ <a href="{{ site.data.resume.basics.contact.website }}">{{ site.data.resume.basics.contact.website }}</a>
18
+ </div>
19
+ {% endif %}
20
+ {% if site.data.resume.basics.contact.location %}
21
+ <div class="location">
22
+ {{ site.data.resume.basics.contact.location }}
23
+ </div>
24
+ {% endif %}
25
+ </div>
26
+ </div>
27
+ {% endif %}