Class: Enceladus::Configuration::Image

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/enceladus/configuration/image.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeImage

:nodoc:#



10
11
12
# File 'lib/enceladus/configuration/image.rb', line 10

def initialize #:nodoc:#
  reset!
end

Instance Attribute Details

#backdrop_sizesObject

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_urlObject

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_languageObject

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_sizesObject

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_sizesObject

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_sizesObject

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_urlObject

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_sizesObject

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"]

Raises:

  • (ArgumentError)


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.

Returns:

  • (Boolean)


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