class ResumeBuilder
Attributes
classifides[RW]
resume[RW]
Public Class Methods
new(classified_lines)
click to toggle source
# File lib/classes/resume_builder.rb, line 5 def initialize(classified_lines) @classifides = classified_lines @length = classified_lines.length end
Public Instance Methods
add_bullet_to_resume()
click to toggle source
# File lib/classes/resume_builder.rb, line 178 def add_bullet_to_resume bullets.merge!({@line_number => @bullet}) add_to_all_types(@line_number) add_to_all_types(header_number?) end
add_header_to_resume()
click to toggle source
# File lib/classes/resume_builder.rb, line 171 def add_header_to_resume headers.merge!({@line_number => @header}) add_to_all_types(@line_number) add_to_all_types(@section_number) end
add_section_to_resume()
click to toggle source
# File lib/classes/resume_builder.rb, line 166 def add_section_to_resume sections.merge!({@line_number => @all_type}) add_to_all_types(@line_number) end
add_to_all_types(id)
click to toggle source
# File lib/classes/resume_builder.rb, line 150 def add_to_all_types(id) if all_types[id].nil? all_types[id] = [@all_type] else all_types[id] += [@all_type] end end
all_types()
click to toggle source
# File lib/classes/resume_builder.rb, line 307 def all_types @all_types ||= {} end
build_resume()
click to toggle source
# File lib/classes/resume_builder.rb, line 138 def build_resume reset_header_x_start @length.times do |n| set_classifide(n) unless @classifide.type? unless @classifide.type == "name" or @classifide.type == "email" or @classifide.type == "phone" or @classifide.type == "address" send(@classifide.type + "_build") end end end end
bullet_build()
click to toggle source
# File lib/classes/resume_builder.rb, line 219 def bullet_build @header_x_start = true @bullet = Bullet.new(@classifide, bullet_parent) @all_type = @bullet add_bullet_to_resume end
bullet_parent()
click to toggle source
# File lib/classes/resume_builder.rb, line 209 def bullet_parent if all_types[header_number?].nil? @all_type = create_blank_classifide add_to_all_types(-1) all_types[-1][0] else all_types[header_number?][0] end end
bullets()
click to toggle source
# File lib/classes/resume_builder.rb, line 303 def bullets @bullets ||= {} end
check_for_address_in_header()
click to toggle source
# File lib/classes/resume_builder.rb, line 31 def check_for_address_in_header if @classifide.address? and @classifide.type? @classifide.type = "address" end end
check_for_email_in_header()
click to toggle source
# File lib/classes/resume_builder.rb, line 25 def check_for_email_in_header if !@classifide.many_words? and @classifide.email? and @classifide.type? @classifide.type = "email" end end
check_for_gaps()
click to toggle source
# File lib/classes/resume_builder.rb, line 234 def check_for_gaps header_classifications.each do |classification| if @classifide.send(classification).nil? if !classifide_after_after.send(classification).nil? @classifide.set_new_value(classification, classifide_after_after.send(classification)) @header_x_start = "almost" end end end end
check_for_name_in_header()
click to toggle source
# File lib/classes/resume_builder.rb, line 19 def check_for_name_in_header if !@classifide.many_words? and !@classifide.name? and @classifide.type? @classifide.type = "name" end end
check_for_phone_in_header()
click to toggle source
# File lib/classes/resume_builder.rb, line 37 def check_for_phone_in_header if !@classifide.many_words? and @classifide.phone? and @classifide.type? @classifide.type = "phone" end end
check_header()
click to toggle source
# File lib/classes/resume_builder.rb, line 43 def check_header if header_line_number? check_for_name_in_header check_for_email_in_header check_for_address_in_header check_for_phone_in_header end end
check_obvious_types()
click to toggle source
# File lib/classes/resume_builder.rb, line 72 def check_obvious_types if !@classifide.institution? and @classifide.type? and !@classifide.date? and !@classifide.city? and !@classifide.profession? and !@classifide.many_words? and @classifide.section? @classifide.type = "section" end if @classifide.many_words? and @classifide.verbs? and @classifide.type? and !@classifide.date? @classifide.type = "bullet" end if !@classifide.institution? and @classifide.type? and !@classifide.date? and !@classifide.city? and !@classifide.profession? and !@classifide.section? @classifide.type = "bullet" end if @classifide.institution? and @classifide.type? and @classifide.date? and @classifide.city? and @classifide.profession? @classifide.type = "header" end if @classifide.type? and ((@classifide.institution? and @classifide.date? and @classifide.city? and @classifide.profession?) or (@classifide.institution? and @classifide.date? and @classifide.city?) or (@classifide.institution? and @classifide.date? and !@classifide.many_words?) or (@classifide.date? and @classifide.city? and @classifide.profession? and !@classifide.many_words?)) @classifide.type = "header_x" end if @classifide.type? and @classifide.many_words? and !@classifide.verbs? and (@classifide.profession? or @classifide.city? or @classifide.institution?) @classifide.type = "header_x" end end
classifide_after()
click to toggle source
# File lib/classes/resume_builder.rb, line 52 def classifide_after if @line_number == @length - 1 @classifide_after = @classifides[@line_number] else @classifide_after = @classifides[@line_number + 1] end end
classifide_after_after()
click to toggle source
# File lib/classes/resume_builder.rb, line 60 def classifide_after_after if @line_number >= @length - 2 @classifide_after = @classifides[@line_number] else @classifide_after = @classifides[@line_number + 2] end end
classifide_before()
click to toggle source
# File lib/classes/resume_builder.rb, line 68 def classifide_before @classifide_before = @classifides[@line_number - 1] end
combine_text()
click to toggle source
# File lib/classes/resume_builder.rb, line 245 def combine_text() end
create_blank_classifide()
click to toggle source
# File lib/classes/resume_builder.rb, line 206 def create_blank_classifide @blank_classifide = Classifide.new(id: -1) end
first_pass()
click to toggle source
# File lib/classes/resume_builder.rb, line 101 def first_pass @length.times do |n| set_classifide(n) check_header check_obvious_types end end
header_build()
click to toggle source
# File lib/classes/resume_builder.rb, line 197 def header_build @bullet = nil @header_number = @line_number @header = Header.new(@classifide) @header_x_start = true @all_type = @header add_header_to_resume end
header_line_number?()
click to toggle source
# File lib/classes/resume_builder.rb, line 15 def header_line_number? ((@line_number + 1)/@length).to_f <= 0.10 end
header_number?()
click to toggle source
# File lib/classes/resume_builder.rb, line 226 def header_number? if @header_number.nil? section_number? else @header_number end end
header_x_build()
click to toggle source
# File lib/classes/resume_builder.rb, line 249 def header_x_build @header_number = @line_number if @header_x_start == true if classifide_after.type == "header_x" header_classifications.each do |classification| if @classifide.send(classification).nil? @classifide.set_new_value(classification, classifide_after.send(classification)) end end @classifide.set_new_value("text", @classifide.text + ", " + classifide_after.text) if classifide_after_after.type == "header_x" check_for_gaps if @header_x_start == 'almost' @classifide.set_new_value("text", @classifide.text + ", " + classifide_after_after.text) end @header_x_start = false unless @header_x_start == "almost" else @header_x_start = false end end @header = Header.new(@classifide) @all_type = @header add_header_to_resume else if @header_x_start == "almost" @header_x_start == "almost_closer" else @header_x_start = true end end end
headers()
click to toggle source
# File lib/classes/resume_builder.rb, line 299 def headers @headers ||= {} end
previous_section_headers?()
click to toggle source
# File lib/classes/resume_builder.rb, line 193 def previous_section_headers? !headers[@section_number].nil? end
reset_header_x_start()
click to toggle source
# File lib/classes/resume_builder.rb, line 134 def reset_header_x_start @header_x_start = true end
second_pass()
click to toggle source
# File lib/classes/resume_builder.rb, line 109 def second_pass @length.times do |n| set_classifide(n) if !@classifide.institution? and @classifide.type? and !@classifide.date? and !@classifide.city? and !@classifide.profession? and !@classifide.many_words? if (@classifide_after.institution? and @classifide_after.profession?) or (!@classifide_after.institution? and !@classifide_after.profession?) @classifide.type = "section" end end if (@classifide.institution? or @classifide.profession?) and !@classifide.many_words? and @classifide.type? @classifide.type = "header_x" end if !@classifide.institution? and @classifide.profession? and @classifide.type? @classifide.type = "header_x" end if @classifide.type? and @classifide.more_words_than?(10) @classifide.type = "bullet" end end end
section_build()
click to toggle source
# File lib/classes/resume_builder.rb, line 158 def section_build @header_number = nil @header_x_start = true @section_number = @line_number @all_type = @classifide add_section_to_resume end
section_number?()
click to toggle source
# File lib/classes/resume_builder.rb, line 184 def section_number? if @section_number.nil? @section_number = -1 else @section_number end end
sections()
click to toggle source
# File lib/classes/resume_builder.rb, line 295 def sections @sections ||= {} end
set_classifide(line_number)
click to toggle source
# File lib/classes/resume_builder.rb, line 10 def set_classifide(line_number) @classifide = @classifides[line_number] @line_number = line_number end