resuby 0.0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|