class EZTV::Series

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/eztv.rb, line 19
def initialize(name)
  @name = name
  @options = { body: {'SearchString' => @name}}
end

Public Instance Methods

episode(season, episode_number) click to toggle source
# File lib/eztv.rb, line 41
def episode(season, episode_number)
  episodes.find do |episode|
    episode.season == season and episode.episode_number == episode_number
  end
end
episodes() click to toggle source
# File lib/eztv.rb, line 24
def episodes
  return @episodes if @episodes
  
  result = self.class.post('/search/',@options)
  document = Nokogiri::HTML(result)

  episodes = document.css('html body div#header_holder table.forum_header_border tr.forum_header_border')

  raise SeriesNotFoundError.new(self) if episodes.empty?

  episodes = episodes.reject do |episode| 
    episode.css('img').first.attributes['title'].value.match(/Show Description about #{name}/i).nil?
  end

  @episodes = EpisodeFactory.create(episodes)
end
season(season) click to toggle source
# File lib/eztv.rb, line 47
def season(season)
  episodes.find_all {|episode| episode.season == season }
end
seasons() click to toggle source
# File lib/eztv.rb, line 51
def seasons
  episodes.group_by {|episode| episode.season }.to_hash.values
end