class ShowEpisodeRange
This class represents a contiguous range of episodes of a show in a single season. For example Season 1 Episodes 1-5, or Season 2 Episodes 7-9
Attributes
endEpisode[RW]
season[RW]
startEpisode[RW]
Public Class Methods
createRanges(episodes)
click to toggle source
Given a list of ShowEpisode
objects, return an array of ShowEpisodeRange
objects that represents the passed episodes.
# File plugins/shows/lib/showname_parse.rb, line 40 def self.createRanges(episodes) ranges = [] sorted = episodes.sort{ |a,b| if a.season < b.season -1 elsif a.season > b.season 1 else a.episode <=> b.episode end } firstInRange = nil lastProcessed = nil sorted.each{ |s| if ! firstInRange firstInRange = s else if s.season != lastProcessed.season || s.episode > lastProcessed.episode + 1 # End of range! ranges.push ShowEpisodeRange.new(firstInRange.season, firstInRange.episode, lastProcessed.episode) firstInRange = s end end lastProcessed = s } if firstInRange ranges.push ShowEpisodeRange.new(firstInRange.season, firstInRange.episode, lastProcessed.episode) end ranges end
new(season, startEpisode, endEpisode)
click to toggle source
# File plugins/shows/lib/showname_parse.rb, line 24 def initialize(season, startEpisode, endEpisode) @season = season @startEpisode = startEpisode @endEpisode = endEpisode end
Public Instance Methods
size()
click to toggle source
# File plugins/shows/lib/showname_parse.rb, line 34 def size @endEpisode - @startEpisode + 1 end