full_time 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/README.md +17 -33
- data/example/cv.html +331 -286
- data/example/cv.pdf +1628 -0
- data/example/cv.rb +5 -2
- data/example/template.html.erb +29 -18
- data/example/template.pdf.prawn +65 -0
- data/exe/full_time +2 -3
- data/lib/full_time.rb +14 -12
- data/lib/full_time/profile.rb +1 -1
- data/lib/full_time/version.rb +1 -1
- metadata +18 -2
data/example/cv.rb
CHANGED
@@ -11,6 +11,8 @@ FullTime.profile do
|
|
11
11
|
location 'Kiev, Ukraine, 08200 (open to relocate)'
|
12
12
|
extra 'Visa: Sponsorship required'
|
13
13
|
|
14
|
+
intro '10+ years in IT industry. Focused on cloud DevOps and backend web development. Fond of operating systems, networking, distributed systems, book reading, go, tea. Open source software contributor. Interested in relocation to Australia.'
|
15
|
+
|
14
16
|
skills do
|
15
17
|
• 'Languages: Ruby, SQL, JavaScript/CoffeeScript, HTML/Slim/Haml, CSS/SASS, Elixir, HCL'
|
16
18
|
• 'Frameworks: Rails'
|
@@ -32,6 +34,7 @@ FullTime.profile do
|
|
32
34
|
• 'OS/Execution Environment: MacOS, Linux, Docker'
|
33
35
|
• 'CMS: Refinery'
|
34
36
|
• 'IDE/Editor: RubyMine, Sublime Text, Vim'
|
37
|
+
• 'Services: Gmail, Mandrill, Pingdom, Geckoboard, HoneyBadger, Slack, Keybase, Zoom'
|
35
38
|
• 'Methodology: Kanban, Scrum'
|
36
39
|
end
|
37
40
|
|
@@ -41,7 +44,7 @@ FullTime.profile do
|
|
41
44
|
|
42
45
|
project 'Resolver', start_date: 'January 2016', end_date: 'Current' do
|
43
46
|
homepage 'https://resolver.co.uk'
|
44
|
-
description 'Free online tool for complaints and claims'
|
47
|
+
description 'Free online tool for complaints and claims.'
|
45
48
|
title 'Senior Software Engineer & Team Lead'
|
46
49
|
|
47
50
|
technologies do
|
@@ -97,7 +100,7 @@ FullTime.profile do
|
|
97
100
|
company 'GlobalLogic' do
|
98
101
|
homepage 'http://globallogic.com'
|
99
102
|
|
100
|
-
project '
|
103
|
+
project 'ACP', start_date: 'November 2014', end_date: 'January 2016' do
|
101
104
|
description 'Advanced creative platform for online advertising, which allows you to automate the processes related to creative services. It supports both platforms – desktop and mobile.'
|
102
105
|
title 'Senior Software Engineer'
|
103
106
|
|
data/example/template.html.erb
CHANGED
@@ -23,6 +23,10 @@
|
|
23
23
|
</header>
|
24
24
|
|
25
25
|
<section class="row">
|
26
|
+
<div class="col-12">
|
27
|
+
<h2>Intro</h2>
|
28
|
+
<div><%= intro %></div>
|
29
|
+
</div>
|
26
30
|
<div class="col-12">
|
27
31
|
<h2>Skills</h2>
|
28
32
|
<ul>
|
@@ -34,29 +38,32 @@
|
|
34
38
|
<div class="col-12">
|
35
39
|
<h2>Employment</h2>
|
36
40
|
<% employment.companies.each do |company| %>
|
37
|
-
<!-- companies should be presented as a list (<ul>) -->
|
38
41
|
<h3><%= company.name %></h3>
|
39
42
|
<div><a href="<%= company.homepage %>"><%= company.homepage %></a></div>
|
40
43
|
|
41
44
|
<% company.projects.each do |project| %>
|
42
45
|
<!-- projects should be presented as a list (<ul>) -->
|
43
|
-
<h4><%= project.name %> ( <%= project.start_date %> – <%= project.end_date %> )</h4>
|
44
|
-
<div><a href="<%= project.homepage %>"><%= project.homepage %></a></div>
|
45
|
-
<p><%= project.description %></p>
|
46
|
-
<div><%= project.title %></div>
|
47
|
-
|
48
|
-
<h5>Technologies</h5>
|
49
46
|
<ul>
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
47
|
+
<li>
|
48
|
+
<h4><%= project.name %> ( <%= project.start_date %> – <%= project.end_date %> )</h4>
|
49
|
+
<div><a href="<%= project.homepage %>"><%= project.homepage %></a></div>
|
50
|
+
<p><%= project.description %></p>
|
51
|
+
<div><%= project.title %></div>
|
54
52
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
53
|
+
<h5>Technologies</h5>
|
54
|
+
<ul>
|
55
|
+
<% project.technologies.each do |technology| %>
|
56
|
+
<li><%= technology %></li>
|
57
|
+
<% end %>
|
58
|
+
</ul>
|
59
|
+
|
60
|
+
<h4>Achievements</h4>
|
61
|
+
<ul>
|
62
|
+
<% project.achievements.each do |achievement| %>
|
63
|
+
<li><%= achievement %></li>
|
64
|
+
<% end %>
|
65
|
+
</ul>
|
66
|
+
</li>
|
60
67
|
</ul>
|
61
68
|
<% end %>
|
62
69
|
|
@@ -72,8 +79,12 @@
|
|
72
79
|
<h2>Certification</h2>
|
73
80
|
<% certification.certificates.each do |certificate| %>
|
74
81
|
<!-- certificates should be presented as a list (<ul>) -->
|
75
|
-
<
|
76
|
-
|
82
|
+
<ul>
|
83
|
+
<li>
|
84
|
+
<h3><%= certificate.authority %> – <%= certificate.title %> <% if certificate.start_date && certificate.end_date %>(<%= certificate.start_date %> – <%= certificate.end_date %>)<% end %></h3>
|
85
|
+
<div><a href="<%= certificate.url %>"><%= certificate.license_number %></a></div>
|
86
|
+
</li>
|
87
|
+
</ul>
|
77
88
|
<% end %>
|
78
89
|
</div>
|
79
90
|
<div class="col-12">
|
@@ -0,0 +1,65 @@
|
|
1
|
+
pdf.text "#{name} CV", size: 16, style: :bold
|
2
|
+
pdf.move_down 10
|
3
|
+
|
4
|
+
pdf.text "Email: #{email}"
|
5
|
+
pdf.text "Homepage: #{homepage}"
|
6
|
+
pdf.text "GitHub: #{github}"
|
7
|
+
pdf.text "LinkedIn: #{linkedin}"
|
8
|
+
pdf.text "Twitter: #{twitter}"
|
9
|
+
pdf.text "GoodReads: #{goodreads}"
|
10
|
+
pdf.move_down 10
|
11
|
+
|
12
|
+
pdf.text "Intro", size: 16, style: :bold
|
13
|
+
pdf.move_down 10
|
14
|
+
pdf.text intro
|
15
|
+
pdf.move_down 10
|
16
|
+
|
17
|
+
pdf.text "Skills", size: 16, style: :bold
|
18
|
+
pdf.move_down 10
|
19
|
+
skills.each do |skill|
|
20
|
+
pdf.text "• #{skill}"
|
21
|
+
end
|
22
|
+
|
23
|
+
pdf.move_down 10
|
24
|
+
pdf.text "Employment", size: 16, style: :bold
|
25
|
+
pdf.move_down 10
|
26
|
+
|
27
|
+
employment.companies.each do |company|
|
28
|
+
pdf.text company.name, size: 14, style: :bold
|
29
|
+
pdf.move_down 10
|
30
|
+
pdf.text "<a href=\"#{company.homepage}\">#{company.homepage}</a>", inline_format: true
|
31
|
+
pdf.move_down 10
|
32
|
+
|
33
|
+
company.projects.each do |project|
|
34
|
+
pdf.text "#{project.name} (#{project.start_date} – #{project.end_date})", size: 14, style: :bold
|
35
|
+
pdf.move_down 10
|
36
|
+
pdf.text project.description
|
37
|
+
pdf.move_down 10
|
38
|
+
pdf.text project.title
|
39
|
+
|
40
|
+
pdf.move_down 10
|
41
|
+
pdf.text "Technologies", size: 14, style: :bold
|
42
|
+
pdf.move_down 10
|
43
|
+
|
44
|
+
project.technologies.each do |technology|
|
45
|
+
pdf.text "• #{technology}"
|
46
|
+
end
|
47
|
+
|
48
|
+
pdf.move_down 10
|
49
|
+
pdf.text "Achievements", size: 14, style: :bold
|
50
|
+
pdf.move_down 10
|
51
|
+
|
52
|
+
project.achievements.each do |achievement|
|
53
|
+
pdf.text "• #{achievement}"
|
54
|
+
end
|
55
|
+
|
56
|
+
pdf.move_down 10
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
pdf.text "Education", size: 16, style: :bold
|
61
|
+
pdf.move_down 10
|
62
|
+
|
63
|
+
pdf.text education.university.name, size: 14
|
64
|
+
pdf.move_down 10
|
65
|
+
pdf.text "#{education.university.title} (#{education.university.start_date} - #{education.university.end_date})"
|
data/exe/full_time
CHANGED
@@ -8,11 +8,10 @@ require "full_time"
|
|
8
8
|
options = {}
|
9
9
|
|
10
10
|
OptionParser.new do |opts|
|
11
|
-
opts.banner = "Usage: full_time [options] input template"
|
11
|
+
opts.banner = "Usage: full_time [options] [input] [template]"
|
12
12
|
opts.separator ""
|
13
13
|
opts.separator "Options:"
|
14
14
|
|
15
|
-
opts.on('-t', '--type TARGET', %i(html linkedin), "Export type: html, linkedin")
|
16
15
|
opts.on('-v', '--version', "Version") do
|
17
16
|
puts FullTime::VERSION
|
18
17
|
exit
|
@@ -26,4 +25,4 @@ end.parse!(into: options)
|
|
26
25
|
# Read DSL
|
27
26
|
require ARGV[0]
|
28
27
|
|
29
|
-
FullTime.
|
28
|
+
puts FullTime.render(ARGV[1])
|
data/lib/full_time.rb
CHANGED
@@ -12,21 +12,23 @@ require "full_time/project"
|
|
12
12
|
require "full_time/university"
|
13
13
|
require "full_time/certificate"
|
14
14
|
|
15
|
+
require 'tilt'
|
16
|
+
|
15
17
|
module FullTime
|
16
|
-
def self.profile(&block)
|
17
|
-
if block_given?
|
18
|
-
@profile = Profile.new
|
19
|
-
@profile.instance_eval(&block)
|
20
|
-
end
|
21
18
|
|
22
|
-
|
23
|
-
|
19
|
+
class << self
|
20
|
+
def profile(&block)
|
21
|
+
if block_given?
|
22
|
+
@profile = Profile.new
|
23
|
+
@profile.instance_eval(&block)
|
24
|
+
end
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
@profile
|
27
|
+
end
|
28
|
+
|
29
|
+
def render(template_path)
|
30
|
+
Tilt.new(template_path).render(profile)
|
30
31
|
end
|
31
32
|
end
|
33
|
+
|
32
34
|
end
|
data/lib/full_time/profile.rb
CHANGED
@@ -2,7 +2,7 @@ module FullTime
|
|
2
2
|
class Profile
|
3
3
|
extend FullTime::DSL
|
4
4
|
|
5
|
-
dsl_attr_accessor :name, :email, :homepage, :github, :linkedin, :twitter, :goodreads, :location, :extra
|
5
|
+
dsl_attr_accessor :name, :email, :homepage, :github, :linkedin, :twitter, :goodreads, :location, :extra, :intro
|
6
6
|
|
7
7
|
def initialize
|
8
8
|
@skills = List.new
|
data/lib/full_time/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: full_time
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Babichev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: tilt
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -61,9 +75,11 @@ extra_rdoc_files: []
|
|
61
75
|
files:
|
62
76
|
- README.md
|
63
77
|
- example/cv.html
|
78
|
+
- example/cv.pdf
|
64
79
|
- example/cv.rb
|
65
80
|
- example/simple-grid.css
|
66
81
|
- example/template.html.erb
|
82
|
+
- example/template.pdf.prawn
|
67
83
|
- exe/full_time
|
68
84
|
- lib/full_time.rb
|
69
85
|
- lib/full_time/certificate.rb
|