full_time 1.0.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.
@@ -0,0 +1,7 @@
1
+ module FullTime
2
+ class Course
3
+ extend FullTime::DSL
4
+
5
+ dsl_attr_accessor :title, :company, :homepage
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module FullTime
2
+ module DSL
3
+ def dsl_attr_accessor(*attributes)
4
+ attributes.each do |attr|
5
+ define_method attr do |*args|
6
+ case args.size
7
+ when 0 then instance_variable_get("@#{attr}")
8
+ when 1 then instance_variable_set("@#{attr}", args.first)
9
+ else raise ArgumentError, "wrong number of arguments (#{args.size} for 0..1)"
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module FullTime
2
+ class Education
3
+ def university(name = nil, start_date: nil, end_date: nil, &block)
4
+ if block_given?
5
+ @university = University.new
6
+ @university.name = name
7
+ @university.start_date = start_date
8
+ @university.end_date = end_date
9
+ @university.instance_eval(&block)
10
+ end
11
+
12
+ @university
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module FullTime
2
+ class Employment
3
+ attr_accessor :companies
4
+
5
+ def initialize
6
+ @companies = []
7
+ end
8
+
9
+ def company(name = nil, &block)
10
+ if block_given?
11
+ company = Company.new
12
+ company.name = name
13
+ company.instance_eval(&block)
14
+ @companies << company
15
+ company
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ module FullTime
2
+ class List < Array
3
+ def •(item)
4
+ self << item
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,55 @@
1
+ module FullTime
2
+ class Profile
3
+ extend FullTime::DSL
4
+
5
+ dsl_attr_accessor :name, :email, :homepage, :github, :linkedin, :twitter, :goodreads, :location, :extra
6
+
7
+ def initialize
8
+ @skills = List.new
9
+ @interests = List.new
10
+ end
11
+
12
+ def skills(&block)
13
+ if block_given?
14
+ @skills.instance_eval(&block)
15
+ end
16
+
17
+ @skills
18
+ end
19
+
20
+ def employment(&block)
21
+ if block_given?
22
+ @employment = Employment.new
23
+ @employment.instance_eval(&block)
24
+ end
25
+
26
+ @employment
27
+ end
28
+
29
+ def education(&block)
30
+ if block_given?
31
+ @education = Education.new
32
+ @education.instance_eval(&block)
33
+ end
34
+
35
+ @education
36
+ end
37
+
38
+ def certification(&block)
39
+ if block_given?
40
+ @certification = Certification.new
41
+ @certification.instance_eval(&block)
42
+ end
43
+
44
+ @certification
45
+ end
46
+
47
+ def interests(&block)
48
+ if block_given?
49
+ @interests.instance_eval(&block)
50
+ end
51
+
52
+ @interests
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,30 @@
1
+ module FullTime
2
+ class Project
3
+ extend FullTime::DSL
4
+
5
+ dsl_attr_accessor :homepage, :description, :title
6
+
7
+ attr_accessor :name, :start_date, :end_date
8
+
9
+ def initialize
10
+ @technologies = List.new
11
+ @achievements = List.new
12
+ end
13
+
14
+ def technologies(&block)
15
+ if block_given?
16
+ @technologies.instance_eval(&block)
17
+ end
18
+
19
+ @technologies
20
+ end
21
+
22
+ def achievements(&block)
23
+ if block_given?
24
+ @achievements.instance_eval(&block)
25
+ end
26
+
27
+ @achievements
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,9 @@
1
+ module FullTime
2
+ class University
3
+ extend FullTime::DSL
4
+
5
+ dsl_attr_accessor :title
6
+
7
+ attr_accessor :name, :start_date, :end_date
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module FullTime
2
+ VERSION = "1.0.0"
3
+ end
data/lib/full_time.rb ADDED
@@ -0,0 +1,19 @@
1
+ require "full_time/dsl"
2
+ require "full_time/list"
3
+
4
+ require "full_time/profile"
5
+ require "full_time/employment"
6
+ require "full_time/education"
7
+ require "full_time/certification"
8
+ require "full_time/company"
9
+ require "full_time/project"
10
+ require "full_time/university"
11
+ require "full_time/course"
12
+
13
+ module FullTime
14
+ def self.profile(&block)
15
+ profile = Profile.new
16
+ profile.instance_eval(&block)
17
+ profile
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: full_time
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrew Babichev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-11-15 00:00:00.000000000 Z
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: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Handle your CV like a pro
70
+ email: andrew.babichev@gmail.com
71
+ executables:
72
+ - console
73
+ - fulltime
74
+ - rake
75
+ - rspec
76
+ - setup
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - ".gitignore"
81
+ - ".rspec"
82
+ - Gemfile
83
+ - README.md
84
+ - Rakefile
85
+ - bin/console
86
+ - bin/fulltime
87
+ - bin/rake
88
+ - bin/rspec
89
+ - bin/setup
90
+ - example/cv.html
91
+ - example/cv.rb
92
+ - example/simple-grid.css
93
+ - example/template.html.erb
94
+ - full_time.gemspec
95
+ - lib/full_time.rb
96
+ - lib/full_time/certification.rb
97
+ - lib/full_time/company.rb
98
+ - lib/full_time/course.rb
99
+ - lib/full_time/dsl.rb
100
+ - lib/full_time/education.rb
101
+ - lib/full_time/employment.rb
102
+ - lib/full_time/list.rb
103
+ - lib/full_time/profile.rb
104
+ - lib/full_time/project.rb
105
+ - lib/full_time/university.rb
106
+ - lib/full_time/version.rb
107
+ homepage: https://github.com/Tensho/full_time
108
+ licenses:
109
+ - MIT
110
+ metadata: {}
111
+ post_install_message: Thanks for installing full_time!
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.0'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubyforge_project:
127
+ rubygems_version: 2.7.6
128
+ signing_key:
129
+ specification_version: 4
130
+ summary: Simple CV DSL
131
+ test_files: []