Class: ShiftSubtitles::Subtitles

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/shift_subtitles/subtitles.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input_file_path) ⇒ Subtitles

Returns a new instance of Subtitles.



9
10
11
12
# File 'lib/shift_subtitles/subtitles.rb', line 9

def initialize input_file_path
  input_file_subtitles = input_file_contents(input_file_path).scan(input_file_pattern)
  @subtitle_list = input_file_subtitles.collect { |subtitle| ShiftSubtitles::Subtitle.new(subtitle) }
end

Instance Attribute Details

#subtitle_listObject

Returns the value of attribute subtitle_list.



7
8
9
# File 'lib/shift_subtitles/subtitles.rb', line 7

def subtitle_list
  @subtitle_list
end

Instance Method Details

#eachObject



14
15
16
# File 'lib/shift_subtitles/subtitles.rb', line 14

def each
  @subtitle_list.each {|subtitle| yield(subtitle)}
end

#formatted_subtitles_for_fileObject



22
23
24
# File 'lib/shift_subtitles/subtitles.rb', line 22

def formatted_subtitles_for_file
  collect { |subtitle| subtitle.format }.join
end

#input_file_contents(input_file_path) ⇒ Object



26
27
28
# File 'lib/shift_subtitles/subtitles.rb', line 26

def input_file_contents input_file_path
  ShiftSubtitles::FileHelper.operation_with_validation('input', input_file_path) { File.read(input_file_path) }
end

#input_file_patternObject



30
31
32
# File 'lib/shift_subtitles/subtitles.rb', line 30

def input_file_pattern
  /[0-9]+\n[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3} --> [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}\n.*/
end

#update_subtitles(seconds_difference) ⇒ Object



18
19
20
# File 'lib/shift_subtitles/subtitles.rb', line 18

def update_subtitles seconds_difference
  each { |subtitle| subtitle.update_duration(seconds_difference) }
end