olek-libcraigscrape 1.0.3 → 1.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.
@@ -6,8 +6,8 @@ require File.dirname(__FILE__)+'/libcraigscrape_test_helpers'
6
6
 
7
7
  class CraigslistListingTest < Test::Unit::TestCase
8
8
  include LibcraigscrapeTestHelpers
9
-
10
- def test_listings_parse
9
+
10
+ def test_listings_parse
11
11
  category = CraigScrape::Listings.new relative_uri_for('listing_samples/category_output.html')
12
12
  assert_equal 'index100.html', category.next_page_href
13
13
  assert_equal 100, category.posts.length
@@ -16,19 +16,19 @@ class CraigslistListingTest < Test::Unit::TestCase
16
16
  assert_equal 4, l.post_date.month
17
17
  assert_equal 18, l.post_date.day
18
18
  end
19
-
19
+
20
20
  category2 = CraigScrape::Listings.new relative_uri_for('listing_samples/category_output_2.html')
21
21
  assert_equal 'index900.html', category2.next_page_href
22
22
  assert_equal 100, category2.posts.length
23
-
23
+
24
24
  long_search = CraigScrape::Listings.new relative_uri_for('listing_samples/long_search_output.html')
25
25
  assert_equal '/search/rea?query=house&minAsk=min&maxAsk=max&bedrooms=&s=800', long_search.next_page_href
26
26
  assert_equal 100, long_search.posts.length
27
-
27
+
28
28
  short_search = CraigScrape::Listings.new relative_uri_for('listing_samples/short_search_output.html')
29
29
  assert_equal nil, short_search.next_page_href
30
30
  assert_equal 93, short_search.posts.length
31
-
31
+
32
32
  mia_fua_index8900_052109 = CraigScrape::Listings.new relative_uri_for('listing_samples/mia_fua_index8900.5.21.09.html')
33
33
  assert_equal 'index9000.html', mia_fua_index8900_052109.next_page_href
34
34
  assert_equal 100, mia_fua_index8900_052109.posts.length
@@ -36,13 +36,13 @@ class CraigslistListingTest < Test::Unit::TestCase
36
36
  # This actually happens quite a bit...
37
37
  mia_fua_index8900_052109.posts[0..13].each do |l|
38
38
  assert_equal 5, l.post_date.month
39
- assert_equal 15, l.post_date.day
39
+ assert_equal 15, l.post_date.day
40
40
  end
41
41
  mia_fua_index8900_052109.posts[14..99].each do |l|
42
42
  assert_equal 5, l.post_date.month
43
43
  assert_equal 14, l.post_date.day
44
44
  end
45
-
45
+
46
46
  empty_listings = CraigScrape::Listings.new relative_uri_for('listing_samples/empty_listings.html')
47
47
  assert_equal nil, empty_listings.next_page_href
48
48
  assert_equal [], empty_listings.posts
@@ -52,12 +52,12 @@ class CraigslistListingTest < Test::Unit::TestCase
52
52
  # libcraigscrape is supposed to 'smart' when downloading postings that don't make 'sense' solely by looking at the listings.
53
53
  # I'm only seen this on occasion, but its annoying and craigslist seems to use a lot of approximations sometimes
54
54
  # The test page supplied is slightly adjusted to compensate for the lack of a web server when readng pages form the filesystem.
55
-
55
+
56
56
  fortmyers_art_index500_060909 = CraigScrape::Listings.new relative_uri_for('listing_samples/fortmyers_art_index.060909/fortmyers_art_index500.060909.html')
57
57
  fortmyers_art_index500_060909.posts[0..12].each do |l|
58
58
  assert_equal 5, l.post_date.month
59
59
  assert_equal 16, l.post_date.day
60
- end
60
+ end
61
61
  fortmyers_art_index500_060909.posts[13..36].each do |l|
62
62
  assert_equal 5, l.post_date.month
63
63
  assert_equal 15, l.post_date.day
@@ -65,7 +65,7 @@ class CraigslistListingTest < Test::Unit::TestCase
65
65
  fortmyers_art_index500_060909.posts[37..41].each do |l|
66
66
  assert_equal 5, l.post_date.month
67
67
  assert_equal 14, l.post_date.day
68
- end
68
+ end
69
69
  fortmyers_art_index500_060909.posts[42..55].each do |l|
70
70
  assert_equal 5, l.post_date.month
71
71
  assert_equal 13, l.post_date.day
@@ -73,19 +73,19 @@ class CraigslistListingTest < Test::Unit::TestCase
73
73
  fortmyers_art_index500_060909.posts[56..65].each do |l|
74
74
  assert_equal 5, l.post_date.month
75
75
  assert_equal 12, l.post_date.day
76
- end
76
+ end
77
77
  fortmyers_art_index500_060909.posts[66..87].each do |l|
78
78
  assert_equal 5, l.post_date.month
79
79
  assert_equal 11, l.post_date.day
80
- end
80
+ end
81
81
  fortmyers_art_index500_060909.posts[88..94].each do |l|
82
82
  assert_equal 5, l.post_date.month
83
83
  assert_equal 10, l.post_date.day
84
- end
84
+ end
85
85
  assert_equal 4, fortmyers_art_index500_060909.posts[95].post_date.month
86
86
  assert_equal 8, fortmyers_art_index500_060909.posts[95].post_date.day
87
87
  assert_equal 2, fortmyers_art_index500_060909.posts[96].post_date.month
88
- assert_equal 27, fortmyers_art_index500_060909.posts[96].post_date.day
88
+ assert_equal 27, fortmyers_art_index500_060909.posts[96].post_date.day
89
89
  assert_equal 2, fortmyers_art_index500_060909.posts[97].post_date.month
90
90
  assert_equal 23, fortmyers_art_index500_060909.posts[97].post_date.day
91
91
  assert_equal 1, fortmyers_art_index500_060909.posts[98].post_date.month
@@ -93,9 +93,9 @@ class CraigslistListingTest < Test::Unit::TestCase
93
93
  assert_equal 12, fortmyers_art_index500_060909.posts[99].post_date.month
94
94
  assert_equal 16, fortmyers_art_index500_060909.posts[99].post_date.day
95
95
 
96
- # Now we'll do one of these elusive 'trailer' pages which don't seem to really make much sense.
96
+ # Now we'll do one of these elusive 'trailer' pages which don't seem to really make much sense.
97
97
  # Best I can tell, it only comes after a page like the one tested just above
98
- fortmyers_art_index600_060909 = CraigScrape::Listings.new relative_uri_for('listing_samples/fortmyers_art_index.060909/fortmyers_art_index600.060909.html')
98
+ fortmyers_art_index600_060909 = CraigScrape::Listings.new relative_uri_for('listing_samples/fortmyers_art_index.060909/fortmyers_art_index600.060909.html')
99
99
  assert_equal "Husqvarna Viking Rose: Used Embroidery/Sewing Machine. Instruction book, Video, Embroidery Unit, 4\" 4\" hoop, designs, tool box with accessories including 8 feet (A, B, C, D, E, J, P, U and zipper foot). $400.00 Firm. (941) 347-8014 or (352)638-4707.", fortmyers_art_index600_060909.posts[0].contents
100
100
  assert_equal "Husqvarna Viking Rose: Used Embroidery/Sewing Machine. Instruction book, Video, Embroidery Unit, 4\" 4\" hoop, designs, tool box with accessories including 8 feet (A, B, C, D, E, J, P, U and zipper foot). $400.00 Firm. (941) 347-8014 or (352)638-4707.", fortmyers_art_index600_060909.posts[0].contents_as_plain
101
101
  assert_equal false, fortmyers_art_index600_060909.posts[0].deleted_by_author?
@@ -121,7 +121,7 @@ class CraigslistListingTest < Test::Unit::TestCase
121
121
  assert_equal "art & crafts", fortmyers_art_index600_060909.posts[0].section
122
122
  assert_equal false, fortmyers_art_index600_060909.posts[0].system_post?
123
123
  assert_equal "Husqvarna Viking Rose Embroidery-Sewing Machine", fortmyers_art_index600_060909.posts[0].title
124
-
124
+
125
125
  assert_equal "Multiple artists' moving sale. Lots of unusual items including art, art supplies, ceramics and ceramic glazes, furniture, clothes, books, electronics, cd's and much more. Also for sale is alot of restaurant equpment.\r<br>\n\r<br>\nSale to be held at 3570 Bayshore Dr. next to Bayshore Coffee Co.\r<br>\n\r<br>\nSaturday 8:00 a.m. until 2:00 Rain or shine.\r<br>", fortmyers_art_index600_060909.posts[1].contents
126
126
  assert_equal "Multiple artists' moving sale. Lots of unusual items including art, art supplies, ceramics and ceramic glazes, furniture, clothes, books, electronics, cd's and much more. Also for sale is alot of restaurant equpment.\r\n\r\nSale to be held at 3570 Bayshore Dr. next to Bayshore Coffee Co.\r\n\r\nSaturday 8:00 a.m. until 2:00 Rain or shine.\r", fortmyers_art_index600_060909.posts[1].contents_as_plain
127
127
  assert_equal false, fortmyers_art_index600_060909.posts[1].deleted_by_author?
@@ -147,7 +147,7 @@ class CraigslistListingTest < Test::Unit::TestCase
147
147
  assert_equal "art & crafts", fortmyers_art_index600_060909.posts[1].section
148
148
  assert_equal false, fortmyers_art_index600_060909.posts[1].system_post?
149
149
  assert_equal "ARTISTS' MOVING SALE-BAYSHORE", fortmyers_art_index600_060909.posts[1].title
150
-
150
+
151
151
  assert_equal "Tapestry sewing machine and embroidery arm luggage for Viking designer sewing machine. Two years old in excellent condition.", fortmyers_art_index600_060909.posts[2].contents
152
152
  assert_equal "Tapestry sewing machine and embroidery arm luggage for Viking designer sewing machine. Two years old in excellent condition.", fortmyers_art_index600_060909.posts[2].contents_as_plain
153
153
  assert_equal false, fortmyers_art_index600_060909.posts[2].deleted_by_author?
@@ -173,7 +173,7 @@ class CraigslistListingTest < Test::Unit::TestCase
173
173
  assert_equal "art & crafts", fortmyers_art_index600_060909.posts[2].section
174
174
  assert_equal false, fortmyers_art_index600_060909.posts[2].system_post?
175
175
  assert_equal "tapestry sewing machine and embroidery arm luggage", fortmyers_art_index600_060909.posts[2].title
176
-
176
+
177
177
  assert_equal "Gorgeous and one of a kind! Museum-collected artist Jay von Koffler's Aurora Series - cast glass nude sculpture - Aurora. Mounted on marble and enhanced with bronze beak. \r<br>\n\r<br>\nDimensions: 30x16x6\r<br>\nCall for appointment for studio viewing - 239.595.1793", fortmyers_art_index600_060909.posts[3].contents
178
178
  assert_equal "Gorgeous and one of a kind! Museum-collected artist Jay von Koffler's Aurora Series - cast glass nude sculpture - Aurora. Mounted on marble and enhanced with bronze beak. \r\n\r\nDimensions: 30x16x6\r\nCall for appointment for studio viewing - 239.595.1793", fortmyers_art_index600_060909.posts[3].contents_as_plain
179
179
  assert_equal false, fortmyers_art_index600_060909.posts[3].deleted_by_author?
@@ -200,14 +200,14 @@ class CraigslistListingTest < Test::Unit::TestCase
200
200
  assert_equal false, fortmyers_art_index600_060909.posts[3].system_post?
201
201
  assert_equal "Cast Glass Sculpture - Aurora", fortmyers_art_index600_060909.posts[3].title
202
202
  end
203
-
203
+
204
204
  def test_nasty_search_listings
205
205
  miami_search_sss_rack900_061809 = CraigScrape::Listings.new relative_uri_for('listing_samples/miami_search_sss_rack.6.18.09/miami_search_sss_rack900.6.18.09.html')
206
206
  assert_equal '/search/sss?query=rack&s=1000', miami_search_sss_rack900_061809.next_page_href
207
-
207
+
208
208
  miami_search_sss_rack1000_061809 = CraigScrape::Listings.new relative_uri_for('listing_samples/miami_search_sss_rack.6.18.09/miami_search_sss_rack1000.6.18.09.html')
209
209
  assert_equal nil, miami_search_sss_rack1000_061809.next_page_href
210
-
210
+
211
211
  mia_search_kitten031510 = CraigScrape::Listings.new relative_uri_for('listing_samples/mia_search_kitten.3.15.10.html')
212
212
  assert_equal "Adopt a 7 month on kitten- $75", mia_search_kitten031510.posts[0].label
213
213
  assert_equal [15, 3], mia_search_kitten031510.posts[0].post_date.to_a[3..4]
@@ -256,7 +256,7 @@ class CraigslistListingTest < Test::Unit::TestCase
256
256
 
257
257
  def test_new_listing_span051710_labels
258
258
  new_listing_span051710 = CraigScrape::Listings.new relative_uri_for('listing_samples/new_listing_span.4.17.10.html')
259
-
259
+
260
260
  assert_equal " Art Directly for Sale from the Artist", new_listing_span051710.posts[0].label
261
261
  assert_equal "Wall Art, Contemporary Abstract by Vista Gallories", new_listing_span051710.posts[1].label
262
262
  assert_equal "Gary George \"Darice\" Giclee Semi Nude Woman COA NEW", new_listing_span051710.posts[2].label
@@ -358,5 +358,5 @@ class CraigslistListingTest < Test::Unit::TestCase
358
358
  assert_equal "Wyland Oil Painting", new_listing_span051710.posts[98].label
359
359
  assert_equal "Denim Fabric Blocks for Crafts", new_listing_span051710.posts[99].label
360
360
  end
361
-
362
- end
361
+
362
+ end
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/ruby
2
+ # encoding: UTF-8
2
3
 
3
4
  require 'test/unit'
4
5
  require File.dirname(__FILE__)+'/../lib/libcraigscrape'
@@ -7,7 +8,7 @@ require File.dirname(__FILE__)+'/libcraigscrape_test_helpers'
7
8
 
8
9
  class CraigslistPostingTest < Test::Unit::TestCase
9
10
  include LibcraigscrapeTestHelpers
10
-
11
+
11
12
  def test_pukes
12
13
  assert_raise(CraigScrape::Scraper::ParseError) do
13
14
  CraigScrape::Posting.new( relative_uri_for('google.html') ).contents
@@ -22,7 +23,7 @@ EOD
22
23
  <p> Jan 4 - <a href="/mdc/reb/1128609783.html">$348000 / 1br - Large 1/1 plus office on 49th Floor. 5-Star NEW Condo. Great Views -</a><font size="-1"> (Miami)</font> <span class="p"> pic&nbsp;img</span> &lt;&lt;<i><a href="/reb/">real&nbsp;estate - by broker</a></i></p>
23
24
  EOD
24
25
  search_html_three = <<EOD
25
- <p> Dec 31 - <a href="/mdc/reb/1128520894.html">$22,000 HOME -ADULT COMMUNITY BOYNTON BEACH -</a> <span class="p"> pic</span> &lt;&lt;<i><a href="/reb/">real&nbsp;estate - by broker</a></i></p>
26
+ <p> Dec 31 - <a href="/mdc/reb/1128520894.html">$22,000 HOME -ADULT COMMUNITY BOYNTON BEACH -</a> <span class="p"> pic</span> &lt;&lt;<i><a href="/reb/">real&nbsp;estate - by broker</a></i></p>
26
27
  EOD
27
28
  search_html_four = <<EOD
28
29
  <p> Jul 22 - <a href="/mdc/reb/1128474725.html">$325000 / 3br - GOOD DEAL GREAT HOUSE AND LOCATION -</a><font size="-1"> (CORAL GABLES)</font> &lt;&lt;<i><a href="/reb/">real&nbsp;estate - by broker</a></i></p>
@@ -45,7 +46,7 @@ EOD
45
46
  assert_equal true, one.has_pic_or_img?
46
47
  assert_equal '/brw/reb/1128608404.html', one.href
47
48
  assert_equal "Losing your house? You'll need this New Loan Mod Video", one.label
48
- assert_equal "real estate - by broker", one.section
49
+ assert_equal "real estate - by broker", one.section
49
50
  assert_equal "W. Woodland", one.location
50
51
  assert_equal 4, one.post_date.month
51
52
  assert_equal 18, one.post_date.day
@@ -59,7 +60,7 @@ EOD
59
60
  assert_equal true, two.has_pic_or_img?
60
61
  assert_equal '/mdc/reb/1128609783.html', two.href
61
62
  assert_equal "$348000 / 1br - Large 1/1 plus office on 49th Floor. 5-Star NEW Condo. Great Views", two.label
62
- assert_equal "real estate - by broker", two.section
63
+ assert_equal "real estate - by broker", two.section
63
64
  assert_equal "Miami", two.location
64
65
  assert_equal 1, two.post_date.month
65
66
  assert_equal 4, two.post_date.day
@@ -73,7 +74,7 @@ EOD
73
74
  assert_equal true, three.has_pic_or_img?
74
75
  assert_equal '/mdc/reb/1128520894.html', three.href
75
76
  assert_equal "$22,000 HOME -ADULT COMMUNITY BOYNTON BEACH", three.label
76
- assert_equal "real estate - by broker", three.section
77
+ assert_equal "real estate - by broker", three.section
77
78
  assert_equal nil, three.location
78
79
  assert_equal 12, three.post_date.month
79
80
  assert_equal 31, three.post_date.day
@@ -87,7 +88,7 @@ EOD
87
88
  assert_equal false, four.has_pic_or_img?
88
89
  assert_equal '/mdc/reb/1128474725.html', four.href
89
90
  assert_equal "$325000 / 3br - GOOD DEAL GREAT HOUSE AND LOCATION", four.label
90
- assert_equal "real estate - by broker", four.section
91
+ assert_equal "real estate - by broker", four.section
91
92
  assert_equal "CORAL GABLES", four.location
92
93
  assert_equal 7, four.post_date.month
93
94
  assert_equal 22, four.post_date.day
@@ -115,7 +116,7 @@ EOD
115
116
  assert_equal true, six.has_pic_or_img?
116
117
  assert_equal '/pbc/reb/1128661387.html', six.href
117
118
  assert_equal "$2995000 / 5br - Downtown Boca New Home To Be Built", six.label
118
- assert_equal "real estate - by broker", six.section
119
+ assert_equal "real estate - by broker", six.section
119
120
  assert_equal "Boca Raton", six.location
120
121
  assert_equal nil, six.post_date
121
122
  assert_equal 2995000.0, six.price
@@ -133,7 +134,7 @@ EOD
133
134
  assert_equal nil, seven.post_date
134
135
  assert_equal 25.0, seven.price
135
136
  end
136
-
137
+
137
138
 
138
139
  def test_posting_parse
139
140
  posting0 = CraigScrape::Posting.new relative_uri_for('post_samples/posting0.html')
@@ -144,40 +145,40 @@ EOD
144
145
  assert_equal "tv cart on wheels", posting0.title
145
146
  assert_equal "NMB", posting0.location
146
147
  assert_equal 1131363612, posting0.posting_id
147
- assert_equal "sale-ktf9w-1131363612@craigslist.org", posting0.reply_to
148
+ assert_equal "sale-ktf9w-1131363612@craigslist.org", posting0.reply_to
148
149
  assert_equal [0, 21, 13, 20, 4, 2009, 1, 110, true, "EDT"], posting0.post_time.to_a
149
150
  assert_equal [], posting0.pics
150
151
  assert_equal "Has storage for videos/dvds. About 2 ft high by 21/2 ft widw. Almond/light beige color",posting0.contents_as_plain
151
152
  assert_equal 35.0, posting0.price
152
153
  assert_equal [], posting0.images
153
154
  assert_equal [], posting0.img_types
154
-
155
+
155
156
  posting1 = CraigScrape::Posting.new relative_uri_for('post_samples/posting1.html')
156
- assert_equal "Residential income property\227Investors this property is for you! This duplex has a 2bedroom/1bath unit on each side. It features updated kitchens and baths (new tubs, toilet, sink, vanities), ceramic tile flooring throughout, separate water and electric meters and on site laundry facilities. It is also closed to the Galleria, beaches and downtown Fort Lauderdale! \r<br>\n\r<br>\nJe parle le Fran\347ais\r<br>\n\r<br>\nThis property is being offered by Blaunch Perrier, Broker Associate, Atlantic Properties International. Blaunch can be reached at 954-593-0077. For additional property information you may also visit www.garylanham.com\r<br>\n\r<br>", posting1.contents
157
+ assert_equal "Residential income property\u0097Investors this property is for you! This duplex has a 2bedroom/1bath unit on each side. It features updated kitchens and baths (new tubs, toilet, sink, vanities), ceramic tile flooring throughout, separate water and electric meters and on site laundry facilities. It is also closed to the Galleria, beaches and downtown Fort Lauderdale! \r<br>\n\r<br>\nJe parle le Français\r<br>\n\r<br>\nThis property is being offered by Blaunch Perrier, Broker Associate, Atlantic Properties International. Blaunch can be reached at 954-593-0077. For additional property information you may also visit www.garylanham.com\r<br>\n\r<br>", posting1.contents
157
158
  assert_equal ["south florida craigslist", "broward county", "real estate - by broker"], posting1.full_section
158
159
  assert_equal "$189900 / 4br - Investment Property--Duplex in Fort Lauderdale", posting1.header
159
160
  assert_equal "$189900 / 4br - Investment Property--Duplex in Fort Lauderdale", posting1.label
160
161
  assert_equal "Investment Property--Duplex in Fort Lauderdale", posting1.title
161
162
  assert_equal '1000 NE 14th Pl', posting1.location
162
163
  assert_equal 1131242195, posting1.posting_id
163
- assert_equal "hous-5nzhq-1131242195@craigslist.org", posting1.reply_to
164
+ assert_equal "hous-5nzhq-1131242195@craigslist.org", posting1.reply_to
164
165
  assert_equal [0, 33, 13, 20, 4, 2009, 1, 110, true, "EDT"], posting1.post_time.to_a
165
166
  assert_equal %w(http://images.craigslist.org/3n83o33l5ZZZZZZZZZ94k913ac1582d4b1fa4.jpg http://images.craigslist.org/3n93p63obZZZZZZZZZ94k19d5e32eb3b610c2.jpg http://images.craigslist.org/3n93m03l6ZZZZZZZZZ94k6e9785e37a1b1f3f.jpg http://images.craigslist.org/3ma3oc3l4ZZZZZZZZZ94kbfecbcd2fb2e19cc.jpg), posting1.pics
166
- assert_equal "Residential income property\227Investors this property is for you! This duplex has a 2bedroom/1bath unit on each side. It features updated kitchens and baths (new tubs, toilet, sink, vanities), ceramic tile flooring throughout, separate water and electric meters and on site laundry facilities. It is also closed to the Galleria, beaches and downtown Fort Lauderdale! \r\n\r\nJe parle le Fran\347ais\r\n\r\nThis property is being offered by Blaunch Perrier, Broker Associate, Atlantic Properties International. Blaunch can be reached at 954-593-0077. For additional property information you may also visit www.garylanham.com\r\n\r", posting1.contents_as_plain
167
+ assert_equal "Residential income property\u0097Investors this property is for you! This duplex has a 2bedroom/1bath unit on each side. It features updated kitchens and baths (new tubs, toilet, sink, vanities), ceramic tile flooring throughout, separate water and electric meters and on site laundry facilities. It is also closed to the Galleria, beaches and downtown Fort Lauderdale! \r\n\r\nJe parle le Français\r\n\r\nThis property is being offered by Blaunch Perrier, Broker Associate, Atlantic Properties International. Blaunch can be reached at 954-593-0077. For additional property information you may also visit www.garylanham.com\r\n\r", posting1.contents_as_plain
167
168
  assert_equal 189900.0, posting1.price
168
169
  assert_equal [], posting1.images
169
170
  assert_equal ["http://images.craigslist.org/3n83o33l5ZZZZZZZZZ94k913ac1582d4b1fa4.jpg", "http://images.craigslist.org/3n93p63obZZZZZZZZZ94k19d5e32eb3b610c2.jpg", "http://images.craigslist.org/3n93m03l6ZZZZZZZZZ94k6e9785e37a1b1f3f.jpg", "http://images.craigslist.org/3ma3oc3l4ZZZZZZZZZ94kbfecbcd2fb2e19cc.jpg"], posting1.pics
170
171
  assert_equal [:pic], posting1.img_types
171
172
 
172
173
  posting2 = CraigScrape::Posting.new relative_uri_for('post_samples/posting2.html')
173
- assert_equal 15488, posting2.contents.length # This is easy, and probably fine enough
174
+ assert_equal 15473, posting2.contents.length # This is easy, and probably fine enough
174
175
  assert_equal ["south florida craigslist", "broward county", "cars & trucks - by dealer"], posting2.full_section
175
176
  assert_equal "PRESENTING A ELECTRON BLUE METALLIC 2002 CHEVROLET CORVETTE Z06 6 SPEE - $23975 (Fort Lauderdale)", posting2.header
176
177
  assert_equal "PRESENTING A ELECTRON BLUE METALLIC 2002 CHEVROLET CORVETTE Z06 6 SPEE - $23975", posting2.label
177
178
  assert_equal "PRESENTING A ELECTRON BLUE METALLIC 2002 CHEVROLET CORVETTE Z06 6 SPEE", posting2.title
178
179
  assert_equal 'Fort Lauderdale', posting2.location
179
180
  assert_equal 1127037648, posting2.posting_id
180
- assert_equal nil, posting2.reply_to
181
+ assert_equal nil, posting2.reply_to
181
182
  assert_equal [0, 16, 14, 17, 4, 2009, 5, 107, true, "EDT"], posting2.post_time.to_a
182
183
  assert_equal [], posting2.pics
183
184
  assert_equal "\302\240 Sheehan Buick Pontiac GMC \302\240 Pompano Beach, FL(754) 224-3257 \302\240PRESENTING A ELECTRON BLUE METALLIC 2002 CHEVROLET CORVETTE Z06 6 SPEED FLORIDA DRIVEN SMOKIN' SPORTS CAR!2002 Chevrolet Corvette Z06 Florida Driven AutoCheck Certified 5.7L V8 6sp2 Door Coupe.\302\240Price: \302\240 $23,975Exterior:Electron Blue MetallicInterior:BlackStock#:P5110AVIN:1G1YY12S625129021FREE AutoCheck Vehicle ReportMileage:63,560Transmission:6 Speed ManualEngine:V8 5.7L OHVWarranty:Limited WarrantyTitle:Clear\302\273\302\240View All 58 Photos\302\273\302\240View Full Vehicle Details\302\273\302\240Ask the Seller a Question\302\273\302\240E-mail this to a Friend\302\240 DescriptionPRESENTING A ELECTRON BLUE METALLIC 2002 CHEVROLET CORVETTE Z06 6 SPEED FLORIDA DRIVEN SMOKIN' SPORTS CAR!\r\n\r\nLOADED WITH BLACK LEATHER BUCKET SEATS, POWER DRIVERS SEAT, DUAL ZONE CLIMATE CONTROL, 4 WHEEL ABS BRAKES, POWER STEERING AND BRAKES, REAR LIMITED SLIP DIFFERENTIAL, STABILITY CONTROL, CRUISE CONTROL, TLT STEERING WHEEL, POWER WINDOWS AND LOCKS, AUTOMATIC ON/OFF HEADLAMPS, FOG LIGHTS, DUAL AIR BAG SAFETY, AM/FM STEREO CD PLAYER, INTERMITTENT WINDSHIELD WIPERS AND SO MUCH MORE - THIS CAR IS TOTALLY HOT WITH GREAT LOW MILES!\r\n\r\nPlease call us to make your deal now at 1-888-453-5244. Please visit our Website at www.sheehanautoplex.com ***View 50+ Pictures of this vehicle - a complete description including standard features and all added options & a FREE AUTO CHECK REPORT at www.sheehanautoplex.com. ***Financing for Everyone - Good credit - bad credit - divorce - charge off's - NO PROBLEM. To complete a secure credit application, please visit our website at www.sheehanautoplex.com ***The largest Dealer in the State of Florida - We export all over the world - For details please visit www.sheehanautoplex.com ***Sheehan Autoplex takes great pride in our outstanding customer service and has been recognized by the following associations - BBB (Better Business Bureau) - NIADA - and the FIADA. Call us to get your best deal. CALL NOW. 1-888-453-5244\302\240 Contact Sheehan Buick Pontiac GMCPhone:(754) 224-3257Fax:(954) 781-9050Phone:(754) 224-3257E-mail:sales@proauto.comBusiness HoursWeekdays:9:00 AM to 9:00 PMSat:9:00 AM to 6:00 PMSun:",posting2.contents_as_plain
@@ -193,7 +194,7 @@ EOD
193
194
  assert_equal "300ZX Nissan Twin Turbo 1992", posting3.title
194
195
  assert_equal "N.Miami/ Hialeah", posting3.location
195
196
  assert_equal 1130212403, posting3.posting_id
196
- assert_equal "sale-c9bpa-1130212403@craigslist.org", posting3.reply_to
197
+ assert_equal "sale-c9bpa-1130212403@craigslist.org", posting3.reply_to
197
198
  assert_equal [0, 21, 18, 19, 4, 2009, 0, 109, true, "EDT"], posting3.post_time.to_a
198
199
  assert_equal %w(http://images.craigslist.org/3n23kf3lfZZZZZZZZZ94j1160e7d7b0601934.jpg http://images.craigslist.org/3nc3kf3p2ZZZZZZZZZ94j04fbc71e0a551ace.jpg http://images.craigslist.org/3nc3k33l7ZZZZZZZZZ94k13d8d7b1024e1e0e.jpg http://images.craigslist.org/3n23k63mfZZZZZZZZZ94k7838ae5d48d91eb8.jpg), posting3.pics
199
200
  assert_equal "1992 Twin Turbo 300ZX. This car is pearl white outside and Camel leather interior with suede accents. Motor was re-done from the ground up two years ago. 23,000 on new motor rebuild! New Leather seats and center arm rest done also two years ago. Has Alpine Am/Fm Cd with Ipod cable, Viper pager alarm New! JL Audio Amp & JLAudio sub box custom made. Mtx mids& highs component speakers sparate tweeter. Car runs strong & straight. Just detailed the interior. Exterior should be painted. This car once painted will sell for over $10,000. \r\nCome get a great deal now! offers and trades will be considered. 786-303-6550 Manny",posting3.contents_as_plain
@@ -204,21 +205,21 @@ EOD
204
205
 
205
206
  # This one ended up being quite a curveball since the user uploaded HTML was such junk:
206
207
  posting4 = CraigScrape::Posting.new relative_uri_for('post_samples/posting4.html')
207
- assert_equal 19412, posting4.contents.length
208
+ assert_equal 19337, posting4.contents.length
208
209
  assert_equal ["south florida craigslist", "broward county", "real estate - by broker"], posting4.full_section
209
210
  assert_equal "$225000 / 3br - Palm Aire Golf Corner Unit!", posting4.header
210
211
  assert_equal "Palm Aire Golf Corner Unit!", posting4.title
211
212
  assert_equal "$225000 / 3br - Palm Aire Golf Corner Unit!", posting4.label
212
213
  assert_equal nil, posting4.location
213
214
  assert_equal 1139303170, posting4.posting_id
214
- assert_equal "hous-sk9f2-1139303170@craigslist.org", posting4.reply_to
215
+ assert_equal "hous-sk9f2-1139303170@craigslist.org", posting4.reply_to
215
216
  assert_equal [0, 8, 9, 25, 4, 2009, 6, 115, true, "EDT"], posting4.post_time.to_a
216
217
  assert_equal [], posting4.pics
217
- assert_equal 6396,posting4.contents_as_plain.length
218
+ assert_equal 6321,posting4.contents_as_plain.length
218
219
  assert_equal 225000.0, posting4.price
219
220
  assert_equal ["http://fortlauderdaleareahomesales.com/myfiles/5.jpg", "http://fortlauderdaleareahomesales.com/myfiles/4.jpg", "http://fortlauderdaleareahomesales.com/myfiles/7.jpg", "http://fortlauderdaleareahomesales.com/myfiles/10.jpg", "http://fortlauderdaleareahomesales.com/myfiles/1.jpg", "http://fortlauderdaleareahomesales.com/myfiles/2.jpg", "http://fortlauderdaleareahomesales.com/myfiles/3.jpg", "http://fortlauderdaleareahomesales.com/myfiles/8.jpg", "http://fortlauderdaleareahomesales.com/myfiles/9.jpg", "http://fortlauderdaleareahomesales.com/myfiles/11.jpg", "http://fortlauderdaleareahomesales.com/myfiles/14.jpg", "http://fortlauderdaleareahomesales.com/myfiles/6.jpg"], posting4.images
220
- assert_equal [:img], posting4.img_types
221
-
221
+ assert_equal [:img], posting4.img_types
222
+
222
223
  posting5 = CraigScrape::Posting.new relative_uri_for('post_samples/posting5.html')
223
224
  assert_equal true, posting5.flagged_for_removal?
224
225
  assert_equal nil, posting5.contents
@@ -228,14 +229,14 @@ EOD
228
229
  assert_equal nil, posting5.label
229
230
  assert_equal nil, posting5.location
230
231
  assert_equal nil, posting5.posting_id
231
- assert_equal nil, posting5.reply_to
232
+ assert_equal nil, posting5.reply_to
232
233
  assert_equal nil, posting5.post_time
233
234
  assert_equal [], posting5.pics
234
235
  assert_equal nil, posting5.contents_as_plain
235
236
  assert_equal nil, posting5.price
236
237
  assert_equal [], posting5.images
237
238
  assert_equal [], posting5.img_types
238
-
239
+
239
240
  posting_deleted = CraigScrape::Posting.new relative_uri_for('post_samples/this_post_has_been_deleted_by_its_author.html')
240
241
  assert_equal true, posting_deleted.deleted_by_author?
241
242
  assert_equal nil, posting_deleted.contents
@@ -245,7 +246,7 @@ EOD
245
246
  assert_equal nil, posting_deleted.title
246
247
  assert_equal nil, posting_deleted.location
247
248
  assert_equal nil, posting_deleted.posting_id
248
- assert_equal nil, posting_deleted.reply_to
249
+ assert_equal nil, posting_deleted.reply_to
249
250
  assert_equal nil, posting_deleted.post_time
250
251
  assert_equal [], posting_deleted.pics
251
252
  assert_equal nil, posting_deleted.contents_as_plain
@@ -267,11 +268,11 @@ EOD
267
268
  assert_equal 1207457727,posting6.posting_id
268
269
  assert_equal 1350.0,posting6.price
269
270
  assert_equal "hous-ccpap-1207457727@craigslist.org",posting6.reply_to
270
- assert_equal "2bth for no deposit req",posting6.title
271
+ assert_equal "2bth for no deposit req",posting6.title
271
272
  assert_equal [], posting6.images
272
273
  assert_equal ["http://images.craigslist.org/3k43pe3o8ZZZZZZZZZ9655022102a3ea51624.jpg", "http://images.craigslist.org/3n13m53p6ZZZZZZZZZ96596515e51237a179c.jpg", "http://images.craigslist.org/3od3p33leZZZZZZZZZ9656d614da8e3a51dd9.jpg", "http://images.craigslist.org/3pb3oa3leZZZZZZZZZ965eb60e4d2344019fb.jpg"], posting6.pics
273
274
  assert_equal [:pic], posting6.img_types
274
-
275
+
275
276
  brw_reb_1224008903 = CraigScrape::Posting.new relative_uri_for('post_samples/brw_reb_1224008903.html')
276
277
  assert_equal "Nice 3 Bedroom/ 2 Bathroom/ Garage Home in Sunrise. 1,134 square feet of living area with a 6,000 square foot lot. Wood laminate flooring throughout the entire house. House has been updated. Stamped concrete driveway which leads to garage. Big back yard. Central AC. Washer/Dryer. Not a short sale or foreclosure. Asking $189,999. Call Charles Schneider (The Best Damn Real Estate Company Period!) at 954-478-4784.\r<br>\n\r<br>\nDirections: Take Pine Island Road north off of Sunrise Boulevard (past Sunset Strip) to N.W. 25th Court. Head west (left) on N.W. 25th Court to N.W. 91st Lane. Head north (right) on N.W. 91st Lane to N.W. 26th Street. Head east (right) on N.W. 26th Street to the property- 9163 N.W. 26th Street, Sunrise, FL 33322", brw_reb_1224008903.contents
277
278
  assert_equal "Nice 3 Bedroom/ 2 Bathroom/ Garage Home in Sunrise. 1,134 square feet of living area with a 6,000 square foot lot. Wood laminate flooring throughout the entire house. House has been updated. Stamped concrete driveway which leads to garage. Big back yard. Central AC. Washer/Dryer. Not a short sale or foreclosure. Asking $189,999. Call Charles Schneider (The Best Damn Real Estate Company Period!) at 954-478-4784.\r\n\r\nDirections: Take Pine Island Road north off of Sunrise Boulevard (past Sunset Strip) to N.W. 25th Court. Head west (left) on N.W. 25th Court to N.W. 91st Lane. Head north (right) on N.W. 91st Lane to N.W. 26th Street. Head east (right) on N.W. 26th Street to the property- 9163 N.W. 26th Street, Sunrise, FL 33322", brw_reb_1224008903.contents_as_plain
@@ -292,10 +293,10 @@ EOD
292
293
  assert_equal [], brw_reb_1224008903.images
293
294
  assert_equal ["http://images.craigslist.org/3ma3o93laZZZZZZZZZ96g5ee7cc528f1818a8.jpg", "http://images.craigslist.org/3nf3m03oeZZZZZZZZZ96gb267b7db57d91f60.jpg", "http://images.craigslist.org/3m63oc3p1ZZZZZZZZZ96g521443416aea1cac.jpg", "http://images.craigslist.org/3nc3p53l5ZZZZZZZZZ96g8706fce2c0bb17e9.jpg"], brw_reb_1224008903.pics
294
295
  assert_equal [:pic], brw_reb_1224008903.img_types
295
-
296
+
296
297
  sfbay_art_1223614914 = CraigScrape::Posting.new relative_uri_for('post_samples/sfbay_art_1223614914.html')
297
- assert_equal "Bombay Company Beautiful Art Postered Painting \r<br>\n\225\tThe most beautiful piece of art you could have\r<br>\n\225\tMatches with any type of furnishing and decoration\r<br>\n\225\tA must see/Only one year old\r<br>\n\225\tRegular Price @ $1500.00\r<br>\n\225\tSale Price @ $650.00\r<br>", sfbay_art_1223614914.contents
298
- assert_equal "Bombay Company Beautiful Art Postered Painting \r\n\225\tThe most beautiful piece of art you could have\r\n\225\tMatches with any type of furnishing and decoration\r\n\225\tA must see/Only one year old\r\n\225\tRegular Price @ $1500.00\r\n\225\tSale Price @ $650.00\r", sfbay_art_1223614914.contents_as_plain
298
+ assert_equal "Bombay Company Beautiful Art Postered Painting \r<br>\n\u0095\tThe most beautiful piece of art you could have\r<br>\n\u0095\tMatches with any type of furnishing and decoration\r<br>\n\u0095\tA must see/Only one year old\r<br>\n\u0095\tRegular Price @ $1500.00\r<br>\n\u0095\tSale Price @ $650.00\r<br>", sfbay_art_1223614914.contents
299
+ assert_equal "Bombay Company Beautiful Art Postered Painting \r\n\u0095\tThe most beautiful piece of art you could have\r\n\u0095\tMatches with any type of furnishing and decoration\r\n\u0095\tA must see/Only one year old\r\n\u0095\tRegular Price @ $1500.00\r\n\u0095\tSale Price @ $650.00\r", sfbay_art_1223614914.contents_as_plain
299
300
  assert_equal false, sfbay_art_1223614914.deleted_by_author?
300
301
  assert_equal false, sfbay_art_1223614914.flagged_for_removal?
301
302
  assert_equal ["SF bay area craigslist", "south bay", "art & crafts"], sfbay_art_1223614914.full_section
@@ -315,13 +316,13 @@ EOD
315
316
  assert_equal ["http://images.craigslist.org/3kf3o93laZZZZZZZZZ96fbc594a6ceb1f1025.jpg"], sfbay_art_1223614914.pics
316
317
  assert_equal [:pic], sfbay_art_1223614914.img_types
317
318
  end
318
-
319
- # This was actually a 'bug' with hpricot itself when the ulimit is set too low.
319
+
320
+ # This was actually a 'bug' with hpricot itself when the ulimit is set too low.
320
321
  # the Easy fix is running "ulimit -s 16384" before the tests. But the better fix was
321
322
  # to remove the userbody sending these pages to be parsed by Hpricot
322
323
  def test_bugs_found061710
323
324
  posting_061710 = CraigScrape::Posting.new relative_uri_for('post_samples/posting1796890756-061710.html')
324
-
325
+
325
326
  assert_equal false, posting_061710.deleted_by_author?
326
327
  assert_equal true, posting_061710.downloaded?
327
328
  assert_equal false, posting_061710.flagged_for_removal?
@@ -345,7 +346,7 @@ EOD
345
346
  assert_equal "general for sale", posting_061710.section
346
347
  assert_equal false, posting_061710.system_post?
347
348
  assert_equal "*****SOFTWARE****", posting_061710.title
348
-
349
+
349
350
  posting1808219423 = CraigScrape::Posting.new relative_uri_for('post_samples/posting1808219423.html')
350
351
  assert_equal false, posting1808219423.deleted_by_author?
351
352
  assert_equal true, posting1808219423.downloaded?
@@ -371,11 +372,11 @@ EOD
371
372
  assert_equal false, posting1808219423.system_post?
372
373
  assert_equal "*Software*AdobeCS5*RosettaStone*AutoCAD*Windows7*Office2010*&* More", posting1808219423.title
373
374
  end
374
-
375
+
375
376
  def test_bug_found090610
376
377
  posting_090610 = CraigScrape::Posting.new relative_uri_for('post_samples/posting1938291834-090610.html')
377
378
 
378
- assert_equal 27629, posting_090610.contents.length
379
+ assert_equal 27628, posting_090610.contents.length
379
380
  assert_equal 2326, posting_090610.contents_as_plain.length
380
381
  assert_equal false, posting_090610.deleted_by_author?
381
382
  assert_equal true, posting_090610.downloaded?
@@ -405,7 +406,7 @@ EOD
405
406
  def test_expired_post
406
407
  posting_expired = CraigScrape::Posting.new relative_uri_for('post_samples/this_post_has_expired.html')
407
408
  assert_equal true, posting_expired.posting_has_expired?
408
- assert_equal true, posting_expired.system_post?
409
+ assert_equal true, posting_expired.system_post?
409
410
  assert_equal nil, posting_expired.contents
410
411
  assert_equal ["charleston craigslist", "for sale / wanted", "cars & trucks - by owner" ], posting_expired.full_section
411
412
  assert_equal "This posting has expired.", posting_expired.header
@@ -413,14 +414,14 @@ EOD
413
414
  assert_equal nil, posting_expired.title
414
415
  assert_equal nil, posting_expired.location
415
416
  assert_equal nil, posting_expired.posting_id
416
- assert_equal nil, posting_expired.reply_to
417
+ assert_equal nil, posting_expired.reply_to
417
418
  assert_equal nil, posting_expired.post_time
418
419
  assert_equal [], posting_expired.pics
419
420
  assert_equal nil, posting_expired.contents_as_plain
420
421
  assert_equal nil, posting_expired.price
421
422
  assert_equal [], posting_expired.images
422
423
  assert_equal [], posting_expired.img_types
423
-
424
+
424
425
  end
425
426
 
426
427
  end
metadata CHANGED
@@ -1,109 +1,29 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: olek-libcraigscrape
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Chris DeRose, DeRose Technologies, Inc.
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2012-04-07 00:00:00 -04:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: nokogiri
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.4.4
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: htmlentities
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 4.0.0
34
- version:
35
- - !ruby/object:Gem::Dependency
36
- name: activesupport
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 2.3.0
44
- - - <
45
- - !ruby/object:Gem::Version
46
- version: "3"
47
- version:
48
- - !ruby/object:Gem::Dependency
49
- name: activerecord
50
- type: :runtime
51
- version_requirement:
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 2.3.0
57
- - - <
58
- - !ruby/object:Gem::Version
59
- version: "3"
60
- version:
61
- - !ruby/object:Gem::Dependency
62
- name: actionmailer
63
- type: :runtime
64
- version_requirement:
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: 2.3.0
70
- - - <
71
- - !ruby/object:Gem::Version
72
- version: "3"
73
- version:
74
- - !ruby/object:Gem::Dependency
75
- name: kwalify
76
- type: :runtime
77
- version_requirement:
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 0.7.2
83
- version:
84
- - !ruby/object:Gem::Dependency
85
- name: sqlite3
86
- type: :runtime
87
- version_requirement:
88
- version_requirements: !ruby/object:Gem::Requirement
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: "0"
93
- version:
94
- description: quick, easy, craigslist parsing library that takes the monotony out of working with craigslist posts and listings
12
+ date: 2012-12-18 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: quick, easy, craigslist parsing library that takes the monotony out of
15
+ working with craigslist posts and listings
95
16
  email: cderose@derosetechnologies.com
96
- executables:
17
+ executables:
97
18
  - craigwatch
98
19
  extensions: []
99
-
100
- extra_rdoc_files:
20
+ extra_rdoc_files:
101
21
  - README
102
22
  - CHANGELOG
103
23
  - COPYING
104
24
  - COPYING.LESSER
105
25
  - bin/craigwatch
106
- files:
26
+ files:
107
27
  - lib/libcraigscrape.rb
108
28
  - test/post_samples/1207457727.html
109
29
  - CHANGELOG
@@ -111,8 +31,8 @@ files:
111
31
  - COPYING.LESSER
112
32
  - bin/craigwatch
113
33
  - bin/craig_report_schema.yml
114
- - bin/report_mailer/craigslist_report.html.erb
115
- - bin/report_mailer/craigslist_report.plain.erb
34
+ - bin/report_mailer/report.html.erb
35
+ - bin/report_mailer/report.text.erb
116
36
  - test/geolisting_samples/geo_listing_ca070209.html
117
37
  - test/geolisting_samples/geo_listing_ca_sk070209.html
118
38
  - test/geolisting_samples/geo_listing_cn070209.html
@@ -173,40 +93,44 @@ files:
173
93
  - lib/listings.rb
174
94
  - lib/posting.rb
175
95
  - lib/scraper.rb
176
- has_rdoc: true
177
96
  homepage: http://www.derosetechnologies.com/community/libcraigscrape
178
97
  licenses: []
179
-
180
98
  post_install_message:
181
- rdoc_options:
99
+ rdoc_options:
182
100
  - --quiet
183
101
  - --title
184
102
  - The libcraigscrape Reference
185
103
  - --main
186
104
  - README
187
105
  - --inline-source
188
- require_paths:
106
+ require_paths:
189
107
  - lib
190
- required_ruby_version: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: "0"
195
- version:
196
- required_rubygems_version: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: "0"
201
- version:
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ segments:
115
+ - 0
116
+ hash: -1981985228483291129
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ segments:
124
+ - 0
125
+ hash: -1981985228483291129
202
126
  requirements: []
203
-
204
127
  rubyforge_project: libcraigwatch
205
- rubygems_version: 1.3.5
128
+ rubygems_version: 1.8.23
206
129
  signing_key:
207
130
  specification_version: 3
208
- summary: quick, easy, craigslist parsing library that takes the monotony out of working with craigslist posts and listings
209
- test_files:
131
+ summary: quick, easy, craigslist parsing library that takes the monotony out of working
132
+ with craigslist posts and listings
133
+ test_files:
210
134
  - test/test_craigslist_geolisting.rb
211
135
  - test/test_craigslist_listing.rb
212
136
  - test/test_craigslist_posting.rb