Skip to content

Instantly share code, notes, and snippets.

@wallerdev
Created January 26, 2012 03:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wallerdev/1680733 to your computer and use it in GitHub Desktop.
Save wallerdev/1680733 to your computer and use it in GitHub Desktop.
Ruby$ ruby broken.rb
Apartment found at The Oaks ( 2 BEDROOM )
Frame number: 0/11
Frame type: block
From: broken.rb @ line 61 in AdChecker#check_ad:
56: # If something matches the apartment hash, we output it
57: print "Apartment found at #{key}"
58:
59: print " ( SPRING )" if check_title_and_content(Periods)
60: print " ( 2 BEDROOM )" if check_title_and_content(Bedrooms)
=> 61: binding.pry
62: puts "\n", @title, @url, "\n"
63: end
64: end
65: end
66: end
[1] pry(#<AdChecker>)> show-stack
Showing all accessible frames in stack:
--
=> #0 [block] block in check_ad <AdChecker#check_ad()>
#1 [method] check_ad <AdChecker#check_ad()>
#2 [block] block in find_from_feed <ApartmentFinder#find_from_feed(feed)>
#3 [method] find_from_feed <ApartmentFinder#find_from_feed(feed)>
#4 [block] block (2 levels) in find <ApartmentFinder#find(urls)>
#5 [method] open_uri <OpenURI.open_uri(name, *rest)>
#6 [method] open <OpenURI::OpenRead#open(*rest, &block)>
#7 [method] open <Kernel#open(name, *rest, &block)>
#8 [block] block in find <ApartmentFinder#find(urls)>
#9 [method] find <ApartmentFinder#find(urls)>
#10 [eval] <main>
#11 [top] <main>
[2] pry(#<AdChecker>)> up
Frame number: 1/11
Frame type: method
From: broken.rb @ line 54 in AdChecker#check_ad:
49: def check_title_and_content(regexes)
50: regexes.any? { |regex| @title =~ regex || @content =~ regex }
51: end
52:
53: def check_ad
=> 54: Apartments.each_key do |key|
55: if check_title_and_content(Apartments[key])
56: # If something matches the apartment hash, we output it
57: print "Apartment found at #{key}"
58:
59: print " ( SPRING )" if check_title_and_content(Periods)
[3] pry(#<AdChecker>)> up
Frame number: 2/11
Frame type: block
From: broken.rb @ line 35 in ApartmentFinder#find_from_feed:
30:
31: # Check each item in the feed
32: def find_from_feed(feed)
33: feed.items.each do |entry|
34: checker = AdChecker.new(entry.title, entry.description, entry.link)
=> 35: checker.check_ad
36: end
37: end
38: end
39:
40: class AdChecker
[4] pry(#<ApartmentFinder>)> up
Frame number: 3/11
Frame type: method
From: broken.rb @ line 33 in ApartmentFinder#find_from_feed:
28: end
29: end
30:
31: # Check each item in the feed
32: def find_from_feed(feed)
=> 33: feed.items.each do |entry|
34: checker = AdChecker.new(entry.title, entry.description, entry.link)
35: checker.check_ad
36: end
37: end
38: end
[5] pry(#<ApartmentFinder>)> up
Frame number: 4/11
Frame type: block
From: broken.rb @ line 26 in ApartmentFinder#find:
21: # Find apartments based on the rss feed urls given.
22: def find(urls)
23: urls.each do |url|
24: open(url) do |rss|
25: feed = RSS::Parser.parse(rss)
=> 26: find_from_feed(feed)
27: end
28: end
29: end
30:
31: # Check each item in the feed
[6] pry(#<ApartmentFinder>)> up
Frame number: 5/11
Frame type: method
From: /Users/Eddie/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/open-uri.rb @ line 150 in OpenURI.open_uri:
145:
146: io = open_loop(uri, options)
147: io.set_encoding(encoding) if encoding
148: if block_given?
149: begin
=> 150: yield io
151: ensure
152: io.close
153: end
154: else
155: io
[7] pry(OpenURI)> up
Frame number: 6/11
Frame type: method
From: /Users/Eddie/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/open-uri.rb @ line 671 in OpenURI::OpenRead#open:
666: # OpenURI::HTTPRedirect exception raised on redirection.
667: # It is true by default.
668: # The true means redirections between http and ftp is permitted.
669: #
670: def open(*rest, &block)
=> 671: OpenURI.open_uri(self, *rest, &block)
672: end
673:
674: # OpenURI::OpenRead#read([options]) reads a content referenced by self and
675: # returns the content as string.
676: # The string is extended with OpenURI::Meta.
[8] pry(#<URI::HTTP>)> up
Frame number: 7/11
Frame type: method
From: /Users/Eddie/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/open-uri.rb @ line 33 in Kernel#open:
28: if name.respond_to?(:open)
29: name.open(*rest, &block)
30: elsif name.respond_to?(:to_str) &&
31: %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name &&
32: (uri = URI.parse(name)).respond_to?(:open)
=> 33: uri.open(*rest, &block)
34: else
35: open_uri_original_open(name, *rest, &block)
36: end
37: end
38: module_function :open
[9] pry(#<ApartmentFinder>)> up
Frame number: 8/11
Frame type: block
From: broken.rb @ line 24 in ApartmentFinder#find:
19:
20: class ApartmentFinder
21: # Find apartments based on the rss feed urls given.
22: def find(urls)
23: urls.each do |url|
=> 24: open(url) do |rss|
25: feed = RSS::Parser.parse(rss)
26: find_from_feed(feed)
27: end
28: end
29: end
[10] pry(#<ApartmentFinder>)> up
Frame number: 9/11
Frame type: method
From: broken.rb @ line 23 in ApartmentFinder#find:
18:
19:
20: class ApartmentFinder
21: # Find apartments based on the rss feed urls given.
22: def find(urls)
=> 23: urls.each do |url|
24: open(url) do |rss|
25: feed = RSS::Parser.parse(rss)
26: find_from_feed(feed)
27: end
28: end
[11] pry(#<ApartmentFinder>)> up
Frame number: 10/11
Frame type: eval
From: broken.rb @ line 69:
64: end
65: end
66: end
67:
68: apartment_finder = ApartmentFinder.new
=> 69: apartment_finder.find([
70: 'http://lansing.craigslist.org/apa/index.rss',
71: 'http://lansing.craigslist.org/sub/index.rss'
72: ])
[12] pry(main)> up
Frame number: 11/11
Frame type: top
From: broken.rb @ line 0:
1: # This script can be used to check craigslist to see if certain apartment complexes become available.
2: # You can customize the Apartments, Periods and Bedrooms below to change the parameters.
3:
4: require 'rubygems'
5: require 'htmlentities'
[13] pry(main)> up
Error: At top of stack, cannot go further!
[14] pry(main)> down
Frame number: 10/11
Frame type: eval
From: broken.rb @ line 69:
64: end
65: end
66: end
67:
68: apartment_finder = ApartmentFinder.new
=> 69: apartment_finder.find([
70: 'http://lansing.craigslist.org/apa/index.rss',
71: 'http://lansing.craigslist.org/sub/index.rss'
72: ])
[15] pry(main)> down
Frame number: 9/11
Frame type: method
From: broken.rb @ line 23 in ApartmentFinder#find:
18:
19:
20: class ApartmentFinder
21: # Find apartments based on the rss feed urls given.
22: def find(urls)
=> 23: urls.each do |url|
24: open(url) do |rss|
25: feed = RSS::Parser.parse(rss)
26: find_from_feed(feed)
27: end
28: end
[16] pry(#<ApartmentFinder>)> urls
=> ["http://lansing.craigslist.org/apa/index.rss",
"http://lansing.craigslist.org/sub/index.rss"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment