resuby 0.0.1 → 0.1.1
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 +4 -4
- data/README.md +51 -34
- data/bin/resuby +4 -11
- data/lib/resuby.rb +4 -43
- data/lib/resuby/cli/banners.rb +30 -0
- data/lib/resuby/cli/cli.rb +61 -0
- data/lib/resuby/cli/exe.rb +112 -0
- data/lib/resuby/css/main.scss +1 -1
- data/lib/resuby/resume/resume.rb +60 -0
- data/lib/resuby/templates/resume.erb +15 -14
- data/lib/resuby/version.rb +2 -2
- metadata +26 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a39bc8b678cb2e72c5f51779ab719482b98ff0f0
|
4
|
+
data.tar.gz: 382c006dd90706b9a6a13c373c5563bc229590ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ef5d314c79fa1b3bc35c056634b73e35825d17c44cd56e691ed5beeaac1aa7b7d832ee656f7387f53ceae9357f867d889c61624e47eb7e7e6de08f41b4bc61d
|
7
|
+
data.tar.gz: 42164fcc704bac4ced41a739d575db4d965cfb3c9e6c5a0d3b3780bea360c618e3709b5b31bc61fe00ce2f686de0b339d98be3804606a626a9ed70d15d1ad6f8
|
data/README.md
CHANGED
@@ -6,11 +6,14 @@
|
|
6
6
|
|
7
7
|
## Overview
|
8
8
|
|
9
|
-
Resuby is a gem that takes a `
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
Resuby is a gem that takes a `YAML` or `JSON` configuration file that contains all of your resume information, and turns
|
10
|
+
it into a resume you can actually use to find your next job. The data file is converted into an HTML file, and the
|
11
|
+
accompanying CSS styles, which you can then view in a browser. From there, you can print your resume, save it as a PDF,
|
12
|
+
or do anything else you can do to a web page.
|
13
|
+
|
14
|
+
This project was inpired by my need to get away from awkward tables in Word, and my desire to be able to version control
|
15
|
+
my resume. With Resuby, you only need to store the `JSON`, or `YAML` file, as the HTML and CSS can easily be generated
|
16
|
+
again (although you could certainly save that too).
|
14
17
|
|
15
18
|
## Table of Contents
|
16
19
|
|
@@ -21,7 +24,9 @@ Safari), and view the end result.
|
|
21
24
|
- [Table of Contents](#table-of-contents)
|
22
25
|
- [Installation](#installation)
|
23
26
|
- [Usage](#usage)
|
24
|
-
|
27
|
+
- [CLI](#cli)
|
28
|
+
- [Generating Resume](#generating-resume)
|
29
|
+
- [Generating Resume Data Template](#generating-resume-data-template)
|
25
30
|
- [Compatibility](#compatibility)
|
26
31
|
|
27
32
|
<!-- /TOC -->
|
@@ -30,53 +35,65 @@ Safari), and view the end result.
|
|
30
35
|
|
31
36
|
To install, simply run `gem install resuby`.
|
32
37
|
|
33
|
-
In addition to resuby, it will install SASS, which is a common CSS pre-compiler
|
34
|
-
|
38
|
+
In addition to resuby, it will install SASS, which is a common CSS pre-compiler that is used by resuby to generate the
|
39
|
+
CSS file for your resume, and Optimist, which is used to handle CLI interactions.
|
35
40
|
|
36
41
|
## Usage
|
37
42
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
43
|
+
### CLI
|
44
|
+
|
45
|
+
By default, the `resuby` executable will look for a file called `resume.yaml` in your current working directory (you can
|
46
|
+
pass it a different path). The `YAML` or `JSON` file needs to contain all of the information you want in your resume.
|
47
|
+
The table below summarizes the keys that `resuby` expects to find in the data file.
|
42
48
|
|
43
49
|
|Key|Class|Required|Description|
|
44
50
|
|---|-----|--------|-----------|
|
45
|
-
|`name`|String
|
46
|
-
|`contact`|Array
|
47
|
-
|`profile`|String
|
48
|
-
|Any other key|Array
|
51
|
+
|`name`|String|*|Your name|
|
52
|
+
|`contact`|Array|*|Any contact information (i.e. phone, email)|
|
53
|
+
|`profile`|String||A small paragraph that describes you|
|
54
|
+
|Any other key|Array||These will become the headers for your other resume sections (i.e. `education` -> `Education`, `projects_&_experience` -> `Projects & Experience`|
|
49
55
|
|
50
|
-
Each array element under the headers you create is expected to be a hash. All of
|
51
|
-
|
52
|
-
Below are the expected key values for each array element under your headers.
|
56
|
+
Each array element under the headers you create is expected to be a hash. All of the array elements under those sections
|
57
|
+
will become a new row under that header. Below are the expected key values for each array element.
|
53
58
|
|
54
59
|
|Key|Class|Required|Description|
|
55
60
|
|---|-----|--------|-----------|
|
56
|
-
|`
|
57
|
-
|`
|
58
|
-
|`subtitle`|String
|
59
|
-
|`data`|Array
|
61
|
+
|`desc`|String|*|Description for that section (i.e. dates), will be displayed to the left of that section|
|
62
|
+
|`title`|String||Main point for that row, will have slightly larger font than the rest of the values|
|
63
|
+
|`subtitle`|String||Will be displayed right under the title, will be in italics|
|
64
|
+
|`data`|Array|*|Any other info, such as accomplishments, each array element will be a new bullet|
|
60
65
|
|
61
|
-
[`default.yaml`](/examples/default.yaml) contains a sample structure.
|
66
|
+
[`default.yaml`](/examples/default.yaml) contains a sample `YAML` structure. [`default.json`](/examples/default.json)
|
67
|
+
contains a sample `JSON` structure.
|
62
68
|
|
63
|
-
|
69
|
+
#### Generating Resume
|
64
70
|
|
65
|
-
Once you have
|
66
|
-
from the same directoy:
|
71
|
+
Once you have a data file, you can run the following command from the same directoy:
|
67
72
|
|
68
73
|
```
|
69
74
|
resuby generate
|
70
75
|
```
|
71
76
|
|
72
|
-
Running this command will generate a file called `resume.html` in your current
|
73
|
-
|
74
|
-
|
75
|
-
|
77
|
+
Running this command will generate a file called `resume.html`, and a `css/` directory in your current workspace. Now
|
78
|
+
you can simply open this in a browser, and print it (__make sure that the printed page has no margins, as the HTML
|
79
|
+
generated will have its own margins set__).
|
80
|
+
|
81
|
+
#### Generating Resume Data Template
|
82
|
+
|
83
|
+
Think converting your resume to `YAML` or `JSON` will take too long? Well, the `resuby` CLI can help take some of that
|
84
|
+
burden off of your shoulders by generating a data template. Once you have the template, simply fill in the file with
|
85
|
+
your information, and you should be ready to go. To create a template just do:
|
86
|
+
|
87
|
+
```
|
88
|
+
resuby generate -o <path/to/template> -y
|
89
|
+
```
|
90
|
+
|
91
|
+
This will generate the template in `YAML` format, however, you can make it output `JSON` just as easily if that's more
|
92
|
+
your style.
|
76
93
|
|
94
|
+
You can run `resuby generate --help` to get additional information about the executable.
|
77
95
|
|
78
96
|
## Compatibility
|
79
97
|
|
80
|
-
The generated HTML and styling has only been tested in Chrome and Safari.
|
81
|
-
|
82
|
-
look as designed.
|
98
|
+
The generated HTML and styling has only been tested in Chrome and Safari. This doesn't mean it won't work on other
|
99
|
+
browsers, but it is not guaranteed to look as designed.
|
data/bin/resuby
CHANGED
@@ -2,16 +2,9 @@
|
|
2
2
|
|
3
3
|
require 'resuby'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
resume_data = File.join(Dir.pwd, 'resume.yaml')
|
10
|
-
resume = File.join(Dir.pwd, 'resume.html')
|
11
|
-
new_resume.read_source(resume_data)
|
12
|
-
new_resume.save_resume(resume)
|
13
|
-
new_resume.compile_styles
|
14
|
-
else
|
15
|
-
puts 'Specify an action to create your resume'
|
5
|
+
begin
|
6
|
+
Resuby::CLI.run
|
7
|
+
rescue Interrupt
|
8
|
+
warn 'Aborted'
|
16
9
|
exit 1
|
17
10
|
end
|
data/lib/resuby.rb
CHANGED
@@ -1,44 +1,5 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require '
|
1
|
+
require 'resuby/resume/resume'
|
2
|
+
require 'resuby/cli/cli'
|
3
|
+
require 'resuby/version'
|
4
4
|
|
5
|
-
|
6
|
-
attr_reader :name, :contact_info, :sections, :template, :profile
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
@template = File.read(File.join(File.dirname(__FILE__), 'resuby/templates/resume.erb'))
|
10
|
-
end
|
11
|
-
|
12
|
-
def read_source(source)
|
13
|
-
puts "Reading in data from #{source}"
|
14
|
-
resume_data = YAML.load_file(source)
|
15
|
-
@name = resume_data['name']
|
16
|
-
@contact_info = resume_data['contact']
|
17
|
-
@profile = resume_data['profile']
|
18
|
-
@sections = resume_data.reject { |key, value| ['name', 'contact', 'profile'].include?(key) }
|
19
|
-
end
|
20
|
-
|
21
|
-
def render
|
22
|
-
ERB.new(self.template).result( binding )
|
23
|
-
end
|
24
|
-
|
25
|
-
def save_resume(file)
|
26
|
-
puts "Saving your resume at #{file}"
|
27
|
-
File.open(file, "w+") do |f|
|
28
|
-
f.write(render)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def compile_styles
|
33
|
-
options = {
|
34
|
-
cache: true,
|
35
|
-
syntax: :scss,
|
36
|
-
style: :compressed,
|
37
|
-
}
|
38
|
-
|
39
|
-
scss_file = File.join(File.dirname(__FILE__), 'resuby/css/main.scss')
|
40
|
-
render = Sass::Engine.new(File.read(scss_file), options).render
|
41
|
-
Dir.mkdir(File.join(Dir.pwd, 'css'), 0755) unless File.directory?(File.join(Dir.pwd, 'css'))
|
42
|
-
File.write(File.join(Dir.pwd, 'css/main.css'), render)
|
43
|
-
end
|
44
|
-
end
|
5
|
+
module Resuby; end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Resuby::CLI
|
2
|
+
RESUBY_BANNER = <<-EOT
|
3
|
+
Create an HTML resume from a YAML file.
|
4
|
+
|
5
|
+
Usage: resuby <options> [command] [<args>]
|
6
|
+
|
7
|
+
Commands:
|
8
|
+
generate Generate an HTML resume
|
9
|
+
init Initialize project by creating a resume data template
|
10
|
+
|
11
|
+
Options:
|
12
|
+
EOT
|
13
|
+
|
14
|
+
GENERATE_BANNER = <<-EOT
|
15
|
+
Generate an HTML file that contains your resume. This will also generate the
|
16
|
+
required CSS styles for the HTML template.
|
17
|
+
|
18
|
+
Usage: resuby generate <options>
|
19
|
+
|
20
|
+
Options:
|
21
|
+
EOT
|
22
|
+
|
23
|
+
INIT_BANNER = <<-EOT
|
24
|
+
Creates a template for the resume data file.
|
25
|
+
|
26
|
+
Usage: resuby init <options>
|
27
|
+
|
28
|
+
Options:
|
29
|
+
EOT
|
30
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'resuby/cli/banners'
|
2
|
+
require 'resuby/cli/exe'
|
3
|
+
require 'optimist'
|
4
|
+
|
5
|
+
module Resuby::CLI
|
6
|
+
def self.run
|
7
|
+
Resuby::CLI.options
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.options
|
11
|
+
Resuby::CLI.global_options
|
12
|
+
@subcommand = ARGV.shift
|
13
|
+
Resuby::CLI.subcommand_options
|
14
|
+
Resuby::CLI.execute
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.global_options
|
18
|
+
@global_opts = Optimist::options do
|
19
|
+
banner Resuby::CLI::RESUBY_BANNER
|
20
|
+
version "resuby version #{Resuby::VERSION}"
|
21
|
+
stop_on %w(generate init)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.subcommand_options
|
26
|
+
case @subcommand
|
27
|
+
when 'generate'
|
28
|
+
@opts = Optimist::options do
|
29
|
+
banner Resuby::CLI::GENERATE_BANNER
|
30
|
+
opt :data, 'Path to file containing data for the resume', default: File.join(Dir.pwd, 'resume.yaml')
|
31
|
+
opt :json, 'Read in data file as a JSON formatted file'
|
32
|
+
opt :output, 'Output file for generated HTML', default: File.join(Dir.pwd, 'resume.html')
|
33
|
+
opt :yaml, 'Read in data file as a YAML formatted file'
|
34
|
+
end
|
35
|
+
Optimist::die 'Data file connot be JSON and YAML' if @opts[:json] && @opts[:yaml]
|
36
|
+
when 'init'
|
37
|
+
@opts = Optimist::options do
|
38
|
+
banner Resuby::CLI::INIT_BANNER
|
39
|
+
opt :force, 'Force overwrite of data file if already present'
|
40
|
+
opt :json, 'Outputs data template in JSON format'
|
41
|
+
opt :output, 'Path to file where data template should be placed', required: true, type: :string
|
42
|
+
opt :yaml, 'Outputs data template in YAML format'
|
43
|
+
end
|
44
|
+
Optimist::die 'Cannot output two different formats at the same time' if @opts[:json] && @opts[:yaml]
|
45
|
+
Optimist::die 'You must specify an output format' unless @opts[:json] || @opts[:yaml]
|
46
|
+
else
|
47
|
+
Optimist::die "Unknonwn subcommand #{@subcommand.inspect}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.execute
|
52
|
+
case @subcommand
|
53
|
+
when 'generate'
|
54
|
+
Resuby::CLI.generate
|
55
|
+
when 'init'
|
56
|
+
Resuby::CLI.init
|
57
|
+
else
|
58
|
+
Optimist::die "Unknonwn subcommand #{@subcommand.inspect}"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
module Resuby::CLI
|
2
|
+
def self.generate
|
3
|
+
resume = Resuby::Resume.new
|
4
|
+
ext =
|
5
|
+
if @opts[:yaml]
|
6
|
+
'.yaml'
|
7
|
+
elsif @opts[:json]
|
8
|
+
'.json'
|
9
|
+
else
|
10
|
+
nil
|
11
|
+
end
|
12
|
+
resume.read_source(@opts[:data], ext)
|
13
|
+
resume.save_resume(@opts[:output])
|
14
|
+
resume.compile_styles
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.init
|
18
|
+
unless @opts[:force]
|
19
|
+
if File.file?(@opts[:output]) && File.size?(@opts[:output])
|
20
|
+
print "#{@opts[:output]} already exists, would you like to proceed (Y/N)? "
|
21
|
+
proceed = gets.chomp
|
22
|
+
unless proceed == 'Y'
|
23
|
+
warn 'Aborted!'
|
24
|
+
exit 1
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
template = {
|
29
|
+
'name'=> 'Bob Smith',
|
30
|
+
'contact'=> [
|
31
|
+
'(321) 321-4321',
|
32
|
+
'bob.smith@resuby.com',
|
33
|
+
],
|
34
|
+
'profile'=> 'This section is optional, but it is a good place to write a short paragraph about yourself.',
|
35
|
+
'experience'=> [
|
36
|
+
{
|
37
|
+
'title'=> 'Position 1',
|
38
|
+
'subtitle'=> 'Company 1',
|
39
|
+
'desc'=> 'Jan 2018 - present',
|
40
|
+
'data'=> [
|
41
|
+
'Responsibility/accomplishment 1',
|
42
|
+
'Responsibility/accomplishment 2',
|
43
|
+
'Responsibility/accomplishment 3',
|
44
|
+
],
|
45
|
+
},{
|
46
|
+
'title'=> 'Position 2',
|
47
|
+
'subtitle'=> 'Company 2',
|
48
|
+
'desc'=> 'Jan 2017 - Jan 2018',
|
49
|
+
'data'=> [
|
50
|
+
'Responsibility/accomplishment 1',
|
51
|
+
'Responsibility/accomplishment 2',
|
52
|
+
'Responsibility/accomplishment 3',
|
53
|
+
],
|
54
|
+
}
|
55
|
+
],
|
56
|
+
'projects'=> [
|
57
|
+
{
|
58
|
+
'title'=> 'Project 1',
|
59
|
+
'subtitle'=> 'Company 1',
|
60
|
+
'desc'=> 'Aug 2018 - present',
|
61
|
+
'data'=> [
|
62
|
+
'Responsibility/accomplishment 1',
|
63
|
+
'Responsibility/accomplishment 2',
|
64
|
+
'Responsibility/accomplishment 3',
|
65
|
+
]
|
66
|
+
},{
|
67
|
+
'title'=> 'Project 2',
|
68
|
+
'subtitle'=> 'Company 2',
|
69
|
+
'desc'=> 'Mar 2017 - Jan 2018',
|
70
|
+
'data'=> [
|
71
|
+
'Responsibility/accomplishment 1',
|
72
|
+
'Responsibility/accomplishment 2',
|
73
|
+
'Responsibility/accomplishment 3',
|
74
|
+
],
|
75
|
+
}
|
76
|
+
],
|
77
|
+
'education'=> [
|
78
|
+
{
|
79
|
+
'title' => 'Some University',
|
80
|
+
'desc' => 'Aug 2010 - May 2014',
|
81
|
+
'data' => [
|
82
|
+
'Degree, GPA',
|
83
|
+
],
|
84
|
+
}
|
85
|
+
],
|
86
|
+
'skills'=> [
|
87
|
+
{
|
88
|
+
'desc' => 'Languages',
|
89
|
+
'data' => [
|
90
|
+
'Ruby, Python',
|
91
|
+
'HTML, CSS, Javascript',
|
92
|
+
],
|
93
|
+
},{
|
94
|
+
'desc' => 'Tools',
|
95
|
+
'data' => [
|
96
|
+
'Tool 1, Tool 2',
|
97
|
+
'Tool 3, Tool 4',
|
98
|
+
],
|
99
|
+
},
|
100
|
+
],
|
101
|
+
}
|
102
|
+
puts "Storing template at #{@opts[:output]}"
|
103
|
+
if @opts[:yaml]
|
104
|
+
File.open(@opts[:output], 'w') { |f| f.puts template.to_yaml }
|
105
|
+
elsif @opts[:json]
|
106
|
+
File.open(@opts[:output], 'w') { |f| f.puts JSON.pretty_generate(template) }
|
107
|
+
else
|
108
|
+
puts 'Template format is not supported'
|
109
|
+
exit 1
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
data/lib/resuby/css/main.scss
CHANGED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'json'
|
3
|
+
require 'yaml'
|
4
|
+
require 'sass'
|
5
|
+
require 'resuby/version'
|
6
|
+
|
7
|
+
class Resuby::Resume
|
8
|
+
attr_reader :name, :contact_info, :sections, :template, :profile
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@template = File.read(File.join(__dir__, '../templates/resume.erb'))
|
12
|
+
end
|
13
|
+
|
14
|
+
def read_source(source, extension = nil)
|
15
|
+
puts "Reading in data from #{source}"
|
16
|
+
ext = extension || File.extname(source)
|
17
|
+
resume_data =
|
18
|
+
case ext
|
19
|
+
when '.yaml', '.yml'
|
20
|
+
YAML.load_file(source)
|
21
|
+
when '.json'
|
22
|
+
JSON.parse(File.read(source))
|
23
|
+
else
|
24
|
+
puts 'File type not supported'
|
25
|
+
exit 1
|
26
|
+
end
|
27
|
+
store_data(resume_data)
|
28
|
+
end
|
29
|
+
|
30
|
+
def store_data(data)
|
31
|
+
@name = data['name']
|
32
|
+
@contact_info = data['contact']
|
33
|
+
@profile = data['profile']
|
34
|
+
@sections = data.reject { |key, value| ['name', 'contact', 'profile'].include?(key) }
|
35
|
+
end
|
36
|
+
|
37
|
+
def render
|
38
|
+
ERB.new(self.template, nil, '-').result( binding )
|
39
|
+
end
|
40
|
+
|
41
|
+
def save_resume(file)
|
42
|
+
puts "Saving your resume at #{file}"
|
43
|
+
File.open(file, "w+") do |f|
|
44
|
+
f.write(render)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def compile_styles
|
49
|
+
options = {
|
50
|
+
cache: true,
|
51
|
+
syntax: :scss,
|
52
|
+
style: :compressed,
|
53
|
+
}
|
54
|
+
|
55
|
+
scss_file = File.join(__dir__, '../css/main.scss')
|
56
|
+
render = Sass::Engine.new(File.read(scss_file), options).render
|
57
|
+
Dir.mkdir(File.join(Dir.pwd, 'css'), 0755) unless File.directory?(File.join(Dir.pwd, 'css'))
|
58
|
+
File.write(File.join(Dir.pwd, 'css/main.css'), render)
|
59
|
+
end
|
60
|
+
end
|
@@ -12,45 +12,46 @@
|
|
12
12
|
<div class="header">
|
13
13
|
<h1 class="name"><%=@name%></h1>
|
14
14
|
<ul>
|
15
|
-
|
15
|
+
<%- for @info in @contact_info -%>
|
16
16
|
<li class="contact-info"><%=@info%></li>
|
17
|
-
|
17
|
+
<%- end -%>
|
18
18
|
</ul>
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<div>
|
22
|
-
|
22
|
+
<%- if @profile -%>
|
23
23
|
<h2 class="section-header">Profile</h2>
|
24
24
|
<span class="hr"></span>
|
25
25
|
<p class="section-profile">
|
26
26
|
<%=@profile%>
|
27
27
|
</p>
|
28
|
-
|
28
|
+
<%- end -%>
|
29
29
|
|
30
|
-
|
30
|
+
<%- for @section in @sections.keys -%>
|
31
31
|
<h2 class="section-header"><%=@section.split('_').map { |word| word.capitalize }.join(' ')%></h2>
|
32
32
|
<span class="hr"></span>
|
33
|
-
|
33
|
+
<%- for @row in @sections[@section] -%>
|
34
34
|
<div class="section-row">
|
35
35
|
<div class="section-desc">
|
36
36
|
<%=@row['desc']%>
|
37
37
|
</div>
|
38
38
|
<div class="section-info">
|
39
39
|
<ul>
|
40
|
-
|
40
|
+
<%- if @row['title'] -%>
|
41
41
|
<li class="info-title"><%=@row['title']%></li>
|
42
|
-
|
43
|
-
|
42
|
+
<%- end -%>
|
43
|
+
<%- if @row['subtitle'] -%>
|
44
44
|
<li class="info-subtitle"><%=@row['subtitle']%></li>
|
45
|
-
|
46
|
-
|
45
|
+
<%- end -%>
|
46
|
+
<%- for @data in @row['data'] -%>
|
47
47
|
<li><%=@data%></li>
|
48
|
-
|
48
|
+
<%- end -%>
|
49
49
|
</ul>
|
50
50
|
</div>
|
51
51
|
</div>
|
52
|
-
|
53
|
-
|
52
|
+
|
53
|
+
<%- end -%>
|
54
|
+
<%- end -%>
|
54
55
|
</div>
|
55
56
|
</body>
|
56
57
|
</html>
|
data/lib/resuby/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = '0.
|
1
|
+
module Resuby
|
2
|
+
VERSION = '0.1.1'.freeze
|
3
3
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resuby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario Lopez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sass
|
@@ -30,6 +30,26 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.0.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: optimist
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 3.0.0
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 4.0.0
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 3.0.0
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 4.0.0
|
33
53
|
description: |-
|
34
54
|
Resuby generates an HTML and CSS resume that you can access with your
|
35
55
|
browser. You simply define the content of your resume in a YAML file, and
|
@@ -44,7 +64,11 @@ files:
|
|
44
64
|
- README.md
|
45
65
|
- bin/resuby
|
46
66
|
- lib/resuby.rb
|
67
|
+
- lib/resuby/cli/banners.rb
|
68
|
+
- lib/resuby/cli/cli.rb
|
69
|
+
- lib/resuby/cli/exe.rb
|
47
70
|
- lib/resuby/css/main.scss
|
71
|
+
- lib/resuby/resume/resume.rb
|
48
72
|
- lib/resuby/templates/resume.erb
|
49
73
|
- lib/resuby/version.rb
|
50
74
|
homepage: https://github.com/mardotio/resuby
|