Sha256: 50522e42f3afeba41b6c61bde89e6c3ebbd0fe74830884e52f91f7e3acbb32a4

Contents?: true

Size: 969 Bytes

Versions: 1

Compression:

Stored size: 969 Bytes

Contents

require "nokogiri"
require "rest-client"

class ICheckMovies
  attr_reader :url
  
  def initialize(url)
    @url = url
    @movie = Struct.new(:imdb_link, :title, :year, :details, :id, :order)
  end
  
  def self.fetch(url)
    ICheckMovies.new(url)
  end
  
  def movies
    @_movies ||= content.css("li.movie").map do |movie|
      @movie.new(
        movie.at_css("a.optionIMDB").attr("href"),
        movie.at_css("h2 a").content,
        movie.at_css("a.tagNamespaceYear").content.to_i,
        "http://www.icheckmovies.com" + movie.at_css("a.dvdCoverSmall").attr("href"),
        movie.at_css("a.optionIMDB").attr("href").match(/(tt\d{7})/).to_a[1],
        movie.at_css(".rank") ? movie.at_css(".rank").content.to_i : 0 )
    end
  end
  
  def name
    @_name ||= content.at_css("h1").content
  end
    
  private
    def content
      @_content ||= Nokogiri::HTML(data)
    end
    
    def data
      @_data ||= RestClient.get(@url, timeout: 10)
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
icheckmovies-0.6.1 lib/icheckmovies.rb