scrapin-a-livin 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.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/LICENSE +20 -0
- data/README.markdown +36 -0
- data/Rakefile +75 -0
- data/VERSION +1 -0
- data/lib/dice/dice_search.rb +122 -0
- data/lib/generic/listing.rb +25 -0
- data/lib/scrapin-a-livin.rb +43 -0
- data/lib/yahoo/hotjobs.rb +171 -0
- data/test/dice_parser_test.rb +172 -0
- data/test/queries/dice/queryAustin.html +2207 -0
- data/test/queries/dice/queryRaleigh.html +2272 -0
- data/test/queries/dice/querySanJose.html +2517 -0
- data/test/queries/hotjobs/queryAustin.html +737 -0
- data/test/queries/hotjobs/queryRaleigh.html +755 -0
- data/test/queries/hotjobs/querySanJose.html +753 -0
- data/test/scripts/diceDump.rb +71 -0
- data/test/scripts/hotjobsDump.rb +70 -0
- data/test/test_helper.rb +8 -0
- data/test/yahoo_parser_test.rb +168 -0
- metadata +110 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'open-uri'
|
4
|
+
require 'hpricot'
|
5
|
+
|
6
|
+
# We want to be able to easily pull and update set of listings
|
7
|
+
# from the dice website. This script formats the request for us
|
8
|
+
# to make things a little easier.
|
9
|
+
ENTRIES = 5
|
10
|
+
DAYS_BACK = 30
|
11
|
+
SEARCH_KEYWORDS = "Software"
|
12
|
+
|
13
|
+
# Format the URL to retrieve the current listings from
|
14
|
+
# the Dice website
|
15
|
+
#
|
16
|
+
# http://seeker.dice.com
|
17
|
+
# @param where [String, #read] the job location
|
18
|
+
# @returns [String] the url request for dice.com
|
19
|
+
def get_url(where)
|
20
|
+
"http://seeker.dice.com/jobsearch/servlet/JobSearch" +
|
21
|
+
"?caller=0&LOCATION_OPTION=2&EXTRA_STUFF=1&N=0&Hf=0" +
|
22
|
+
"&Ntk=JobSearchRanking&op=300" +
|
23
|
+
"&values=&FREE_TEXT=#{SEARCH_KEYWORDS}" +
|
24
|
+
"&Ntx=mode+matchall&WHERE=#{where}" +
|
25
|
+
"&WHEREList=#{where}" +
|
26
|
+
"&RADIUS=80.4672" +
|
27
|
+
"&COUNTRY=1525&STAT_PROV=0&METRO_AREA=33.78715899%2C-84.39164034&AREA_CODES=&AC_COUNTRY=1525" +
|
28
|
+
"&TRAVEL=0&TAXTERM=1001" +
|
29
|
+
"&SORTSPEC=0" +
|
30
|
+
"&FRMT=0" +
|
31
|
+
"&DAYSBACK=#{DAYS_BACK}" +
|
32
|
+
"&NUM_PER_PAGE=#{ENTRIES}"
|
33
|
+
end
|
34
|
+
|
35
|
+
# Write the retrieved data to the file at the specified path.
|
36
|
+
#
|
37
|
+
# @param filepath [String, #read] the path to the output file
|
38
|
+
# @param url [String, #read] the url to use for the request
|
39
|
+
def write_query(filepath, url)
|
40
|
+
|
41
|
+
begin
|
42
|
+
# Open the file for writing
|
43
|
+
file = File.new(filepath, "w")
|
44
|
+
|
45
|
+
# Query the page
|
46
|
+
response = open(url, "User-Agent" => "Ruby/#{RUBY_VERSION}",
|
47
|
+
"From" => "email@addr.com",
|
48
|
+
"Referer" => "http://seeker.dice.com/jobsearch/").read
|
49
|
+
|
50
|
+
# Write the data to the file
|
51
|
+
file.write(response)
|
52
|
+
|
53
|
+
ensure
|
54
|
+
|
55
|
+
# Make sure the file is closed
|
56
|
+
file.close
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
# Query for San Jose
|
62
|
+
url = get_url("San+Jose+CA")
|
63
|
+
write_query('./querySanJose.html', url)
|
64
|
+
|
65
|
+
# Query for San Jose
|
66
|
+
url = get_url("Raleigh+NC")
|
67
|
+
write_query('./queryRaleigh.html', url)
|
68
|
+
|
69
|
+
# Query for San Jose
|
70
|
+
url = get_url("Austin+TX")
|
71
|
+
write_query('./queryAustin.html', url)
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'open-uri'
|
4
|
+
require 'hpricot'
|
5
|
+
|
6
|
+
# We want to be able to easily pull and update set of listings
|
7
|
+
# from the yahoo website. This script formats the request for us
|
8
|
+
# to make things a little easier.
|
9
|
+
DAYS_BACK = "month"
|
10
|
+
SEARCH_KEYWORDS = "Software"
|
11
|
+
|
12
|
+
# Format the URL to retrieve the current listings from
|
13
|
+
# the Yahoo Hotjobs website
|
14
|
+
#
|
15
|
+
# http://hotjobs.yahoo.com
|
16
|
+
# @param where [String, #read] the job location
|
17
|
+
# @returns [String] the url request for dice.com
|
18
|
+
def get_url(where)
|
19
|
+
|
20
|
+
"http://hotjobs.yahoo.com/job-search?" +
|
21
|
+
"src=advsearch&pageOp=search&ts=1259353986&" +
|
22
|
+
"kw_search_type=kwany&kw=#{SEARCH_KEYWORDS}&kw_none=&" +
|
23
|
+
"locations=#{where}&country=&locations=&locations=&" +
|
24
|
+
"industry=&industry=&industry=&" +
|
25
|
+
"updated_since=#{DAYS_BACK}&" +
|
26
|
+
"exp_level=&experience_level=&" +
|
27
|
+
"education=&salary[min]=&salary[type]=yearly&" +
|
28
|
+
"commitment=FT&commitment=PT&jobtype=PERM&jobtype=CONT&" +
|
29
|
+
"travel_amount=&company=&" +
|
30
|
+
"source=&email_format=html&email_frequency=1&email_enabled=0&search_jobs=Search+Jobs"
|
31
|
+
end
|
32
|
+
|
33
|
+
# Write the retrieved data to the file at the specified path.
|
34
|
+
#
|
35
|
+
# @param filepath [String, #read] the path to the output file
|
36
|
+
# @param url [String, #read] the url to use for the request
|
37
|
+
def write_query(filepath, url)
|
38
|
+
|
39
|
+
begin
|
40
|
+
# Open the file for writing
|
41
|
+
file = File.new(filepath, "w")
|
42
|
+
|
43
|
+
# Query the page
|
44
|
+
response = open(url, "User-Agent" => "Ruby/#{RUBY_VERSION}",
|
45
|
+
"From" => "email@addr.com",
|
46
|
+
"Referer" => "http://hotjobs.yahoo.com/").read
|
47
|
+
|
48
|
+
# Write the data to the file
|
49
|
+
file.write(response)
|
50
|
+
|
51
|
+
ensure
|
52
|
+
|
53
|
+
# Make sure the file is closed
|
54
|
+
file.close
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
# Query for San Jose
|
60
|
+
url = get_url("San+Jose+CA")
|
61
|
+
write_query('./querySanJose.html', url)
|
62
|
+
|
63
|
+
|
64
|
+
# Query for San Jose
|
65
|
+
url = get_url("Raleigh+NC")
|
66
|
+
write_query('./queryRaleigh.html', url)
|
67
|
+
|
68
|
+
# Query for San Jose
|
69
|
+
url = get_url("Austin+TX")
|
70
|
+
write_query('./queryAustin.html', url)
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,168 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'ftools'
|
3
|
+
|
4
|
+
# Test Case for the yahoo hotjobs listing parser Dice
|
5
|
+
class TC_HotjobsSearchParser < Test::Unit::TestCase
|
6
|
+
|
7
|
+
RALEIGH_QUERY = File.dirname(__FILE__) + '/queries/hotjobs/queryRaleigh.html'
|
8
|
+
AUSTIN_QUERY = File.dirname(__FILE__) + '/queries/hotjobs/queryAustin.html'
|
9
|
+
SANJOSE_QUERY = File.dirname(__FILE__) + '/queries/hotjobs/querySanJose.html'
|
10
|
+
|
11
|
+
# Test for the listing header
|
12
|
+
def test_raleigh
|
13
|
+
|
14
|
+
# Read the query data from the file
|
15
|
+
data = check_query(RALEIGH_QUERY)
|
16
|
+
|
17
|
+
# Parse the listings from the query
|
18
|
+
listings = HotjobsSearch.parse_listings(data)
|
19
|
+
|
20
|
+
# Go through each listing
|
21
|
+
assert_equal("Embedded Software Engineer", listings[0].title)
|
22
|
+
assert_equal("http://hotjobs.yahoo.com/job-JNEJ91O9CZA?source=SRP", listings[0].link)
|
23
|
+
assert_equal("Sirit Technology", listings[0].company)
|
24
|
+
assert_equal("http://hotjobs.yahoo.com/careers-786030-Sirit_Technology", listings[0].company_link)
|
25
|
+
assert_equal("Morrisville, NC", listings[0].location)
|
26
|
+
assert_equal("Oct 28", listings[0].date)
|
27
|
+
|
28
|
+
assert_equal("MES Java Software Engineer", listings[1].title)
|
29
|
+
assert_equal("http://hotjobs.yahoo.com/job-JDZWR4DRM00?source=SRP", listings[1].link)
|
30
|
+
assert_equal("Werum Software & Systems America", listings[1].company)
|
31
|
+
assert_equal("http://hotjobs.yahoo.com/careers-616438-Werum_Software___Systems_America", listings[1].company_link)
|
32
|
+
assert_equal("Cary, NC", listings[1].location)
|
33
|
+
assert_equal("Sep 29", listings[1].date)
|
34
|
+
|
35
|
+
assert_equal("Software Developer", listings[2].title)
|
36
|
+
assert_equal("http://hotjobs.yahoo.com/job-JQGSVB1Y99F?source=SRP", listings[2].link)
|
37
|
+
assert_equal("CTG", listings[2].company)
|
38
|
+
assert_equal("http://hotjobs.yahoo.com/careers-601569-CTG", listings[2].company_link)
|
39
|
+
assert_equal("Durham, NC", listings[2].location)
|
40
|
+
assert_equal("Oct 30", listings[2].date)
|
41
|
+
|
42
|
+
assert_equal("Software Engineer - Windows Installer Developer, MSI, WiX, WiM", listings[3].title)
|
43
|
+
assert_equal("http://hotjobs.yahoo.com/job-J9WH2JP6WO7?source=SRP", listings[3].link)
|
44
|
+
assert_equal("CyberCoders", listings[3].company)
|
45
|
+
assert_equal("http://hotjobs.yahoo.com/careers-577525-CyberCoders", listings[3].company_link)
|
46
|
+
assert_equal("Raleigh, NC", listings[3].location)
|
47
|
+
assert_equal("Nov 27", listings[3].date)
|
48
|
+
|
49
|
+
assert_equal("C# Developer, Software Developer, SAAS, ASP.Net, SQL Server, SQL, .Net, WCF, JavaScript", listings[4].title)
|
50
|
+
assert_equal("http://hotjobs.yahoo.com/job-J5PKCPM1QM2?source=SRP", listings[4].link)
|
51
|
+
assert_equal("CyberCoders", listings[4].company)
|
52
|
+
assert_equal("http://hotjobs.yahoo.com/careers-577525-CyberCoders", listings[4].company_link)
|
53
|
+
assert_equal("Raleigh, NC", listings[4].location)
|
54
|
+
assert_equal("Nov 27", listings[4].date)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Test for parsing a listing
|
58
|
+
def test_austin
|
59
|
+
|
60
|
+
# Read the query data
|
61
|
+
data = check_query(AUSTIN_QUERY)
|
62
|
+
|
63
|
+
# Parse the listings from the query
|
64
|
+
listings = HotjobsSearch.parse_listings(data)
|
65
|
+
|
66
|
+
# Go through each listing
|
67
|
+
assert_equal("Software Program Manager", listings[0].title)
|
68
|
+
assert_equal("http://hotjobs.yahoo.com/job-JSFNSIFFNCA?source=SRP", listings[0].link)
|
69
|
+
assert_equal("Zebra Imaging", listings[0].company)
|
70
|
+
assert_equal("http://hotjobs.yahoo.com/careers-627739-Zebra_Imaging", listings[0].company_link)
|
71
|
+
assert_equal("Austin, TX", listings[0].location)
|
72
|
+
assert_equal("Nov 19", listings[0].date)
|
73
|
+
|
74
|
+
assert_equal("Client Project Manager - Software", listings[1].title)
|
75
|
+
assert_equal("http://hotjobs.yahoo.com/job-JM1F32JSA7R?source=SRP", listings[1].link)
|
76
|
+
assert_equal("Digital Cheetah Solutions, Inc.", listings[1].company)
|
77
|
+
assert_equal("http://hotjobs.yahoo.com/careers-577804-Digital_Cheetah_Solutions__Inc_", listings[1].company_link)
|
78
|
+
assert_equal("Austin, TX", listings[1].location)
|
79
|
+
assert_equal("Nov 08", listings[1].date)
|
80
|
+
|
81
|
+
assert_equal("Software Quality Assurance Lead", listings[2].title)
|
82
|
+
assert_equal("http://hotjobs.yahoo.com/job-JL5SOECPQKF?source=SRP", listings[2].link)
|
83
|
+
assert_equal("Zebra Imaging", listings[2].company)
|
84
|
+
assert_equal("http://hotjobs.yahoo.com/careers-627739-Zebra_Imaging", listings[2].company_link)
|
85
|
+
assert_equal("Austin, TX", listings[2].location)
|
86
|
+
assert_equal("Oct 06", listings[2].date)
|
87
|
+
|
88
|
+
assert_equal("Operating System Software Test Specialist", listings[3].title)
|
89
|
+
assert_equal("http://hotjobs.yahoo.com/job-J3KBF8EADAO?source=SRP", listings[3].link)
|
90
|
+
assert_equal("CTG", listings[3].company)
|
91
|
+
assert_equal("http://hotjobs.yahoo.com/careers-601569-CTG", listings[3].company_link)
|
92
|
+
assert_equal("Austin, TX", listings[3].location)
|
93
|
+
assert_equal("Nov 12", listings[3].date)
|
94
|
+
|
95
|
+
assert_equal("Software Engineer", listings[4].title)
|
96
|
+
assert_equal("http://hotjobs.yahoo.com/job-JTXD1K5GAZ2?source=SRP", listings[4].link)
|
97
|
+
assert_equal("Troux Technologies", listings[4].company)
|
98
|
+
assert_equal("http://hotjobs.yahoo.com/careers-788124-Troux_Technologies", listings[4].company_link)
|
99
|
+
assert_equal("Austin, TX", listings[4].location)
|
100
|
+
assert_equal("Nov 05", listings[4].date)
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
# Test for parsing a listing
|
105
|
+
def test_sanjose
|
106
|
+
|
107
|
+
# Read the query data
|
108
|
+
data = check_query(SANJOSE_QUERY)
|
109
|
+
|
110
|
+
# Parse the listings from the query
|
111
|
+
listings = HotjobsSearch.parse_listings(data)
|
112
|
+
|
113
|
+
# Go through each listing
|
114
|
+
assert_equal("Software Engineer/Carrier CE", listings[0].title)
|
115
|
+
assert_equal("http://hotjobs.yahoo.com/job-J2VW8Y7GMAH?source=SRP", listings[0].link)
|
116
|
+
assert_equal("Atheros Communications, Inc.", listings[0].company)
|
117
|
+
assert_equal("http://hotjobs.yahoo.com/careers-552561-Atheros_Communications__Inc_", listings[0].company_link)
|
118
|
+
assert_equal("Santa Clara, CA", listings[0].location)
|
119
|
+
assert_equal("Nov 12", listings[0].date)
|
120
|
+
|
121
|
+
assert_equal("EMBEDDED SOFTWARE ENGINEER", listings[1].title)
|
122
|
+
assert_equal("http://hotjobs.yahoo.com/job-JD285WTGJLP?source=SRP", listings[1].link)
|
123
|
+
assert_equal("NVIDIA Corporation", listings[1].company)
|
124
|
+
assert_equal("http://hotjobs.yahoo.com/careers-601859-NVIDIA_Corporation", listings[1].company_link)
|
125
|
+
assert_equal("Santa Clara, CA", listings[1].location)
|
126
|
+
assert_equal("Oct 23", listings[1].date)
|
127
|
+
|
128
|
+
assert_equal("EMBEDDED SOFTWARE ENGINEER", listings[2].title)
|
129
|
+
assert_equal("http://hotjobs.yahoo.com/job-J9LJP1J38EB?source=SRP", listings[2].link)
|
130
|
+
assert_equal("NVIDIA Corporation", listings[2].company)
|
131
|
+
assert_equal("http://hotjobs.yahoo.com/careers-601859-NVIDIA_Corporation", listings[2].company_link)
|
132
|
+
assert_equal("Santa Clara, CA", listings[2].location)
|
133
|
+
assert_equal("Oct 23", listings[2].date)
|
134
|
+
|
135
|
+
assert_equal("Platform Bringup Software Engineer", listings[3].title)
|
136
|
+
assert_equal("http://hotjobs.yahoo.com/job-J6YYFVVFK7P?source=SRP", listings[3].link)
|
137
|
+
assert_equal("Aruba Networks", listings[3].company)
|
138
|
+
assert_equal("http://hotjobs.yahoo.com/careers-562030-Aruba_Networks", listings[3].company_link)
|
139
|
+
assert_equal("Sunnyvale, CA", listings[3].location)
|
140
|
+
assert_equal("Nov 14", listings[3].date)
|
141
|
+
|
142
|
+
assert_equal("Staff Software Development Engineer", listings[4].title)
|
143
|
+
assert_equal("http://hotjobs.yahoo.com/job-JDG4ZD5RP59?source=SRP", listings[4].link)
|
144
|
+
assert_equal("IDT", listings[4].company)
|
145
|
+
assert_equal("http://hotjobs.yahoo.com/careers-577851-IDT", listings[4].company_link)
|
146
|
+
assert_equal("San Jose, CA", listings[4].location)
|
147
|
+
assert_equal("Nov 19", listings[4].date)
|
148
|
+
end
|
149
|
+
|
150
|
+
private
|
151
|
+
|
152
|
+
# Make sure the query file exists
|
153
|
+
#
|
154
|
+
# @param path [String, #read] the path to the input file
|
155
|
+
# @returns [String] the data from the input file
|
156
|
+
def check_query(path)
|
157
|
+
|
158
|
+
# Check to make sure the query exists and is readable
|
159
|
+
if !File.exists?(path) || !File.readable?(path)
|
160
|
+
|
161
|
+
raise ArgumentError.new "Invalid Query: \"#{path}\""
|
162
|
+
end
|
163
|
+
|
164
|
+
# Open the file and read the contents
|
165
|
+
File.open(path, "r").read
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: scrapin-a-livin
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kevin S Kirkup
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-11-28 00:00:00 -05:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hpricot
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0.6"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: thoughtbot-shoulda
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
description: |
|
36
|
+
Are you in the technology industry?
|
37
|
+
The you have probably lost a job during your career.
|
38
|
+
This script helps you scrape the most common job sites for your search criteria,
|
39
|
+
and save the lists on you local computer.
|
40
|
+
|
41
|
+
You can then use other tools to display updates, send out resumes or search your LinkedIn account
|
42
|
+
to see who you may know at that company.
|
43
|
+
|
44
|
+
Please feel free to contribute make. All suggestions are welcome.
|
45
|
+
Hopefully this will help you find the career you are looking for.
|
46
|
+
|
47
|
+
email: kevin.kirkup@gmail.com
|
48
|
+
executables: []
|
49
|
+
|
50
|
+
extensions: []
|
51
|
+
|
52
|
+
extra_rdoc_files:
|
53
|
+
- LICENSE
|
54
|
+
- README.markdown
|
55
|
+
files:
|
56
|
+
- .document
|
57
|
+
- .gitignore
|
58
|
+
- LICENSE
|
59
|
+
- README.markdown
|
60
|
+
- Rakefile
|
61
|
+
- VERSION
|
62
|
+
- lib/dice/dice_search.rb
|
63
|
+
- lib/generic/listing.rb
|
64
|
+
- lib/scrapin-a-livin.rb
|
65
|
+
- lib/yahoo/hotjobs.rb
|
66
|
+
- test/dice_parser_test.rb
|
67
|
+
- test/queries/dice/queryAustin.html
|
68
|
+
- test/queries/dice/queryRaleigh.html
|
69
|
+
- test/queries/dice/querySanJose.html
|
70
|
+
- test/queries/hotjobs/queryAustin.html
|
71
|
+
- test/queries/hotjobs/queryRaleigh.html
|
72
|
+
- test/queries/hotjobs/querySanJose.html
|
73
|
+
- test/scripts/diceDump.rb
|
74
|
+
- test/scripts/hotjobsDump.rb
|
75
|
+
- test/test_helper.rb
|
76
|
+
- test/yahoo_parser_test.rb
|
77
|
+
has_rdoc: true
|
78
|
+
homepage: http://github.com/angrytuna/scrapin-a-livin
|
79
|
+
licenses: []
|
80
|
+
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options:
|
83
|
+
- --charset=UTF-8
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: "0"
|
91
|
+
version:
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: "0"
|
97
|
+
version:
|
98
|
+
requirements: []
|
99
|
+
|
100
|
+
rubyforge_project:
|
101
|
+
rubygems_version: 1.3.5
|
102
|
+
signing_key:
|
103
|
+
specification_version: 3
|
104
|
+
summary: Scrape to find a job
|
105
|
+
test_files:
|
106
|
+
- test/scripts/diceDump.rb
|
107
|
+
- test/scripts/hotjobsDump.rb
|
108
|
+
- test/yahoo_parser_test.rb
|
109
|
+
- test/dice_parser_test.rb
|
110
|
+
- test/test_helper.rb
|