class Movie

Attributes

gross_box[RW]
name[RW]
number_weeks[RW]
weekend_box[RW]

Public Class Methods

all() click to toggle source
# File lib/top_box_office/movie.rb, line 8
def self.all 
  @@all 
end
doc() click to toggle source
# File lib/top_box_office/movie.rb, line 28
def self.doc 
  @@doc ||= Nokogiri::HTML(open("http://www.imdb.com/chart/"))
end
find(id) click to toggle source
# File lib/top_box_office/movie.rb, line 16
def self.find(id)
  self.all[id.to_i - 1]
end
find_by_name(movie) click to toggle source
# File lib/top_box_office/movie.rb, line 20
def self.find_by_name(movie)
  self.all.detect do |mov|
    mov.movie.downcase.strip == movie.downcase.strip ||
    mov.movie.split("").first.strip.downcase == movie.downcase.strip
  end
end
gross_sales() click to toggle source
# File lib/top_box_office/movie.rb, line 44
def self.gross_sales
  @@gross_sales ||= doc.search(".secondaryInfo").collect{|e| e.text.strip}
end
movie_names() click to toggle source
# File lib/top_box_office/movie.rb, line 36
def self.movie_names
  @@movie_names ||= doc.search(".titleColumn").collect{|e| e.text.strip}
end
num_weeks() click to toggle source
# File lib/top_box_office/movie.rb, line 48
def self.num_weeks
  @@num_weeks ||= doc.search(".weeksColumn").collect{|e| e.text.strip}
end
scrape_all() click to toggle source
# File lib/top_box_office/movie.rb, line 52
def self.scrape_all 
  (0..movie_names.size-1).to_a.each do |i|
    movie_name = movie_names[i]
    weekend_box = weekend_sales[i]
    gross_box = gross_sales[i] 
    number_weeks = num_weeks[i]

    movie = Movie.new 
    movie.name = movie_name 
    movie.weekend_box = weekend_box
    movie.gross_box = gross_box
    movie.number_weeks = number_weeks 
    movie.save 
  end
end
weekend_date() click to toggle source
# File lib/top_box_office/movie.rb, line 32
def self.weekend_date
  @@weekend_date ||= doc.search("#boxoffice.article.listo h4").text
end
weekend_sales() click to toggle source
# File lib/top_box_office/movie.rb, line 40
def self.weekend_sales
  @@weekend_sales ||= doc.search(".titleColumn+.ratingColumn").collect{|e| e.text.strip}
end

Public Instance Methods

save() click to toggle source
# File lib/top_box_office/movie.rb, line 12
def save 
  @@all << self 
end