Class: Enceladus::Configuration::Image
- Inherits:
-
Object
- Object
- Enceladus::Configuration::Image
- Includes:
- Singleton
- Defined in:
- lib/enceladus/configuration/image.rb
Instance Attribute Summary collapse
-
#backdrop_sizes ⇒ Object
readonly
Returns the value of attribute backdrop_sizes.
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
-
#include_image_language ⇒ Object
Returns the value of attribute include_image_language.
-
#logo_sizes ⇒ Object
readonly
Returns the value of attribute logo_sizes.
-
#poster_sizes ⇒ Object
readonly
Returns the value of attribute poster_sizes.
-
#profile_sizes ⇒ Object
readonly
Returns the value of attribute profile_sizes.
-
#secure_base_url ⇒ Object
readonly
Returns the value of attribute secure_base_url.
-
#still_sizes ⇒ Object
readonly
Returns the value of attribute still_sizes.
Instance Method Summary collapse
-
#initialize ⇒ Image
constructor
:nodoc:#.
-
#reset! ⇒ Object
Reset or nullify all image configurations.
-
#setup! ⇒ Object
Fetches the TMDb account’s configuration data.
-
#url_for(type, image_path) ⇒ Object
Returns an array of strings containing URL’s for movie/person/tv assets.
-
#valid? ⇒ Boolean
Returns a boolean indicating whether the Image configurations are valid or not.
Constructor Details
#initialize ⇒ Image
:nodoc:#
10 11 12 |
# File 'lib/enceladus/configuration/image.rb', line 10 def initialize #:nodoc:# reset! end |
Instance Attribute Details
#backdrop_sizes ⇒ Object
Returns the value of attribute backdrop_sizes.
7 8 9 |
# File 'lib/enceladus/configuration/image.rb', line 7 def backdrop_sizes @backdrop_sizes end |
#base_url ⇒ Object
Returns the value of attribute base_url.
7 8 9 |
# File 'lib/enceladus/configuration/image.rb', line 7 def base_url @base_url end |
#include_image_language ⇒ Object
Returns the value of attribute include_image_language.
8 9 10 |
# File 'lib/enceladus/configuration/image.rb', line 8 def include_image_language @include_image_language end |
#logo_sizes ⇒ Object
Returns the value of attribute logo_sizes.
7 8 9 |
# File 'lib/enceladus/configuration/image.rb', line 7 def logo_sizes @logo_sizes end |
#poster_sizes ⇒ Object
Returns the value of attribute poster_sizes.
7 8 9 |
# File 'lib/enceladus/configuration/image.rb', line 7 def poster_sizes @poster_sizes end |
#profile_sizes ⇒ Object
Returns the value of attribute profile_sizes.
7 8 9 |
# File 'lib/enceladus/configuration/image.rb', line 7 def profile_sizes @profile_sizes end |
#secure_base_url ⇒ Object
Returns the value of attribute secure_base_url.
7 8 9 |
# File 'lib/enceladus/configuration/image.rb', line 7 def secure_base_url @secure_base_url end |
#still_sizes ⇒ Object
Returns the value of attribute still_sizes.
7 8 9 |
# File 'lib/enceladus/configuration/image.rb', line 7 def still_sizes @still_sizes end |
Instance Method Details
#reset! ⇒ Object
Reset or nullify all image configurations.
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/enceladus/configuration/image.rb', line 32 def reset! self.base_url = nil self.secure_base_url = nil self.backdrop_sizes = [] self.logo_sizes = [] self.logo_sizes = [] self.poster_sizes = [] self.profile_sizes = [] self.still_sizes = [] self.include_image_language = "en" self end |
#setup! ⇒ Object
Fetches the TMDb account’s configuration data. This method hits the following TMDb endpoints:
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/enceladus/configuration/image.rb', line 18 def setup! configuration = Enceladus::Requester.get("configuration").images self.base_url = configuration.base_url.freeze self.secure_base_url = configuration.secure_base_url.freeze self.backdrop_sizes = configuration.backdrop_sizes.map(&:freeze).freeze self.logo_sizes = configuration.logo_sizes.map(&:freeze).freeze self.poster_sizes = configuration.poster_sizes.map(&:freeze).freeze self.profile_sizes = configuration.profile_sizes.map(&:freeze).freeze self.still_sizes = configuration.still_sizes.map(&:freeze).freeze self end |
#url_for(type, image_path) ⇒ Object
Returns an array of strings containing URL’s for movie/person/tv assets. Be aware to setup the configuration beforehand, by running:
Enceladus::Configuration::Image.instance.setup!
The following arguments are necessary:
-
type: the type of asset you’re providing, must be one of “backdrop”, “logo”, “poster” or “profile”.
-
image_path: /gWyevEz9NT5tON6kdhxsmfvdJ40.jpg
Examples:
Enceladus::Configuration::Image.instance.url_for("backdrop", )
=> ["http://image.tmdb.org/t/p/w300/gWyevEz9NT5tON6kdhxsmfvdJ40.jpg", "http://image.tmdb.org/t/p/w780/gWyevEz9NT5tON6kdhxsmfvdJ40.jpg", "http://image.tmdb.org/t/p/w1280/gWyevEz9NT5tON6kdhxsmfvdJ40.jpg", "http://image.tmdb.org/t/p/original/gWyevEz9NT5tON6kdhxsmfvdJ40.jpg"]
59 60 61 62 63 64 65 66 67 |
# File 'lib/enceladus/configuration/image.rb', line 59 def url_for(type, image_path) types = ["backdrop", "logo", "poster", "profile"] raise ArgumentError.new("type must be one of #{types}") unless types.include?(type) return [] if image_path.nil? || image_path.empty? && valid? send("#{type}_sizes").map do |size| "#{base_url}#{size}#{image_path}" end end |
#valid? ⇒ Boolean
Returns a boolean indicating whether the Image configurations are valid or not.
71 72 73 74 75 76 77 78 79 |
# File 'lib/enceladus/configuration/image.rb', line 71 def valid? !base_url.nil? && !secure_base_url.nil? && backdrop_sizes.any? && logo_sizes.any? && poster_sizes.any? && profile_sizes.any? && still_sizes.any? end |