resme 0.3.1 → 0.3.2

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
2
  SHA256:
3
- metadata.gz: 7b346f37deb079117dd466833d47d6b1f9d4b01e916c19c5b853652297fd3d67
4
- data.tar.gz: 0dfceeaabf0074a619d9f67faf499882ad641128e918b995cb8eb0d7a3b6fde2
3
+ metadata.gz: 4c7490069bf046c56808342ad427c9f055bba680506486029770761517b92099
4
+ data.tar.gz: eb69e1752e4b4f4564e0e8cf9c7f5fa65756f7b3e599073a52d8c49583084776
5
5
  SHA512:
6
- metadata.gz: 2d7013a8e980341a3d3abdbb3d3f814df116b98915711257c8a79ca5b0cac1406ec4f158629c1190af332200667afffc1f8c8e88caa5f521bb63578a64416750
7
- data.tar.gz: d57c6fd89c9acf4ead44af434ed4ccba9b0c0117e1e1a653f6e0ba15307d1572d384550efa606c529516c37f1c548e77524a292573c2830aba6391ff1e2490e2
6
+ metadata.gz: cb0ac162ee646457be8d70f51359de1e7d2ad99ad545c79d1403f565c220e975e5927b0ab2fb00c72346edff04ccc0143282d666a08034f2174e7fe770cefc50
7
+ data.tar.gz: 3eb1f599f8ca2abbf274632c3afa0076349a85bc44e7c1b468761112627a086aa5de5385a5d4f79a2f6f438fe343b8f5c8de2979dc1bdacbc10ee7a72a258abb
@@ -0,0 +1,248 @@
1
+ #+TITLE: RESME - A Resume Generator
2
+ #+AUTHOR: Adolfo Villafiorita
3
+ #+DATE: <2020-07-14 Tue>
4
+ #+STARTUP: showall
5
+
6
+ * RESME - A Resume Generator
7
+ :PROPERTIES:
8
+ :CUSTOM_ID: resme---a-resume-generator
9
+ :END:
10
+
11
+ Keep your resume in YAML and output it in various formats, including
12
+ org-mode, markdown, json, and the Europass XML format.
13
+
14
+ The rendering engine is based on ERB. This simplifies the creation of
15
+ new output formats (and extending/modifying the YML structure to one's
16
+ needs).
17
+
18
+ ** Installation
19
+ :PROPERTIES:
20
+ :CUSTOM_ID: installation
21
+ :END:
22
+
23
+ Add this line to your application's Gemfile:
24
+
25
+ #+BEGIN_SRC ruby
26
+ gem 'resme'
27
+ #+END_SRC
28
+
29
+ And then execute:
30
+
31
+ #+BEGIN_EXAMPLE
32
+ $ bundle
33
+ #+END_EXAMPLE
34
+
35
+ Or install it yourself as:
36
+
37
+ #+BEGIN_EXAMPLE
38
+ $ gem install resme
39
+ #+END_EXAMPLE
40
+
41
+ ** Usage
42
+ :PROPERTIES:
43
+ :CUSTOM_ID: usage
44
+ :END:
45
+
46
+ Start with:
47
+
48
+ #+BEGIN_EXAMPLE
49
+ $ resme init
50
+ #+END_EXAMPLE
51
+
52
+ whih generates a YML template for your resume in the current directory.
53
+ Comments in the YML file should help you fill the various entries.
54
+ Notice that most entries are optional and you can remove sections which
55
+ are not relevant for your resume.
56
+
57
+ You can then generate a resume using one of the existing templates or by
58
+ writing your own template (see below).
59
+
60
+ To generate a resume in Markdown using the provided template:
61
+
62
+ $ resme org [-o output_filename] file.yml ...
63
+
64
+ To generate a resume in Markdown using the provided template:
65
+
66
+ $ resme md [-o output_filename] file.yml ...
67
+
68
+ To generate a resume in the Europass XML format using the provided
69
+ template:
70
+
71
+ $ resme europass [-o output_filename] file.yml ...
72
+
73
+ To generate a resume in the JSON format (https://jsonresume.org/):
74
+
75
+ $ resme json [-o output_filename] file.yaml ...
76
+
77
+ Remarks:
78
+
79
+ - you can specify more than one YML file in input. This allows you to
80
+ store data about your resume in different files, if you like to do so
81
+ (e.g., work experiences could be in one file and talks in another).
82
+ The YML files are merged before processing them.
83
+ - the output filename is optional. If you do not specify one, the resume
84
+ is generated to =resume-YYYY.MM.DD.format=, where =YYYY-MM-DD= is
85
+ today's date and =format= is the chosen output format
86
+
87
+ ** Checking validity
88
+ :PROPERTIES:
89
+ :CUSTOM_ID: checking-validity
90
+ :END:
91
+
92
+ Use the =check= command to verify whether your YAML file conforms with
93
+ the intended syntax.
94
+
95
+ #+BEGIN_SRC ruby
96
+ resme check resume.yaml
97
+ #+END_SRC
98
+
99
+ ** Dates in the resume
100
+ :PROPERTIES:
101
+ :CUSTOM_ID: dates-in-the-resume
102
+ :END:
103
+
104
+ Enter dates in the resume in one of the following formats:
105
+
106
+ - Any format accepted by Ruby for a full date (year, month, day)
107
+ - YYYY-MM-DD
108
+ - YYYY-MM
109
+ - YYYY
110
+
111
+ The third and the forth format allows you to enter "partial" dates
112
+ (e.g., when the month or the day have been forgotten or are irrelevant).
113
+
114
+ ** Creating your own templates
115
+ :PROPERTIES:
116
+ :CUSTOM_ID: creating-your-own-templates
117
+ :END:
118
+
119
+ The resumes are generated from the YML matter using ERB templates. The
120
+ output formats should support different backends (OrgMode and Markdown
121
+ easily allow for generation of PDFs, HTML, and ODT to mention a few).
122
+
123
+ You can define your own templates if you wish to do so.
124
+
125
+ All the data in the resume is made available in the =data= variable.
126
+ Thus, for instance, the following code snippets generates a list of all
127
+ the work experiences:
128
+
129
+ #+BEGIN_EXAMPLE
130
+ <% data.work each do |exp| %>
131
+ - <%= exp.who %>
132
+ From: <%= exp.from %> till: <%= exp.till %>
133
+ <% end %>
134
+ #+END_EXAMPLE
135
+
136
+ To specify your own ERB template use the option =-t=. Thus, for
137
+ instance:
138
+
139
+ #+BEGIN_EXAMPLE
140
+ $ resme render -t template.md.erb [-o output_filename] file.yaml ...
141
+ #+END_EXAMPLE
142
+
143
+ uses =template.md.erb= to generate the resume.
144
+
145
+ Some functions can be used in the templates to better control the
146
+ output.
147
+
148
+ String manipulation functions:
149
+
150
+ - =clean string= removes any space at the beginning of =string=
151
+ - =reflow string, n= makes =string= into an array of strings of length
152
+ lower or equal to =n= (useful if you are outputting a textual format,
153
+ for instance.
154
+
155
+ Dates manipulation functions:
156
+
157
+ - =period= generates a string recapping a period. The function abstracts
158
+ different syntax you can use for entries (i.e., =date= or =from= and
159
+ =till=) and different values for the entries (e.g., a missing value
160
+ for =till=)
161
+ - =year string=, =month string=, =day string= return, respectively the
162
+ year, month and day from strings in the format =YYYY-MM-DD=s
163
+ - =has_month input= returns true if =input= has a month, that is, it is
164
+ a date or it is in the form =YYYY-MM=
165
+ - =has_day input= returns true if =input= has a day, that is, it is a
166
+ date or it is in the form =YYYY-MM-DD=
167
+
168
+ You can find the templates in =lib/resme/templates=. These might be good
169
+ starting points if you want to develop your own.
170
+
171
+ ** Contributing your templates
172
+ :PROPERTIES:
173
+ :CUSTOM_ID: contributing-your-templates
174
+ :END:
175
+
176
+ If you develop an output template and want to make it available, please
177
+ let me know, so that I can include it in future releases of this gem.
178
+
179
+ ** Development
180
+ :PROPERTIES:
181
+ :CUSTOM_ID: development
182
+ :END:
183
+
184
+ After checking out the repo, run =bin/setup= to install dependencies.
185
+ You can also run =bin/console= for an interactive prompt that will allow
186
+ you to experiment.
187
+
188
+ To install this gem onto your local machine, run
189
+ =bundle exec rake install=. To release a new version, update the version
190
+ number in =version.rb=, and then run =bundle exec rake release=, which
191
+ will create a git tag for the version, push git commits and tags, and
192
+ push the =.gem= file to [[https://rubygems.org][rubygems.org]].
193
+
194
+ ** Contributing
195
+ :PROPERTIES:
196
+ :CUSTOM_ID: contributing
197
+ :END:
198
+
199
+ Bug reports and pull requests are welcome on GitHub at
200
+ https://github.com/avillafiorita/resme.
201
+
202
+ ** License
203
+ :PROPERTIES:
204
+ :CUSTOM_ID: license
205
+ :END:
206
+
207
+ The gem is available as open source under the terms of the
208
+ [[http://opensource.org/licenses/MIT][MIT License]].
209
+
210
+ ** Roadmap
211
+ :PROPERTIES:
212
+ :CUSTOM_ID: roadmap
213
+ :END:
214
+
215
+ In =doc/todo.org= ... guess what is my preferred editor!
216
+
217
+ ** Bugs
218
+ :PROPERTIES:
219
+ :CUSTOM_ID: bugs
220
+ :END:
221
+
222
+ There are still slight differences in the syntax of entries and in the
223
+ way in which the information is formatted in various output formats. For
224
+ instance, gender and birthdate are used in the Europass format, but not
225
+ in the Markdown format. This is in part due to the different standards
226
+ and in part due to personal preferences.
227
+
228
+ *Entries are not sorted by date before outputting them. Make sure you
229
+ put them in the order you want them to appear in your resume.*
230
+
231
+ Unknown number of unknown bugs.
232
+
233
+ ** Release History
234
+ :PROPERTIES:
235
+ :CUSTOM_ID: release-history
236
+ :END:
237
+
238
+ - *0.3.2* and *0.3.1* fix errors with the Europass format: lists of
239
+ projects, interests, ... are now properly formatted.
240
+ - *0.3* introduces output to org-mode, introduces references for the CV,
241
+ improves output to JSON, adds a =check= command, removes useless blank
242
+ lines in the output, supports =-%>= in the ERB templates, fixes
243
+ various typos in the documentation, introduces various new formatting
244
+ functions, to simplify template generation
245
+ - *0.2* improves output of volunteering activities and other information
246
+ in the Europass and *significantly improves error and warning
247
+ reporting*
248
+ - *0.1* is the first release
@@ -415,7 +415,7 @@ end
415
415
  <Description>
416
416
  <% if data.interests and not data.interests.empty? %>
417
417
  &lt;ul&gt;
418
- <% data.interests.do |x| %>
418
+ <% data.interests do |x| %>
419
419
  &lt;li&gt;<%= "#{x.name || ""}: #{x.level || ""}, #{x.summary || ""}; " %>&lt;/li&gt;
420
420
  <% end %>
421
421
  &lt;/ul&gt;
@@ -1,5 +1,6 @@
1
- #+TITLE: <%= full_name data %>, <%= data.basics.title %>
2
- #+AUTHOR: <%= data.contacts.select { |x| x.label == "email" }.first.value %>
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
@@ -40,7 +41,7 @@
40
41
  * Work Experience
41
42
 
42
43
  <% (data.work || []).each do |item| -%>
43
- ** *<%= period item %>: <%= clean [item.role, item.who].join(", ") %>*
44
+ ** <%= period item %>: <%= clean [item.role, item.who].join(", ") %>
44
45
  <%= propertify item, " " %>
45
46
 
46
47
  <%= reflow_to_string item["summary"], 72, " " -%>
@@ -52,7 +53,7 @@
52
53
  * Teaching
53
54
 
54
55
  <% (data.teaching || []).each do |item| -%>
55
- ** *<%= period item %>: <%= item.subject %>*
56
+ ** <%= period item %>: <%= item.subject %>
56
57
  <%= propertify item, " " %>
57
58
 
58
59
  <%= [item["role"], item["school"], item["who"]].join(", ") %>
@@ -64,7 +65,7 @@
64
65
  * Projects
65
66
 
66
67
  <% (data.projects || []).each do |item| -%>
67
- ** *<%= period item %>: <%= [item.name, item.role].join(", ") %>*
68
+ ** <%= period item %>: <%= [item.name, item.role].join(", ") %>
68
69
  <%= propertify item, " " %>
69
70
 
70
71
  <%= reflow_to_string item["summary"], 72, " " -%>
@@ -76,7 +77,7 @@
76
77
  * Other Initiatives
77
78
 
78
79
  <% (data.other || []).each do |item| -%>
79
- ** *<%= period item %>: <%= [item["who"], item["role"]].join(", ") %>*
80
+ ** <%= period item %>: <%= [item["who"], item["role"]].join(", ") %>
80
81
  <%= propertify item, " " %>
81
82
 
82
83
  <%= reflow_to_string item["summary"], 72, " " -%>
@@ -150,7 +151,7 @@
150
151
  * <%= group.capitalize %>
151
152
 
152
153
  <% (group || []).each do |item| -%>
153
- ** *<%= item.date %>: <%= [item.title, item.who, item.address].join(", ") %>*
154
+ ** <%= item.date %>: <%= [item.title, item.who, item.address].join(", ") %>
154
155
  <%= propertify item, " " %>
155
156
 
156
157
  <%= reflow_to_string item.summary, 72, " " -%>
@@ -1,3 +1,3 @@
1
1
  module Resme
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adolfo Villafiorita
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-12 00:00:00.000000000 Z
11
+ date: 2020-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -79,7 +79,7 @@ files:
79
79
  - ".gitignore"
80
80
  - Gemfile
81
81
  - LICENSE.txt
82
- - README.md
82
+ - README.org
83
83
  - Rakefile
84
84
  - bin/console
85
85
  - bin/setup
data/README.md DELETED
@@ -1,192 +0,0 @@
1
- # RESME - A Resume Generator
2
-
3
- Keep your resume in YAML and output it in various formats, including
4
- org-mode, markdown, json, and the Europass XML format.
5
-
6
- The rendering engine is based on ERB. This simplifies the creation of
7
- new output formats (and extending/modifying the YML structure to
8
- one's needs).
9
-
10
- ## Installation
11
-
12
- Add this line to your application's Gemfile:
13
-
14
- ```ruby
15
- gem 'resme'
16
- ```
17
-
18
- And then execute:
19
-
20
- $ bundle
21
-
22
- Or install it yourself as:
23
-
24
- $ gem install resme
25
-
26
- ## Usage
27
-
28
- Start with:
29
-
30
- $ resme init
31
-
32
- whih generates a YML template for your resume in the current
33
- directory. Comments in the YML file should help you fill the various
34
- entries. Notice that most entries are optional and you can remove
35
- sections which are not relevant for your resume.
36
-
37
- You can then generate a resume using one of the existing templates or
38
- by writing your own template (see below).
39
-
40
- To generate a resume in Markdown using the provided template:
41
-
42
- $ resme org [-o output_filename] file.yml ...
43
-
44
- To generate a resume in Markdown using the provided template:
45
-
46
- $ resme md [-o output_filename] file.yml ...
47
-
48
- To generate a resume in the Europass XML format using the provided template:
49
-
50
- $ resme europass [-o output_filename] file.yml ...
51
-
52
- To generate a resume in the JSON format (https://jsonresume.org/):
53
-
54
- $ resme json [-o output_filename] file.yaml ...
55
-
56
- Remarks:
57
-
58
- * you can specify more than one YML file in input. This allows you to store
59
- data about your resume in different files, if you like to do so (e.g., work
60
- experiences could be in one file and talks in another). The YML files are
61
- merged before processing them.
62
- * the output filename is optional. If you do not specify one, the resume is
63
- generated to `resume-YYYY.MM.DD.format`, where `YYYY-MM-DD` is today's date
64
- and `format` is the chosen output format
65
-
66
- ## Checking validity
67
-
68
- Use the `check` command to verify whether your YAML file conforms with
69
- the intended syntax.
70
-
71
- ```ruby
72
- resme check resume.yaml
73
- ```
74
-
75
- ## Dates in the resume
76
-
77
- Enter dates in the resume in one of the following formats:
78
-
79
- * Any format accepted by Ruby for a full date (year, month, day)
80
- * YYYY-MM-DD
81
- * YYYY-MM
82
- * YYYY
83
-
84
- The third and the forth format allows you to enter "partial" dates
85
- (e.g., when the month or the day have been forgotten or are
86
- irrelevant).
87
-
88
- ## Creating your own templates
89
-
90
- The resumes are generated from the YML matter using ERB templates.
91
- The output formats should support different backends (OrgMode and
92
- Markdown easily allow for generation of PDFs, HTML, and ODT to mention
93
- a few).
94
-
95
- You can define your own templates if you wish to do so.
96
-
97
- All the data in the resume is made available in the `data` variable.
98
- Thus, for instance, the following code snippets generates a list of
99
- all the work experiences:
100
-
101
- <% data.work each do |exp| %>
102
- - <%= exp.who %>
103
- From: <%= exp.from %> till: <%= exp.till %>
104
- <% end %>
105
-
106
- To specify your own ERB template use the option `-t`. Thus, for instance:
107
-
108
- $ resme render -t template.md.erb [-o output_filename] file.yaml ...
109
-
110
- uses `template.md.erb` to generate the resume.
111
-
112
- Some functions can be used in the templates to better control the output.
113
-
114
- String manipulation functions:
115
-
116
- * `clean string` removes any space at the beginning of `string`
117
- * `reflow string, n` makes `string` into an array of strings of length
118
- lower or equal to `n` (useful if you are outputting a textual
119
- format, for instance.
120
-
121
- Dates manipulation functions:
122
-
123
- * `period` generates a string recapping a period. The function
124
- abstracts different syntax you can use for entries (i.e., `date` or
125
- `from` and `till`) and different values for the entries (e.g., a
126
- missing value for `till`)
127
- * `year string`, `month string`, `day string` return, respectively the
128
- year, month and day from strings in the format `YYYY-MM-DD`s
129
- * `has_month input` returns true if `input` has a month, that is, it is
130
- a date or it is in the form `YYYY-MM`
131
- * `has_day input` returns true if `input` has a day, that is, it is
132
- a date or it is in the form `YYYY-MM-DD`
133
-
134
- You can find the templates in `lib/resme/templates`. These might be
135
- good starting points if you want to develop your own.
136
-
137
- ## Contributing your templates
138
-
139
- If you develop an output template and want to make it available,
140
- please let me know, so that I can include it in future releases of
141
- this gem.
142
-
143
- ## Development
144
-
145
- After checking out the repo, run `bin/setup` to install
146
- dependencies. You can also run `bin/console` for an interactive prompt
147
- that will allow you to experiment.
148
-
149
- To install this gem onto your local machine, run `bundle exec rake
150
- install`. To release a new version, update the version number in
151
- `version.rb`, and then run `bundle exec rake release`, which will
152
- create a git tag for the version, push git commits and tags, and push
153
- the `.gem` file to [rubygems.org](https://rubygems.org).
154
-
155
- ## Contributing
156
-
157
- Bug reports and pull requests are welcome on GitHub at
158
- https://github.com/avillafiorita/resme.
159
-
160
- ## License
161
-
162
- The gem is available as open source under the terms of
163
- the [MIT License](http://opensource.org/licenses/MIT).
164
-
165
- ## Roadmap
166
-
167
- In `doc/todo.org` ... guess what is my preferred editor!
168
-
169
- ## Bugs
170
-
171
- There are still slight differences in the syntax of entries and in the
172
- way in which the information is formatted in various output formats.
173
- For instance, gender and birthdate are used in the Europass format,
174
- but not in the Markdown format. This is in part due to the different
175
- standards and in part due to personal preferences.
176
-
177
- **Entries are not sorted by date before outputting them. Make sure you
178
- put them in the order you want them to appear in your resume.**
179
-
180
- Unknown number of unknown bugs.
181
-
182
- ## Release History
183
-
184
- * **0.3** introduces output to org-mode, introduces references for the
185
- CV, improves output to JSON, adds a `check` command, removes useless
186
- blank lines in the output, supports `-%>` in the ERB templates,
187
- fixes various typos in the documentation, introduces various new
188
- formatting functions, to simplify template generation
189
- * **0.2** improves output of volunteering activities and other
190
- information in the Europass and **significantly improves error and
191
- warning reporting**
192
- * **0.1** is the first release