resume_exporter 0.0.1 → 1.0.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.
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 %}