tmobaird/GuideboxWrapper

View on GitHub
lib/GuideboxWrapper/movie/movie.rb

Summary

Maintainability
A
0 mins
Test Coverage
module GuideboxWrapper
    class Movie 
        attr_reader :id, :title, :release_year, :cast, :writers, :directors, :release_date, :rating, :duration, :themoviedb, :imdb, :rottentomatoes, :alternate_titles, :freebase, :wikipedia_id, :metacritic, :overview, :genres, :tags, :facebook_link, :web_trailers, :ios_trailers, :android_trailers, :free_web_sources, :free_ios_sources, :free_android_sources, :tv_everywhere_web_sources, :tv_everywhere_ios_sources, :tv_everywhere_android_sources, :subscription_web_sources, :purchase_web_sources, :purchase_ios_sources, :purchase_android_sources, :posters, :backgrounds, :banners, :thumbnails
        attr_accessor :posters, :backgrounds, :banners, :thumbnails

        def initialize(movie_info)
            excluded_keys = ["common_sense_media", "poster_120x171", "poster_240x342", "poster_400x570", "social", "trailers"]
            movie_info.each do |key, value|
                unless excluded_keys.include?(key)
                    instance_variable_set("@#{key}", value)
                end
              end
            @facebook_link = movie_info["social"]["facebook"]["link"]
            @web_trailers = movie_info["trailers"]["web"]
            @ios_trailers = movie_info["trailers"]["ios"]
            @android_trailers = movie_info["trailers"]["android"]
        end

        def images=(api_key)
            if @posters == nil
                wrapper = GuideboxWrapper::GuideboxMovie.new(api_key, "all")
                url = wrapper.base_url
                url += "/movie/" + @id.to_s + "/images/all"
                  images = wrapper.client.query(url)["results"]
                  @posters = images["posters"]
                @backgrounds = images["backgrounds"]
                @banners = images["banners"]
                @thumbnails = images["thumbnails"]
            end
        end

        def large_posters
            lg_posters ||= []
            for poster in @posters
                lg_posters << poster["large"]
            end
            lg_posters
        end

        def medium_posters
            md_posters ||= []
            for poster in @posters
                md_posters << poster["medium"]
            end
            md_posters
        end

        def small_posters 
            sm_posters ||= []
            for poster in @posters 
                sm_posters << poster["small"]
            end
            sm_posters
        end

        def xlarge_banners
            xlg_banners ||= []
            for banner in @banners
                xlg_banners << banner["xlarge"]
            end
            xlg_banners
        end

        def large_banners
            lg_banners ||= []
            for banner in @banners
                lg_banners << banner["large"]
            end
            lg_banners
        end

        def medium_banners
            md_banners ||= []
            for banner in @banners
                md_banners << banner["medium"]
            end
            md_banners
        end

        def small_banners
            sm_banners ||= []
            for banner in @banners
                sm_banners << banner["small"]
            end
            sm_banners
        end

        def xlarge_thumbnails
            xlg_thumbnails ||= []
            for thumbnail in @thumbnails
                xlg_thumbnails << thumbnail["xlarge"]
            end
            xlg_thumbnails
        end

        def large_thumbnails
            lg_thumbnails ||= []
            for thumbnail in @thumbnails
                lg_thumbnails << thumbnail["large"]
            end
            lg_thumbnails
        end

        def medium_thumbnails
            md_thumbnails ||= []
            for thumbnail in @thumbnails
                md_thumbnails << thumbnail["medium"]
            end
            md_thumbnails
        end

        def small_thumbnails
            sm_thumbnails ||= []
            for thumbnail in @thumbnails
                sm_thumbnails << thumbnail["small"]
            end
            sm_thumbnails
        end
    end
end