class JobParser::Facets::Deadline

Public Instance Methods

parse() click to toggle source
# File lib/jobparser/facets/deadline.rb, line 6
def parse
  special_case_result = use_special_case(:deadline)
  return special_case_result unless special_case_result.nil?

  regex = /(Apply before|Closing Date):\s*(.+)$/i
  result = ""
  loop_over_elements { |name, elem|
    regex.match(elem.content) { |m|
      result = Cleaner.strip_all_white_space(m[2])
    }

    if result.empty?
      result = Cleaner.strip_all_white_space(elem.content) if elem_is_date(elem)
    end
  }
  result
end

Private Instance Methods

elem_is_date(elem) click to toggle source
# File lib/jobparser/facets/deadline.rb, line 26
def elem_is_date(elem)
  content = Cleaner.strip_all_white_space(elem.content)
  words = content.split(" ").length
  return false if words > 10 || words < 2
  is_date = false
  begin
    Date.parse(content)
    is_date = true
  rescue ArgumentError
    is_date = false
  end
  is_date
end