27 lines
493 B
Ruby
27 lines
493 B
Ruby
require 'tempfile'
|
|
|
|
class AsciicastFramesFileUpdater
|
|
|
|
def initialize(file_writer = JsonFileWriter.new)
|
|
@file_writer = file_writer
|
|
end
|
|
|
|
def update(asciicast)
|
|
file = Tempfile.new('frames')
|
|
|
|
asciicast.with_terminal do |terminal|
|
|
film = Film.new(asciicast.stdout, terminal)
|
|
file_writer.write_enumerable(file, film.frames)
|
|
end
|
|
|
|
asciicast.update_attribute(:stdout_frames, file)
|
|
ensure
|
|
file.unlink if file
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :file_writer
|
|
|
|
end
|