Class: WhereTo::EpisodeFormatter
- Inherits:
-
Object
- Object
- WhereTo::EpisodeFormatter
- Defined in:
- lib/where_to/episode_formatter.rb
Constant Summary collapse
- DEFAULT_EXTENSION =
'.mkv'
Instance Attribute Summary collapse
-
#episode_number ⇒ Object
Returns the value of attribute episode_number.
-
#episode_title ⇒ Object
Returns the value of attribute episode_title.
-
#extension ⇒ Object
Returns the value of attribute extension.
-
#group ⇒ Object
Returns the value of attribute group.
-
#quality ⇒ Object
Returns the value of attribute quality.
-
#season_number ⇒ Object
Returns the value of attribute season_number.
-
#series_title ⇒ Object
Returns the value of attribute series_title.
Instance Method Summary collapse
- #format! ⇒ Object
-
#initialize(hash = {}, series_title: hash[:series_title], season_number: hash[:season_number], episode_title: hash[:episode_title], episode_number: hash[:episode_number], extension: hash[:extension], quality: hash[:quality], group: hash[:group], series_id: hash[:series_id]) ⇒ EpisodeFormatter
constructor
A new instance of EpisodeFormatter.
- #validate! ⇒ Object
Constructor Details
#initialize(hash = {}, series_title: hash[:series_title], season_number: hash[:season_number], episode_title: hash[:episode_title], episode_number: hash[:episode_number], extension: hash[:extension], quality: hash[:quality], group: hash[:group], series_id: hash[:series_id]) ⇒ EpisodeFormatter
Returns a new instance of EpisodeFormatter.
7 8 9 10 11 12 13 14 15 |
# File 'lib/where_to/episode_formatter.rb', line 7 def initialize(hash = {}, series_title: hash[:series_title], season_number: hash[:season_number], episode_title: hash[:episode_title], episode_number: hash[:episode_number], extension: hash[:extension], quality: hash[:quality], group: hash[:group], series_id: hash[:series_id]) set_unless_nil :series_title, series_title set_unless_nil :season_number, season_number set_unless_nil :episode_title, episode_title set_unless_nil :episode_number, episode_number set_unless_nil :quality, quality set_unless_nil :extension, extension, default: DEFAULT_EXTENSION set_unless_nil :group, group end |
Instance Attribute Details
#episode_number ⇒ Object
Returns the value of attribute episode_number.
3 4 5 |
# File 'lib/where_to/episode_formatter.rb', line 3 def episode_number @episode_number end |
#episode_title ⇒ Object
Returns the value of attribute episode_title.
3 4 5 |
# File 'lib/where_to/episode_formatter.rb', line 3 def episode_title @episode_title end |
#extension ⇒ Object
Returns the value of attribute extension.
4 5 6 |
# File 'lib/where_to/episode_formatter.rb', line 4 def extension @extension end |
#group ⇒ Object
Returns the value of attribute group.
4 5 6 |
# File 'lib/where_to/episode_formatter.rb', line 4 def group @group end |
#quality ⇒ Object
Returns the value of attribute quality.
4 5 6 |
# File 'lib/where_to/episode_formatter.rb', line 4 def quality @quality end |
#season_number ⇒ Object
Returns the value of attribute season_number.
3 4 5 |
# File 'lib/where_to/episode_formatter.rb', line 3 def season_number @season_number end |
#series_title ⇒ Object
Returns the value of attribute series_title.
3 4 5 |
# File 'lib/where_to/episode_formatter.rb', line 3 def series_title @series_title end |
Instance Method Details
#format! ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/where_to/episode_formatter.rb', line 17 def format! validate! formatted = [] formatted << series_title.downcase.gsub(' ', '.') formatted << "SxxEyy".gsub('xx', season_number.to_s.rjust(2, '0')).gsub('yy', episode_number.to_s.rjust(2, '0')) formatted << episode_title.downcase.gsub(' ', '.') formatted << quality.downcase if quality formatted = formatted.join('.') formatted << "-#{group}" if group formatted << extension formatted end |
#validate! ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/where_to/episode_formatter.rb', line 32 def validate! raise 'A series title is required to format an episode title.' unless series_title raise 'A season number is required to format an episode title.' unless season_number raise 'An episode title is required to format an episode title.' unless episode_title raise 'An episode number is required to format an episode title.' unless episode_number true end |