module ResumeTools::TextReader::ClassMethods
Public Instance Methods
from_text(text)
click to toggle source
Builds a new Resume
instance from text
# File lib/resumetools/resume/text_reader.rb, line 37 def from_text(text) parser = ResumeTools::ResumeGrammarParser.new result = parser.parse(text) if result.nil? raise ParseException.new(parser.failure_reason) end resume = ResumeTools::Resume.new current_section = nil current_period = nil result.elements.each do |element| case element.data_type when :item item = ::ResumeTools::Item.new(:text => element.value) if current_period current_period.add_item(item) elsif current_section current_section.add_item(item) end when :period current_period = ::ResumeTools::Period.new(:title => element.value) current_section.add_period(current_period) if current_section when :section current_period = nil # Reset period current_section = ::ResumeTools::Section.new(:title => element.value) resume.add_section(current_section) when :period_location current_period.location = element.value if current_period when :period_organization current_period.organization = element.value if current_period when :period_dates if current_period dates = element.value.split("to", 2).map { |d| d.strip } if dates.length == 1 current_period.dtend = dates[0] current_period.dtstart = nil elsif dates.length == 2 current_period.dtstart = dates[0] current_period.dtend = dates[1] end end when :paragraph current_section.para = element.value if current_section when :contact_name resume.full_name = element.value when :contact_telephone resume.telephone = element.value when :contact_email resume.email = element.value when :contact_address if resume.address1.blank? resume.address1 = element.value elsif resume.address2.blank? resume.address2 = element.value end when :contact_url resume.url = element.value end end resume end