class Movie

Attributes

content_rating[RW]
director[RW]
genres[RW]
id[RW]
release_year[RW]
runtime[RW]
stars[RW]
summary[RW]
title[RW]
type[RW]

Public Class Methods

all() click to toggle source
# File lib/imdb_term/movie.rb, line 24
def self.all
  @@all
end
create(movie_data) click to toggle source
# File lib/imdb_term/movie.rb, line 28
def self.create(movie_data)
  movie = self.new(movie_data)
  movie.save
  movie
end
create_from_array(array) click to toggle source
# File lib/imdb_term/movie.rb, line 52
def self.create_from_array(array)
  movies = Array.new
  array.each do |movie_data|
    movies << self.create_or_update(movie_data)
  end
  movies
end
create_or_update(movie_data) click to toggle source
# File lib/imdb_term/movie.rb, line 34
def self.create_or_update(movie_data)
  movie = self.find_by_id(movie_data[:id])
  if movie.nil?
    movie = self.create(movie_data)
  else
    movie.update(movie_data)
  end
  movie
end
find_by_id(id) click to toggle source
# File lib/imdb_term/movie.rb, line 60
def self.find_by_id(id)
  self.all.detect { |movie| movie.id.eql?(id) }
end
find_by_title(title) click to toggle source
# File lib/imdb_term/movie.rb, line 69
def self.find_by_title(title)
  self.all.detect { |movie| movie.title.casecmp(title) == 0 }
end
find_or_create_by_id(id) click to toggle source
# File lib/imdb_term/movie.rb, line 64
def self.find_or_create_by_id(id)
  movie = self.find_by_id(id)
  movie.nil? ? self.create({:id => id}) : movie
end
new(movie_data) click to toggle source
# File lib/imdb_term/movie.rb, line 7
def initialize(movie_data)
  movie_data.each do |key, value|
    self.send("#{key}=", value)
  end
end
new_from_array(array) click to toggle source
# File lib/imdb_term/movie.rb, line 44
def self.new_from_array(array)
  movies = Array.new
  array.each do |movie_data|
    movies << self.new(movie_data)
  end
  movies
end

Public Instance Methods

save() click to toggle source
# File lib/imdb_term/movie.rb, line 19
def save
  @@all << self
  self
end
update(movie_data) click to toggle source
# File lib/imdb_term/movie.rb, line 13
def update(movie_data)
  movie_data.each do |key, value|
    self.send("#{key}=", value)
  end
end