Class: Subtool::Export::Srt

Inherits:
Object
  • Object
show all
Defined in:
lib/subtool/export/srt.rb

Class Method Summary collapse

Class Method Details

.file(filename, subtitles) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/subtool/export/srt.rb', line 12

def self.file(filename, subtitles)
  fh = File.open(filename, 'w')

  self.filehandler(fh, subtitles)

  fh.close
end

.filehandler(fh, subtitles) ⇒ Object



5
6
7
8
9
10
# File 'lib/subtool/export/srt.rb', line 5

def self.filehandler(fh, subtitles)
  subtitles.each do |subtitle|
    fh.write self.to_srt_entry(subtitle)
    fh.write "\n\n"
  end
end

.stdout(subtitles) ⇒ Object



20
21
22
# File 'lib/subtool/export/srt.rb', line 20

def self.stdout(subtitles)
  self.filehandler($stdout, subtitles)
end

.time_to_s(time) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/subtool/export/srt.rb', line 28

def self.time_to_s(time)
  hours = sprintf '%02d', time / 3600000
  minutes = sprintf '%02d', (time/60000).modulo(60)
  seconds = sprintf '%02d', (time/1000).modulo(60)
  milliseconds = sprintf '%03d', time.modulo(1000)
  "#{hours}:#{minutes}:#{seconds},#{milliseconds}"
end

.to_srt_entry(subtitle) ⇒ Object



24
25
26
# File 'lib/subtool/export/srt.rb', line 24

def self.to_srt_entry(subtitle)
  "#{subtitle[:id]}\n#{self.time_to_s(subtitle[:start])} --> #{self.time_to_s(subtitle[:end])}\n#{subtitle[:body]}"
end