Created
September 24, 2009 19:55
-
-
Save mguterl/192996 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Cb2rm::CareerBuilder | |
require 'defaultDriver' | |
def session_token | |
@session_token ||= session.sessionToken | |
end | |
def session | |
@session ||= begin_session.cB_BeginSessionResult | |
end | |
def begin_session | |
@soap.cB_BeginSession(:email => @email, :password => @password) | |
end | |
def get_resume(resume_id) | |
@soap.cB_GetResume(:sessionToken => session_token, | |
:resumeID => resume_id, | |
:custAcctCode => "").cB_GetResumeResult | |
end | |
def search(params = {}) | |
Search.new(self, params) | |
end | |
def advanced_resume_search_result(params = {}) | |
advanced_resume_search(params).cB_AdvancedResumeSearchResult | |
end | |
def advanced_resume_search(params = {}) | |
@soap.cB_AdvancedResumeSearch(:sessionToken => session_token, | |
:keywords => params[:keywords], | |
:zipCode => params[:zip_code], | |
:searchPattern => "", | |
:jobCategories => "", | |
:city => "", | |
:state => "", | |
:country => "US", | |
:searchRadiusInMiles => params[:zip_code].empty? ? "" : params[:search_radius_in_miles], | |
:relocationFilter => "", | |
:freshnessInDays => params[:freshness_in_days], | |
:employmentType => "", | |
:minimumExperience => "", | |
:minimumTravelRequirement => "", | |
:minimumDegree => "", | |
:compensationType => "", | |
:minimumSalary => "", | |
:maximumSalary => "", | |
:excludeResumesWithNoSalary => "", | |
:languagesSpoken => "", | |
:currentlyEmployed => "", | |
:managementExperience => "", | |
:minimumEmployeesManaged => "", | |
:maximumCommute => "", | |
:securityClearance => params[:security_clearance].blank? ? "" : params[:security_clearance], | |
:workStatus => "", | |
:excludeIVRResumes => "", | |
:orderBy => "", | |
:pageNumber => params[:current_page], | |
:rowsPerPage => "50", | |
:custAcctCode => "", | |
:customXML => "", | |
:militaryExperience => "M1, M2, M3, M4, M5, M6, M7") | |
end | |
def initialize(email, password) | |
@email, @password = email, password | |
@soap = ResumesSoap.new | |
@soap.wiredump_dev = STDERR if $DEBUG | |
end | |
class Search | |
include Enumerable | |
def initialize(career_builder, params = {}) | |
@career_builder, @params = career_builder, params | |
@current_page = 0 | |
end | |
def response | |
@response || execute | |
end | |
def hits | |
response.hits.to_i | |
end | |
def pages | |
response.maxPage.to_i | |
end | |
def next_page | |
@current_page += 1 | |
end | |
def execute | |
@response = @career_builder.advanced_resume_search_result(@params.merge({:current_page => @current_page})) | |
end | |
def each | |
while @current_page <= pages | |
@response.results.each do |result| | |
yield result | |
end if @response.results | |
next_page | |
execute | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment