career_builder 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. data/.document +5 -0
  2. data/.gitignore +22 -0
  3. data/Gemfile +10 -0
  4. data/LICENSE +20 -0
  5. data/README.md +91 -0
  6. data/Rakefile +48 -0
  7. data/VERSION +1 -0
  8. data/career_builder.gemspec +95 -0
  9. data/lib/career_builder.rb +39 -0
  10. data/lib/career_builder/api/company.rb +17 -0
  11. data/lib/career_builder/api/interest.rb +16 -0
  12. data/lib/career_builder/api/job_type.rb +15 -0
  13. data/lib/career_builder/api/language.rb +15 -0
  14. data/lib/career_builder/api/location.rb +19 -0
  15. data/lib/career_builder/api/pay.rb +16 -0
  16. data/lib/career_builder/api/resume.rb +67 -0
  17. data/lib/career_builder/api/resume_search.rb +22 -0
  18. data/lib/career_builder/api/resume_search_result.rb +28 -0
  19. data/lib/career_builder/api/school.rb +18 -0
  20. data/lib/career_builder/api/shift_preference.rb +15 -0
  21. data/lib/career_builder/api/word_document.rb +16 -0
  22. data/lib/career_builder/client.rb +37 -0
  23. data/lib/career_builder/errors.rb +7 -0
  24. data/lib/career_builder/request.rb +82 -0
  25. data/lib/career_builder/request/authenticated.rb +23 -0
  26. data/lib/career_builder/requests/advanced_resume_search.rb +41 -0
  27. data/lib/career_builder/requests/authentication.rb +25 -0
  28. data/lib/career_builder/requests/get_resume.rb +24 -0
  29. data/lib/career_builder/requests/resume_actions_remaining_today.rb +21 -0
  30. data/lib/career_builder/resume.rb +44 -0
  31. data/lib/career_builder/resume/lazy_collection.rb +39 -0
  32. data/spec/career_builder/client_spec.rb +554 -0
  33. data/spec/career_builder/resume/lazy_collection_spec.rb +30 -0
  34. data/spec/career_builder/resume_spec.rb +5 -0
  35. data/spec/career_builder_spec.rb +5 -0
  36. data/spec/spec.opts +1 -0
  37. data/spec/spec_helper.rb +13 -0
  38. data/spec/support/webmock.rb +7 -0
  39. metadata +169 -0
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe CareerBuilder::Resume::LazyCollection do
4
+
5
+ describe "#each" do
6
+
7
+ before do
8
+ stub_request(:post, "http://ws.careerbuilder.com/resumes/resumes.asmx/V2_AdvancedResumeSearch").with(:body => 'Packet=%3cPacket%3e%3cSessionToken%3e42%3c%2fSessionToken%3e%3cKeywords%3eRuby%3c%2fKeywords%3e%3cPageNumber%3e1%3c%2fPageNumber%3e%3c%2fPacket%3e').to_return(:body => "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<string xmlns=\"http://ws.careerbuilder.com/resumes/\">&lt;Packet&gt;&lt;Errors /&gt;&lt;PageNumber&gt;1&lt;/PageNumber&gt;&lt;SearchTime&gt;06/25/2010 12:03:14&lt;/SearchTime&gt;&lt;FirstRec&gt;1&lt;/FirstRec&gt;&lt;LastRec&gt;100&lt;/LastRec&gt;&lt;Hits&gt;4&lt;/Hits&gt;&lt;MaxPage&gt;2&lt;/MaxPage&gt;&lt;Results&gt;&lt;ResumeResultItem_V3&gt;&lt;ContactEmail&gt;Rhd4G067G4JVTLW99H7_A7C14Q67VKG000YBSCR~CBWS^U7A3LY6YY46V1MT0RJK@resume.cbdr.com&lt;/ContactEmail&gt;&lt;ContactName&gt;Rebecca Bernard&lt;/ContactName&gt;&lt;HomeLocation&gt;US-OH-Milford&lt;/HomeLocation&gt;&lt;LastUpdate&gt;2010/5/13&lt;/LastUpdate&gt;&lt;ResumeTitle&gt;BERNARD_SYSTEMS_ENGINEER&lt;/ResumeTitle&gt;&lt;JobTitle&gt;BERNARD_SYSTEMS_ENGINEER&lt;/JobTitle&gt;&lt;RecentEmployer&gt;TATA CONSULTANCY SERVICES&lt;/RecentEmployer&gt;&lt;RecentJobTitle&gt;CONSULTANCY SERVICES- Systems Engineer&lt;/RecentJobTitle&gt;&lt;RecentPay&gt;0&lt;/RecentPay&gt;&lt;ResumeID&gt;Rhd4G067G4JVTLW99H7&lt;/ResumeID&gt;&lt;UserDID&gt;U7X86R61VVKS4FWS03T&lt;/UserDID&gt;&lt;ContactEmailMD5&gt;139013c2fa2b945bdc340f8a698b009e&lt;/ContactEmailMD5&gt;&lt;/ResumeResultItem_V3&gt;&lt;ResumeResultItem_V3&gt;&lt;ContactEmail&gt;Rhe7TZ764LHG1GQTPSM_A7C14Q67VKG000YBSCR~CBWS^U7A3LY6YY46V1MT0RJK@resume.cbdr.com&lt;/ContactEmail&gt;&lt;ContactName&gt;chris grader&lt;/ContactName&gt;&lt;HomeLocation&gt;US-OH-Milford&lt;/HomeLocation&gt;&lt;LastUpdate&gt;2010/6/4&lt;/LastUpdate&gt;&lt;ResumeTitle&gt;Chris Grader resume&lt;/ResumeTitle&gt;&lt;JobTitle&gt;Chris Grader resume&lt;/JobTitle&gt;&lt;RecentEmployer&gt;Millennial Medical, Inc&lt;/RecentEmployer&gt;&lt;RecentJobTitle&gt;Regional Sales Manager/Midwest Distributor&lt;/RecentJobTitle&gt;&lt;RecentPay&gt;0&lt;/RecentPay&gt;&lt;ResumeID&gt;Rhe7TZ764LHG1GQTPSM&lt;/ResumeID&gt;&lt;UserDID&gt;U346V1MKGCHPGCF9S8&lt;/UserDID&gt;&lt;ContactEmailMD5&gt;cfba57bf848b78211d99348cf0f90879&lt;/ContactEmailMD5&gt;&lt;/ResumeResultItem_V3&gt;&lt;ResumeResultItem_V3&gt;&lt;ContactEmail&gt;RH52G867678F7GH02Q3_A7C14Q67VKG000YBSCR~CBWS^U7A3LY6YY46V1MT0RJK@resume.cbdr.com&lt;/ContactEmail&gt;&lt;ContactName&gt;Jeffrey Davis&lt;/ContactName&gt;&lt;HomeLocation&gt;US-OH-Goshen&lt;/HomeLocation&gt;&lt;LastUpdate&gt;2010/5/23&lt;/LastUpdate&gt;&lt;ResumeTitle&gt;Warehouse Distribution Specialist&lt;/ResumeTitle&gt;&lt;JobTitle&gt;Warehouse Distribution Specialist&lt;/JobTitle&gt;&lt;RecentEmployer&gt;OWENS &amp;amp; MINOR&lt;/RecentEmployer&gt;&lt;RecentJobTitle&gt;Warehouse Lead Supervisor&lt;/RecentJobTitle&gt;&lt;RecentPay&gt;35776&lt;/RecentPay&gt;&lt;ResumeID&gt;RH52G867678F7GH02Q3&lt;/ResumeID&gt;&lt;UserDID&gt;U1C29V68M3YM95SP0XK&lt;/UserDID&gt;&lt;ContactEmailMD5&gt;e814ebaa93aae5c3719e27d26d5af917&lt;/ContactEmailMD5&gt;&lt;/ResumeResultItem_V3&gt;&lt;/Results&gt;&lt;/Packet&gt;</string>")
9
+ stub_request(:post, "http://ws.careerbuilder.com/resumes/resumes.asmx/V2_AdvancedResumeSearch").with(:body => 'Packet=%3cPacket%3e%3cSessionToken%3e42%3c%2fSessionToken%3e%3cKeywords%3eRuby%3c%2fKeywords%3e%3cPageNumber%3e2%3c%2fPageNumber%3e%3c%2fPacket%3e').to_return(:body => "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<string xmlns=\"http://ws.careerbuilder.com/resumes/\">&lt;Packet&gt;&lt;Errors/&gt;&lt;PageNumber&gt;2&lt;/PageNumber&gt;&lt;SearchTime&gt;06/25/2010 12:03:14&lt;/SearchTime&gt;&lt;FirstRec&gt;1&lt;/FirstRec&gt;&lt;LastRec&gt;100&lt;/LastRec&gt;&lt;Hits&gt;4&lt;/Hits&gt;&lt;MaxPage&gt;2&lt;/MaxPage&gt;&lt;Results&gt;&lt;ResumeResultItem_V3&gt;&lt;ContactEmail&gt;Rhd4G067G4JVTLW99H7_A7C14Q67VKG000YBSCR~CBWS^U7A3LY6YY46V1MT0RJK@resume.cbdr.com&lt;/ContactEmail&gt;&lt;ContactName&gt;Michael Guterl&lt;/ContactName&gt;&lt;HomeLocation&gt;US-OH-Loveland&lt;/HomeLocation&gt;&lt;LastUpdate&gt;2010/5/13&lt;/LastUpdate&gt;&lt;ResumeTitle&gt;BERNARD_SYSTEMS_ENGINEER&lt;/ResumeTitle&gt;&lt;JobTitle&gt;BERNARD_SYSTEMS_ENGINEER&lt;/JobTitle&gt;&lt;RecentEmployer&gt;TATA CONSULTANCY SERVICES&lt;/RecentEmployer&gt;&lt;RecentJobTitle&gt;CONSULTANCY SERVICES- Systems Engineer&lt;/RecentJobTitle&gt;&lt;RecentPay&gt;0&lt;/RecentPay&gt;&lt;ResumeID&gt;RD52G867678F7GH0123&lt;/ResumeID&gt;&lt;UserDID&gt;U7X86R61VVKS4FWS03T&lt;/UserDID&gt;&lt;ContactEmailMD5&gt;139013c2fa2b945bdc340f8a698b009e&lt;/ContactEmailMD5&gt;&lt;/ResumeResultItem_V3&gt;&lt;/Results&gt;&lt;/Packet&gt;</string>")
10
+ @client = CareerBuilder::Client.new("valid_email", "valid_password")
11
+ @client.stub(:session_token).and_return(42)
12
+ @client.stub(:authenticate).and_return(true)
13
+ @collection = CareerBuilder::Resume::LazyCollection.new(@client,
14
+ :keywords => "Ruby")
15
+ end
16
+
17
+ it 'should iterate through all pages of results' do
18
+ resumes = []
19
+
20
+ @collection.each do |resume|
21
+ resumes << resume
22
+ end
23
+
24
+ resumes.first.id.should == "Rhd4G067G4JVTLW99H7"
25
+ resumes.last.id.should == "RD52G867678F7GH0123"
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe CareerBuilder::Resume do
4
+
5
+ end
@@ -0,0 +1,5 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe CareerBuilder do
4
+
5
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'career_builder'
4
+ require 'spec'
5
+ require 'spec/autorun'
6
+
7
+ # Requires supporting files with custom matchers and macros, etc,
8
+ # in ./support/ and its subdirectories.
9
+ Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
10
+
11
+ Spec::Runner.configure do |config|
12
+
13
+ end
@@ -0,0 +1,7 @@
1
+ require 'webmock/rspec'
2
+
3
+ Spec::Runner.configure do |config|
4
+ config.include WebMock
5
+ end
6
+
7
+ WebMock.disable_net_connect!
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: career_builder
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Michael Guterl
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-06-28 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 27
30
+ segments:
31
+ - 1
32
+ - 3
33
+ - 0
34
+ version: 1.3.0
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: webmock
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: nokogiri-happymapper
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: activesupport
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ hash: 9
74
+ segments:
75
+ - 2
76
+ - 3
77
+ - 5
78
+ version: 2.3.5
79
+ type: :runtime
80
+ version_requirements: *id004
81
+ description: Ruby wrapper for the CareerBuilder V2 HTTP XML API
82
+ email: mguterl@gmail.com
83
+ executables: []
84
+
85
+ extensions: []
86
+
87
+ extra_rdoc_files:
88
+ - LICENSE
89
+ - README.md
90
+ files:
91
+ - .document
92
+ - .gitignore
93
+ - Gemfile
94
+ - LICENSE
95
+ - README.md
96
+ - Rakefile
97
+ - VERSION
98
+ - career_builder.gemspec
99
+ - lib/career_builder.rb
100
+ - lib/career_builder/api/company.rb
101
+ - lib/career_builder/api/interest.rb
102
+ - lib/career_builder/api/job_type.rb
103
+ - lib/career_builder/api/language.rb
104
+ - lib/career_builder/api/location.rb
105
+ - lib/career_builder/api/pay.rb
106
+ - lib/career_builder/api/resume.rb
107
+ - lib/career_builder/api/resume_search.rb
108
+ - lib/career_builder/api/resume_search_result.rb
109
+ - lib/career_builder/api/school.rb
110
+ - lib/career_builder/api/shift_preference.rb
111
+ - lib/career_builder/api/word_document.rb
112
+ - lib/career_builder/client.rb
113
+ - lib/career_builder/errors.rb
114
+ - lib/career_builder/request.rb
115
+ - lib/career_builder/request/authenticated.rb
116
+ - lib/career_builder/requests/advanced_resume_search.rb
117
+ - lib/career_builder/requests/authentication.rb
118
+ - lib/career_builder/requests/get_resume.rb
119
+ - lib/career_builder/requests/resume_actions_remaining_today.rb
120
+ - lib/career_builder/resume.rb
121
+ - lib/career_builder/resume/lazy_collection.rb
122
+ - spec/career_builder/client_spec.rb
123
+ - spec/career_builder/resume/lazy_collection_spec.rb
124
+ - spec/career_builder/resume_spec.rb
125
+ - spec/career_builder_spec.rb
126
+ - spec/spec.opts
127
+ - spec/spec_helper.rb
128
+ - spec/support/webmock.rb
129
+ has_rdoc: true
130
+ homepage: http://github.com/mguterl/career_builder
131
+ licenses: []
132
+
133
+ post_install_message:
134
+ rdoc_options:
135
+ - --charset=UTF-8
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ hash: 3
144
+ segments:
145
+ - 0
146
+ version: "0"
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ hash: 3
153
+ segments:
154
+ - 0
155
+ version: "0"
156
+ requirements: []
157
+
158
+ rubyforge_project:
159
+ rubygems_version: 1.3.7
160
+ signing_key:
161
+ specification_version: 3
162
+ summary: Ruby wrapper for the CareerBuilder V2 API
163
+ test_files:
164
+ - spec/career_builder/client_spec.rb
165
+ - spec/career_builder/resume/lazy_collection_spec.rb
166
+ - spec/career_builder/resume_spec.rb
167
+ - spec/career_builder_spec.rb
168
+ - spec/spec_helper.rb
169
+ - spec/support/webmock.rb