This is a Ruby command line interface (CLI) application that generates my resume. I made it in order to teach myself a bit about the Ruby PDF generation library Prawn. Railscast #153 is also a good resource for learning about it.
git clone https://github.com/paulfioravanti/resume.git cd resume bundle install
- Ruby 2.6.3
- i18n, Prawn and Prawn-Table (if you don't have the specific versions of the gems, you will be prompted to install them)
- RSpec, if you want to run the tests
Generate the resume in the following languages:
bin/resume -l it
bin/resume -l ja
Run the tests:
View the Simplecov test coverage report:
Generate the YARD documentation:
One Sheet Resume
Generate the "one sheet" version of the resume (the whole app and specs in a
single file called
If I sent my resume to you directly, it would have been generated from
Generate One Sheet
The resume PDF can be generated from the one sheet in a similar way as the CLI app:
ruby resume.rb -l it
ruby resume.rb -l ja
One Sheet Specs
The specs can also be run directly on the one sheet resume:
If there are ever any errors or issues related to the downloading of remote
assets that cause the resume to not be able to be generated, you can run the
rake task to delete all resume-related assets from the local tmpdir:
- I did a lightning talk about this project at the Ruby on Rails Oceania Meetup on 10 May 2016 (slide deck). Just for fun, I created a GitPitch version of the presentation (version with presenter notes visible).
- I wrote a companion blog post for this project called Resume as Code outlining some reasons for making it, as well as some of the technical challenges.
- It doesn't seem possible yet in Prawn to make an embedded image a clickable link. Until support is possible (if ever), I've simply pulled in images from Dropbox and overlaid a transparent text link on top to simulate clicking an image. More discussion on this issue is at this StackOverflow thread.
Using Ruby Packer, an executable can be created for the resume. However, this is very experimental, doesn't really work properly, and is only documented here as an interesting curiosity.
Install Ruby Packer
Follow the instructions on the repository's README file. I'll focus on the MacOS installation instructions.
resume directory, perform the following:
brew install squashfs curl -L http://enclose.io/rubyc/rubyc-darwin-x64.gz | gunzip > rubyc chmod +x rubyc
Generate resume first
Before attempting to do anything with any executable, make sure that you've generated the resume in your target language already so that image and font assets are stored in your local tmp folder and no further connections need to be made in order to fetch them. This is because of an open issue regarding SSL with Enclose.IO's Ruby executable.
If this issue gets solved, maybe the executable can be used to go fetch assets as well.
Generate and run resume executable
As of this writing, Enclose.IO's Ruby executable only goes
up to version 2.4.1. Therefore, we will have to override the specified Ruby
version with an
ENV variable when generating and running the resume
Generate executable (here named
CUSTOM_RUBY_VERSION="2.4.1" ./rubyc bin/resume -o resume.out
Run resume executable:
CUSTOM_RUBY_VERSION="2.4.1" ./resume.out -l it
CUSTOM_RUBY_VERSION="2.4.1" ./resume.out -l ja
So, yes, more of a curiosity here than anything really useful.