class Subber::File::Base

Attributes

formatter_klass[R]
parser_klass[R]
subtitles[R]

Public Class Methods

formatter(value = nil) click to toggle source

@param value [Class] class to be used as formatter

# File lib/subber/file/base.rb, line 17
def formatter(value = nil)
  @formatter_klass = value unless value.nil?
end
from_content(content) click to toggle source

@param content [String] @return [Subber::File::Base]

# File lib/subber/file/base.rb, line 24
def from_content(content)
  subtitles = parser_klass.parse(content)
  new(subtitles: subtitles)
end
from_path(path) click to toggle source

@param path [String] @return [Subber::File::Base]

# File lib/subber/file/base.rb, line 32
def from_path(path)
  content = open(path).read
  from_content(content)
end
new(subtitles: nil) click to toggle source

@param [Hash] @param subtitles [Array<Subber::Subtitle>]

# File lib/subber/file/base.rb, line 43
def initialize(subtitles: nil)
  @subtitles = subtitles
end
parser(value = nil) click to toggle source

@param value [Class] class to be used as parser

# File lib/subber/file/base.rb, line 11
def parser(value = nil)
  @parser_klass = value unless value.nil?
end

Public Instance Methods

content() click to toggle source

@return [String]

# File lib/subber/file/base.rb, line 49
def content
  @content ||= formatter.format(subtitles)
end
export(path) click to toggle source

@param path [String] Remote or local file path

# File lib/subber/file/base.rb, line 55
def export(path)
  File.write(path, content)
end
shift(ms) click to toggle source

@param ms [Integer] Can be both positive and negative @return [Subber::File::Base] return a new copy with shifted subtitles

# File lib/subber/file/base.rb, line 62
def shift(ms)
  new_subtitles = subtitles.map { |subtitle| subtitle.shift(ms) }
  self.class.new(subtitles: new_subtitles)
end
shift!(ms) click to toggle source

@param ms [Integer] Can be both positive and negative mutates the current file's subtitles

# File lib/subber/file/base.rb, line 70
def shift!(ms)
  subtitles.each { |subtitle| subtitle.shift!(ms) }
end

Private Instance Methods

formatter() click to toggle source
# File lib/subber/file/base.rb, line 76
def formatter
  self.class.formatter_klass
end