class Sjson2srt::Converter

Attributes

json[R]

Public Class Methods

new(content) click to toggle source
# File lib/sjson2srt/converter.rb, line 4
def initialize(content)
  @json = JSON.parse(content)
end

Public Instance Methods

convert() click to toggle source
# File lib/sjson2srt/converter.rb, line 8
def convert
  output = []
  json['text'].each_with_index do |line, i|
    start_time = json['start'][i]
    end_time = json['end'][i]

    output << i + 1
    output << "#{format_time(start_time)} --> #{format_time(end_time)}"
    if line.length > 0
      output << "#{line}\n"
    else
      output << ''
    end
  end

  output.join("\n")
end

Private Instance Methods

format_time(raw_milliseconds) click to toggle source
# File lib/sjson2srt/converter.rb, line 28
def format_time(raw_milliseconds)
  milliseconds = raw_milliseconds % 1000
  zero_padded_milliseconds = sprintf('%03d', (milliseconds % 1000))
  seconds = ((raw_milliseconds - milliseconds) / 1000)
  Time.at(seconds).gmtime.strftime('%R:%S') + ",#{zero_padded_milliseconds}"
end