class Tmdb::Movie

Public Class Methods

alternative_titles(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 10
def self.alternative_titles(id, filters={})
  result = Resource.new("/movie/#{id}/alternative_titles", filters).get

  result['titles'].map do |entry|
    self.new(entry)
  end
end
backdrops(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 42
def self.backdrops(id, filters={})
  result = Resource.new("/movie/#{id}/images", filters).get

  result['backdrops'].map do |entry|
    Backdrop.new(entry)
  end
end
cast(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 18
def self.cast(id, filters={})
  result = Resource.new("/movie/#{id}/credits", filters).get

  result['cast'].map do |entry|
    Person.new(entry)
  end
end
changes(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 110
def self.changes(id, filters={})
  result = Resource.new("/movie/#{id}/changes", filters).get

  result['changes'].map do |entry|
    change = Change.new(entry)
    change.convert_items!
    change
  end
end
crew(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 26
def self.crew(id, filters={})
  result = Resource.new("/movie/#{id}/credits", filters).get

  result['crew'].map do |entry|
    Person.new(entry)
  end
end
detail(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 4
def self.detail(id, filters={})
  result = Resource.new("/movie/#{id}", filters).get

  create_new_instance_with_normalized_data(result)
end
director(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 34
def self.director(id, filters={})
  result = Resource.new("/movie/#{id}/credits", filters).get

  result['crew'].select{ |x| x['job'] == 'Director' }.map do |entry|
    Person.new(entry)
  end
end
keywords(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 66
def self.keywords(id, filters={})
  result = Resource.new("/movie/#{id}/keywords", filters).get

  result['keywords'].map do |entry|
    Keyword.new(entry)
  end
end
latest(filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 120
def self.latest(filters={})
  result = Resource.new('/movie/latest', filters).get

  create_new_instance_with_normalized_data(result)
end
lists(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 105
def self.lists(id, filters={})
  result = Resource.new("/movie/#{id}/lists", filters).get
  Tmdb::List.new(result)
end
now_playing(filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 131
def self.now_playing(filters={})
  result = Resource.new('/movie/now_playing', filters).get
  self.new(result)
end
posters(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 50
def self.posters(id, filters={})
  result = Resource.new("/movie/#{id}/images", filters).get

  result['posters'].map do |entry|
    Poster.new(entry)
  end
end
recommendations(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 95
def self.recommendations(id, filters={})
  result = Resource.new("/movie/#{id}/recommendations", filters).get
  Recommendation.new(result)
end
releases(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 74
def self.releases(id, filters={})
  result = Resource.new("/movie/#{id}/releases", filters).get

  result['countries'].map do |entry|
    Release.new(entry)
  end
end
reviews(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 100
def self.reviews(id, filters={})
  result = Resource.new("/movie/#{id}/reviews", filters).get
  Review.new(result)
end
similar(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 90
def self.similar(id, filters={})
  result = Resource.new("/movie/#{id}/similar", filters).get
  self.new(result)
end
top_rated(filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 141
def self.top_rated(filters={})
  result = Resource.new('/movie/top_rated', filters).get
  self.new(result)
end
translations(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 82
def self.translations(id, filters={})
  result = Resource.new("/movie/#{id}/translations", filters).get

  result['translations'].map do |entry|
    Translation.new(entry)
  end
end
upcoming(filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 126
def self.upcoming(filters={})
  result = Resource.new('/movie/upcoming', filters).get
  self.new(result)
end
videos(id, filters={}) click to toggle source
# File lib/tmdb/movie.rb, line 58
def self.videos(id, filters={})
  result = Resource.new("/movie/#{id}/videos", filters).get

  result['results'].map do |entry|
    Video.new(entry)
  end
end

Private Class Methods

create_new_instance_with_normalized_data(result) click to toggle source
# File lib/tmdb/movie.rb, line 146
def self.create_new_instance_with_normalized_data(result)
  movie = self.new(
      result.except(
          'genres',
          'production_companies',
          'production_countries',
          'spoken_languages'
      )
  )

  movie.genres = result['genres'].map do |genre|
    Genre.new(genre)
  end

  movie.production_companies = result['production_companies'].map do |company|
    Company.new(company)
  end

  movie.production_countries = result['production_countries'].map do |country|
    Country.new(country)
  end

  movie.spoken_languages = result['spoken_languages'].map do |language|
    Language.new(language)
  end

  movie
end