class Torganiser::EpisodeFile
Models a file that contains a single episode of a TV series. Attempts to extract episode data, based on the filename.
Attributes
file[R]
Public Class Methods
new(file)
click to toggle source
# File lib/torganiser/episode_file.rb, line 7 def initialize(file) @file = file end
Public Instance Methods
basename()
click to toggle source
# File lib/torganiser/episode_file.rb, line 11 def basename @basename ||= File.basename(@file) end
episode()
click to toggle source
# File lib/torganiser/episode_file.rb, line 19 def episode @episode ||= episode_info[:episode].to_i end
season()
click to toggle source
# File lib/torganiser/episode_file.rb, line 15 def season @season ||= episode_info[:season].to_i end
series()
click to toggle source
# File lib/torganiser/episode_file.rb, line 23 def series @series ||= begin year = episode_info[:year] year = year.to_i if year Series.new(series_name, year: year) end end
Private Instance Methods
episode_info()
click to toggle source
# File lib/torganiser/episode_file.rb, line 37 def episode_info @episode_info ||= Matcher.match(basename) || fail( "Unable to parse #{file}" ) end
series_name()
click to toggle source
# File lib/torganiser/episode_file.rb, line 33 def series_name episode_info[:name].split('.').join(' ').gsub(/[^a-z]+$/i, '') end