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.
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 'Advanced creative platform for online advertising', start_date: 'November 2014', end_date: 'January 2016' do
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
 
@@ -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
- <% project.technologies.each do |technology| %>
51
- <li><%= technology %></li>
52
- <% end %>
53
- </ul>
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
- <h4>Achievements</h4>
56
- <ul>
57
- <% project.achievements.each do |achievement| %>
58
- <li><%= achievement %></li>
59
- <% end %>
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
- <h3><%= certificate.authority %> – <%= certificate.title %> <% if certificate.start_date && certificate.end_date %>(<%= certificate.start_date %> – <%= certificate.end_date %>)<% end %></h3>
76
- <div><a href="<%= certificate.url %>"><%= certificate.license_number %></a></div>
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.export!(options[:type], ARGV[1])
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
- @profile
23
- end
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
- def self.export!(type, template_path)
26
- case type
27
- when :html
28
- require 'tilt'
29
- puts Tilt.new(template_path).render(self.profile)
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module FullTime
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
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.2.0
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-19 00:00:00.000000000 Z
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