virgild-resumetools 0.2.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/CHANGES +0 -0
- data/LICENSE +22 -0
- data/README.md +203 -0
- data/Rakefile +38 -0
- data/examples/sample.pdf +1751 -0
- data/examples/sample.resume +150 -0
- data/lib/grammars/resume.treetop +389 -0
- data/lib/resume/pdf.rb +158 -0
- data/lib/resume/resume.rb +231 -0
- data/lib/resume/text_reader.rb +107 -0
- data/lib/resumetools/version.rb +35 -0
- data/lib/resumetools.rb +34 -0
- data/spec/grammar_spec.rb +93 -0
- data/spec/read_resume_spec.rb +61 -0
- data/spec/rendering_pdf_spec.rb +37 -0
- data/spec/resume_spec.rb +213 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +39 -0
- data/tasks/default.rake +1 -0
- data/tasks/gem.rake +77 -0
- data/tasks/package.rake +9 -0
- data/tasks/rdoc.rake +29 -0
- data/tasks/rspec.rake +16 -0
- metadata +128 -0
data/CHANGES
ADDED
File without changes
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Resume Tools, Copyright (c) 2009 Virgil Dimaguila
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person
|
4
|
+
obtaining a copy of this software and associated documentation
|
5
|
+
files (the "Software"), to deal in the Software without
|
6
|
+
restriction, including without limitation the rights to use,
|
7
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the
|
9
|
+
Software is furnished to do so, subject to the following
|
10
|
+
conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
17
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
19
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
20
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
21
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,203 @@
|
|
1
|
+
ResumeTools
|
2
|
+
===========
|
3
|
+
|
4
|
+
http://github.com/virgild/resumetools
|
5
|
+
by Virgil Dimaguila
|
6
|
+
|
7
|
+
DESCRIPTION:
|
8
|
+
------------
|
9
|
+
|
10
|
+
ResumeTools is a set of simple classes and utilities for building basic resumes and generating
|
11
|
+
resume documents.
|
12
|
+
|
13
|
+
### Structure of a Resume
|
14
|
+
|
15
|
+
A `resume` is a document that has personal info, and a list of `sections`. The personal info
|
16
|
+
has contact information like telephone number, e-mail address, and home address. Sections
|
17
|
+
are the main divisions in the resume document (e.g., Objectives, Experience, Education).
|
18
|
+
|
19
|
+
#### Header and Personal Info
|
20
|
+
|
21
|
+
The resume header has the person's name and contact information. The header has the following
|
22
|
+
properties:
|
23
|
+
|
24
|
+
* `full_name`
|
25
|
+
* `telephone`
|
26
|
+
* `email`
|
27
|
+
* `address1`
|
28
|
+
* `address2`
|
29
|
+
* `url`
|
30
|
+
|
31
|
+
#### Sections
|
32
|
+
|
33
|
+
Sections are the main divisions of a resume. Each section has a `title`, and can have
|
34
|
+
the following properties:
|
35
|
+
|
36
|
+
* List of `items`
|
37
|
+
* List of `periods`
|
38
|
+
* A `paragraph`
|
39
|
+
|
40
|
+
#### Periods
|
41
|
+
|
42
|
+
`Periods` are any information that has a date and a location. Each period has a `title`,
|
43
|
+
and can have the following properties:
|
44
|
+
|
45
|
+
* `organization`
|
46
|
+
* `location`
|
47
|
+
* `date started` and `date ended`
|
48
|
+
* A list of `items`
|
49
|
+
|
50
|
+
#### Items
|
51
|
+
|
52
|
+
An item is simple text information that is part of a `items` list.
|
53
|
+
|
54
|
+
|
55
|
+
DEPENDENCIES:
|
56
|
+
-------------
|
57
|
+
|
58
|
+
ResumeTools depends on the following Ruby gems:
|
59
|
+
|
60
|
+
* extlib
|
61
|
+
* prawn
|
62
|
+
* treetop
|
63
|
+
|
64
|
+
|
65
|
+
INSTALLATION:
|
66
|
+
-------------
|
67
|
+
|
68
|
+
ResumeTools can be installed via rubygems:
|
69
|
+
|
70
|
+
$ sudo gem install resumetools
|
71
|
+
|
72
|
+
|
73
|
+
CODE:
|
74
|
+
-----
|
75
|
+
|
76
|
+
The source code is available at:
|
77
|
+
|
78
|
+
http://github.com/virgild/resumetools.git
|
79
|
+
|
80
|
+
To get the source code using git:
|
81
|
+
|
82
|
+
$ git clone git://github.com/virgild/resumetools.git
|
83
|
+
|
84
|
+
|
85
|
+
USAGE:
|
86
|
+
------
|
87
|
+
|
88
|
+
Building a resume model
|
89
|
+
|
90
|
+
require 'resumetools'
|
91
|
+
|
92
|
+
# Create a resume
|
93
|
+
myresume = ResumeTools::Resume.new
|
94
|
+
myresume.full_name = "Albert Einstein"
|
95
|
+
myresume.telephone = "(555) 123-4567"
|
96
|
+
myresume.address1 = "221 Relativity Circle"
|
97
|
+
myresume.address2 = "Princeton, NJ"
|
98
|
+
myresume.email = "albert.einstein@science.org"
|
99
|
+
|
100
|
+
# Add a section, "Career Goals"
|
101
|
+
myresume.create_section do |section|
|
102
|
+
section.title = "Career Goals"
|
103
|
+
section.para = "Work as a physicist and create a time machine"
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
EXAMPLES:
|
108
|
+
---------
|
109
|
+
|
110
|
+
Example of a resume text format:
|
111
|
+
|
112
|
+
#N Thomas B. Seeker
|
113
|
+
#A 1234 Northern Star Circle
|
114
|
+
#A Baltimore, MD 12345
|
115
|
+
#T (410) 555-1212
|
116
|
+
#E seeker@nettcom.com
|
117
|
+
#U http://nettcom.com/tseeker
|
118
|
+
|
119
|
+
= Qualifications Summary
|
120
|
+
---
|
121
|
+
Nine years of experience in designing, installing, and troubleshooting
|
122
|
+
computing systems; a proven track record in identifying problems and
|
123
|
+
developing innovative solutions.
|
124
|
+
---
|
125
|
+
|
126
|
+
= Technical Skills
|
127
|
+
|
128
|
+
- PROGRAMMING: C, C++, Visual BASIC, FORTRAN, Pascal, SQL, OSF/Motif,
|
129
|
+
UNIX Shell Script (sh, ksh, csh), BASIC, Clipper, Algol 68, and 80X86 Assembler.
|
130
|
+
|
131
|
+
- OPERATING SYSTEMS: UNIX (bsd & SVr3/r4), MS Windows, MS DOS, MS Windows NT,
|
132
|
+
Solaris, HP-UX, Ultrix, AIX, VAX/VMS, and Macintosh System 7.
|
133
|
+
|
134
|
+
= Professional Experience
|
135
|
+
|
136
|
+
+ Systems Engineer
|
137
|
+
>O Computer Engineering Corporation
|
138
|
+
>L Los Angeles, CA
|
139
|
+
>D 1993 to Present
|
140
|
+
- Provide systems engineering, software engineering, technical consulting, and
|
141
|
+
marketing services as a member of the Systems Integration Division of a
|
142
|
+
software engineering consulting company.
|
143
|
+
|
144
|
+
+ Systems Analyst
|
145
|
+
>O Business Consultants, Inc.
|
146
|
+
>L Washington, DC
|
147
|
+
>D 1990 to 1993
|
148
|
+
- Provided technical consulting services to the Smithsonian Institute's
|
149
|
+
Information Technology Services Group, Amnesty International, and
|
150
|
+
internal research and development initiatives.
|
151
|
+
|
152
|
+
= Education
|
153
|
+
|
154
|
+
+ Computer Systems Technology Program
|
155
|
+
>O Air Force Institute of Technology (AFIT)
|
156
|
+
|
157
|
+
+ BS, Mathematics/Computer Science
|
158
|
+
>O University of California, Los Angeles (UCLA)
|
159
|
+
|
160
|
+
= Specialized Training
|
161
|
+
|
162
|
+
- Database Administration, Performance Tuning, and Benchmarking with
|
163
|
+
Oracle7; Oracle Corporation.
|
164
|
+
- Software Requirements Engineering and Management Course;
|
165
|
+
Computer Applications International Corporation.
|
166
|
+
- X.400 Messaging and Allied Communications Procedures-123 Profile;
|
167
|
+
ComTechnologies, Inc.
|
168
|
+
|
169
|
+
See the `examples` directory for a sample resume text and its generated
|
170
|
+
PDF document.
|
171
|
+
|
172
|
+
|
173
|
+
LIMITATIONS:
|
174
|
+
------------
|
175
|
+
|
176
|
+
|
177
|
+
LICENSE:
|
178
|
+
--------
|
179
|
+
|
180
|
+
(The MIT License)
|
181
|
+
|
182
|
+
Resume Tools, Copyright (c) 2009 Virgil Dimaguila
|
183
|
+
|
184
|
+
Permission is hereby granted, free of charge, to any person
|
185
|
+
obtaining a copy of this software and associated documentation
|
186
|
+
files (the "Software"), to deal in the Software without
|
187
|
+
restriction, including without limitation the rights to use,
|
188
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
189
|
+
copies of the Software, and to permit persons to whom the
|
190
|
+
Software is furnished to do so, subject to the following
|
191
|
+
conditions:
|
192
|
+
|
193
|
+
The above copyright notice and this permission notice shall be
|
194
|
+
included in all copies or substantial portions of the Software.
|
195
|
+
|
196
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
197
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
198
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
199
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
200
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
201
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
202
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
203
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__), "lib"))
|
2
|
+
$:.unshift(lib_dir)
|
3
|
+
$:.uniq!
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'rake'
|
7
|
+
require 'rake/testtask'
|
8
|
+
require 'rake/rdoctask'
|
9
|
+
require 'rake/packagetask'
|
10
|
+
require 'rake/gempackagetask'
|
11
|
+
require 'spec/rake/spectask'
|
12
|
+
|
13
|
+
require File.join(File.dirname(__FILE__), 'lib', 'resumetools', 'version')
|
14
|
+
|
15
|
+
PKG_DISPLAY_NAME = "ResumeTools"
|
16
|
+
PKG_NAME = PKG_DISPLAY_NAME.downcase
|
17
|
+
PKG_VERSION = ResumeTools::VERSION::STRING
|
18
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
19
|
+
RELEASE_NAME = "REL #{PKG_VERSION}"
|
20
|
+
PKG_SUMMARY = "Resume generation and writing tools"
|
21
|
+
PKG_DESCRIPTION = <<-DESC
|
22
|
+
Resume generation and writing tools
|
23
|
+
DESC
|
24
|
+
|
25
|
+
PKG_FILES = FileList[
|
26
|
+
"examples/**/*",
|
27
|
+
"lib/**/*",
|
28
|
+
"spec/**/*",
|
29
|
+
"vendor/**/*",
|
30
|
+
"tasks/**/*",
|
31
|
+
"[A-Z]*",
|
32
|
+
"README.md",
|
33
|
+
"Rakefile"
|
34
|
+
].exclude(/[_\.]git$/, 'TODO')
|
35
|
+
WINDOWS = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false
|
36
|
+
SUDO = WINDOWS ? '' : ('sudo' unless ENV['SUDOLESS'])
|
37
|
+
|
38
|
+
Dir["tasks/**/*.rake"].each { |task| load task }
|