Sha256: 212d5b6b791f33cca9e880dd689897b4181cd19298e1bccac2eaba0431ae0fbf

Contents?: true

Size: 795 Bytes

Versions: 12

Compression:

Stored size: 795 Bytes

Contents

# @imdb_movie.poster.should == 'http://ia.media-imdb.com/images/M/MV5BMTkzODA5ODYwOV5BMl5BanBnXkFtZTcwMjAyNDYyMQ@@._V1._SX216_SY316_.jpg'

class ImdbImage

  attr_accessor :url

  def initialize(url)
    @url = File.join("http://www.imdb.com/", url)
  end

  def image
    document.at("table#principal tr td img")['src'] rescue nil
  end

  def document
    @document ||= Hpricot(fetch(self.url))
  end

  private

  MAX_ATTEMPTS = 3
  SECONDS_BETWEEN_RETRIES = 1.0

  def fetch(page)
    doc = nil
    attempts = 0
    begin
      doc = read_page(page)
    rescue Exception => e
      attempts += 1
      if attempts > MAX_ATTEMPTS
        raise
      else
        sleep SECONDS_BETWEEN_RETRIES
        retry
      end
    end
    doc
  end

  def read_page(page)
    open(page).read
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
royw-imdb-0.0.16 lib/imdb/imdb_image.rb
royw-imdb-0.0.17 lib/imdb/imdb_image.rb
royw-imdb-0.0.19 lib/imdb/imdb_image.rb
royw-imdb-0.0.20 lib/imdb/imdb_image.rb
royw-imdb-0.0.21 lib/imdb/imdb_image.rb
royw-imdb-0.1.0 lib/imdb/imdb_image.rb
royw-imdb-0.1.1 lib/imdb/imdb_image.rb
royw-imdb-0.1.2 lib/imdb/imdb_image.rb
royw-imdb-0.1.3 lib/imdb/imdb_image.rb
royw-imdb-0.1.4 lib/imdb/imdb_image.rb
royw-imdb-0.1.5 lib/imdb/imdb_image.rb
royw-imdb-0.1.6 lib/imdb/imdb_image.rb