Sha256: 9bc4d93776f1feca8f8b31f6e629866da0d2cb146ce6fb662f680852039d3d33
Contents?: true
Size: 859 Bytes
Versions: 1
Compression:
Stored size: 859 Bytes
Contents
class ImdbSearch def initialize(query) @query = query end def movies @movies ||= (exact_match? ? parse_movie : parse_movies) end private def document @document ||= Hpricot(open("http://www.imdb.com/find?q=#{CGI::escape(@query)};s=tt").read) end def parse_movies document.search('a[@href^="/title/tt"]').reject do |element| element.innerHTML.strip_tags.empty? end.map do |element| [element['href'][/\d+/], element.innerHTML.strip_tags.unescape_html] end.uniq.map do |values| ImdbMovie.new(*values) end end def parse_movie id = document.at("a[@name='poster']")['href'][/\d+$/] title = document.at("h1").innerHTML.split('<span').first.strip.unescape_html [ImdbMovie.new(id, title)] end def exact_match? document.at("title[text()='IMDb Search']").nil? end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
porras-imdb-0.0.7 | lib/imdb/imdb_search.rb |