Class: Jobvite::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/jobvite/client.rb

Constant Summary collapse

DEFAULT_BASE_URL =
'http://www.jobvite.com/CompanyJobs/Xml.aspx?c='

Instance Method Summary collapse

Constructor Details

#initialize(company_id, base_url = DEFAULT_BASE_URL) ⇒ Client

Returns a new instance of Client.



11
12
13
14
# File 'lib/jobvite/client.rb', line 11

def initialize(company_id, base_url = DEFAULT_BASE_URL)
  @company_id = company_id
  @url = base_url + @company_id
end

Instance Method Details

#attributes_from(node) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/jobvite/client.rb', line 25

def attributes_from(node)
  {
    :id => extract_text(node, 'id'),
    :title => extract_text(node, 'title'),
    :requisition_id => extract_text(node, 'requisitionid'),
    :category => extract_text(node, 'category'),
    :location => extract_text(node, 'location'),
    :job_type => extract_text(node, 'jobtype'),
    :date => extract_date(node, 'date'),
    :detail_url => extract_text(node, 'detail-url'),
    :apply_url => extract_text(node, 'apply-url'),
    :description => extract_text(node, 'description'),
    :brief_description => extract_text(node, 'briefdescription'),
  }
end

#extract_date(node, name) ⇒ Object



45
46
47
# File 'lib/jobvite/client.rb', line 45

def extract_date(node, name)
  Date.parse extract_text(node, name)
end

#extract_text(node, name) ⇒ Object



41
42
43
# File 'lib/jobvite/client.rb', line 41

def extract_text(node, name)
  node.at(name).text
end

#jobsObject

Public: Returns a collection of jobs for the company specified



17
18
19
20
21
22
23
# File 'lib/jobvite/client.rb', line 17

def jobs
  doc = Nokogiri::XML open(@url)

  doc.search('//job').map { |node|
    Job.new(attributes_from(node))
  }
end