Class: TVMaze::Show
- Inherits:
-
Object
- Object
- TVMaze::Show
- Defined in:
- lib/tvmaze/show.rb
Constant Summary collapse
- SHOW_MAPPING =
{ id: :id, url: :url, name: :name, type: :type, language: :language, genres: :genres, status: :status, runtime: :runtime, premiered: :premiered, schedule: :schedule, rating: :rating, weight: :weight, network: :network, webChannel: :web_channel, summary: :summary, updated: :updated }
Instance Attribute Summary collapse
-
#episodes ⇒ Object
Returns the value of attribute episodes.
-
#image_medium ⇒ Object
Returns the value of attribute image_medium.
-
#image_original ⇒ Object
Returns the value of attribute image_original.
-
#next_episode ⇒ Object
Returns the value of attribute next_episode.
-
#seasons ⇒ Object
Returns the value of attribute seasons.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(json = {}) ⇒ Show
constructor
A new instance of Show.
Constructor Details
#initialize(json = {}) ⇒ Show
Returns a new instance of Show.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/tvmaze/show.rb', line 17 def initialize(json = {}) @seasons = [] @episodes = [] return if json.nil? SHOW_MAPPING.each do |source, destination| send("#{destination}=", json[source.to_s] || json[source.to_sym]) end unless json['image'].nil? @image_original = json['image']['original'] @image_medium = json['image']['medium'] end unless json['_embedded'].nil? = json['_embedded'] @next_episode = TVMaze::Episode.new(['nextepisode']) @episodes = parse_episodes(['episodes']) @seasons = parse_seasons(@episodes) end end |
Instance Attribute Details
#episodes ⇒ Object
Returns the value of attribute episodes.
14 15 16 |
# File 'lib/tvmaze/show.rb', line 14 def episodes @episodes end |
#image_medium ⇒ Object
Returns the value of attribute image_medium.
14 15 16 |
# File 'lib/tvmaze/show.rb', line 14 def image_medium @image_medium end |
#image_original ⇒ Object
Returns the value of attribute image_original.
14 15 16 |
# File 'lib/tvmaze/show.rb', line 14 def image_original @image_original end |
#next_episode ⇒ Object
Returns the value of attribute next_episode.
14 15 16 |
# File 'lib/tvmaze/show.rb', line 14 def next_episode @next_episode end |
#seasons ⇒ Object
Returns the value of attribute seasons.
14 15 16 |
# File 'lib/tvmaze/show.rb', line 14 def seasons @seasons end |
Class Method Details
.find(id, params = {}) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/tvmaze/show.rb', line 45 def self.find(id, params = {}) = params.delete(:embed) ||= [] result = TVMaze.request(find_url(id, ), params) Show.new(result) end |
.search(query = '', params = {}) ⇒ Object
39 40 41 42 43 |
# File 'lib/tvmaze/show.rb', line 39 def self.search(query = '', params = {}) params[:q] = query.to_s.strip result = TVMaze.request('/search/shows', params) build_search_results(result) end |