Class: Subber::File::Base
- Inherits:
-
Object
- Object
- Subber::File::Base
- Defined in:
- lib/subber/file/base.rb
Class Attribute Summary collapse
-
.formatter_klass ⇒ Object
readonly
Returns the value of attribute formatter_klass.
-
.parser_klass ⇒ Object
readonly
Returns the value of attribute parser_klass.
Instance Attribute Summary collapse
-
#subtitles ⇒ Object
readonly
Returns the value of attribute subtitles.
Class Method Summary collapse
- .formatter(value = nil) ⇒ Object
- .from_content(content) ⇒ Subber::File::Base
- .from_path(path) ⇒ Subber::File::Base
- .parser(value = nil) ⇒ Object
Instance Method Summary collapse
- #content ⇒ String
- #export(path) ⇒ Object
-
#initialize(subtitles: nil) ⇒ Base
constructor
A new instance of Base.
-
#shift(ms) ⇒ Subber::File::Base
Return a new copy with shifted subtitles.
-
#shift!(ms) ⇒ Object
mutates the current file’s subtitles.
Constructor Details
#initialize(subtitles: nil) ⇒ Base
Returns a new instance of Base.
43 44 45 |
# File 'lib/subber/file/base.rb', line 43 def initialize(subtitles: nil) @subtitles = subtitles end |
Class Attribute Details
.formatter_klass ⇒ Object (readonly)
Returns the value of attribute formatter_klass.
7 8 9 |
# File 'lib/subber/file/base.rb', line 7 def formatter_klass @formatter_klass end |
.parser_klass ⇒ Object (readonly)
Returns the value of attribute parser_klass.
6 7 8 |
# File 'lib/subber/file/base.rb', line 6 def parser_klass @parser_klass end |
Instance Attribute Details
#subtitles ⇒ Object (readonly)
Returns the value of attribute subtitles.
38 39 40 |
# File 'lib/subber/file/base.rb', line 38 def subtitles @subtitles end |
Class Method Details
.formatter(value = nil) ⇒ Object
17 18 19 |
# File 'lib/subber/file/base.rb', line 17 def formatter(value = nil) @formatter_klass = value unless value.nil? end |
.from_content(content) ⇒ Subber::File::Base
24 25 26 27 |
# File 'lib/subber/file/base.rb', line 24 def from_content(content) subtitles = parser_klass.parse(content) new(subtitles: subtitles) end |
.from_path(path) ⇒ Subber::File::Base
32 33 34 35 |
# File 'lib/subber/file/base.rb', line 32 def from_path(path) content = open(path).read from_content(content) end |
.parser(value = nil) ⇒ Object
11 12 13 |
# File 'lib/subber/file/base.rb', line 11 def parser(value = nil) @parser_klass = value unless value.nil? end |
Instance Method Details
#content ⇒ String
49 50 51 |
# File 'lib/subber/file/base.rb', line 49 def content @content ||= formatter.format(subtitles) end |
#export(path) ⇒ Object
55 56 57 |
# File 'lib/subber/file/base.rb', line 55 def export(path) File.write(path, content) end |
#shift(ms) ⇒ Subber::File::Base
Return a new copy with shifted subtitles
62 63 64 65 |
# 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) ⇒ Object
mutates the current file’s subtitles
70 71 72 |
# File 'lib/subber/file/base.rb', line 70 def shift!(ms) subtitles.each { |subtitle| subtitle.shift!(ms) } end |