lib/ruby-tmdb/tmdb_movie.rb in ruby-tmdb-0.1.4 vs lib/ruby-tmdb/tmdb_movie.rb in ruby-tmdb-0.2.1

- old
+ new

@@ -7,40 +7,68 @@ raise ArgumentError, "At least one of: id, title, imdb should be supplied" if(options[:id].nil? && options[:imdb].nil? && options[:title].nil?) results = [] unless(options[:id].nil? || options[:id].to_s.empty?) - results << Tmdb.api_call("Movie.getInfo", options[:id]) + results << Tmdb.api_call("Movie.getInfo", options[:id], options[:language]) end unless(options[:imdb].nil? || options[:imdb].to_s.empty?) - results << Tmdb.api_call("Movie.imdbLookup", options[:imdb]) + results << Tmdb.api_call("Movie.imdbLookup", options[:imdb], options[:language]) options[:expand_results] = true end unless(options[:title].nil? || options[:title].to_s.empty?) - results << Tmdb.api_call("Movie.search", options[:title]) + results << Tmdb.api_call("Movie.search", options[:title], options[:language]) end results.flatten! results.compact! unless(options[:limit].nil?) raise ArgumentError, ":limit must be an integer greater than 0" unless(options[:limit].is_a?(Fixnum) && options[:limit] > 0) results = results.slice(0, options[:limit]) end - results.map!{|m| TmdbMovie.new(m, options[:expand_results]) } + results.map!{|m| TmdbMovie.new(m, options[:expand_results], options[:language]) } if(results.length == 1) return results[0] else return results end end - def self.new(raw_data, expand_results = false) + def self.browse(options) + options = { + :expand_results => false + }.merge(options) + + expand_results = options.delete(:expand_results) + language = options.delete(:language) + + results = [] + results << Tmdb.api_call("Movie.browse", options, language) + + results.flatten! + results.compact! + + results.map!{|m| TmdbMovie.new(m, expand_results, language) } + + if(results.length == 1) + return results[0] + else + return results + end + + end + + def self.new(raw_data, expand_results = false, language = nil) # expand the result by calling Movie.getInfo unless :expand_results is false or the data is already complete # (as determined by checking for the trailer property in the raw data) - raw_data = Tmdb.api_call('Movie.getInfo', raw_data["id"]).first if(expand_results && !raw_data.has_key?("trailer")) + if(expand_results && !raw_data.has_key?("trailer")) + expanded_data = Tmdb.api_call('Movie.getInfo', raw_data["id"], language) + raise ArgumentError, "Unable to fetch expanded info for Movie ID: '#{raw_data["id"]}'" if expanded_data.nil? + raw_data = expanded_data.first + end return Tmdb.data_to_object(raw_data) end def ==(other) return false unless(other.is_a?(TmdbMovie)) \ No newline at end of file