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