class Film

Attributes

stdout[R]
terminal[R]

Public Class Methods

new(stdout, terminal) click to toggle source
# File lib/asciinema/film.rb, line 6
def initialize(stdout, terminal)
  @stdout = stdout
  @terminal = terminal
end

Public Instance Methods

frames() click to toggle source
# File lib/asciinema/film.rb, line 19
def frames
  frames = stdout.map do |delay, data|
    terminal.feed(data)
    [delay, Frame.new(terminal.snapshot, terminal.cursor)]
  end

  FrameDiffList.new(frames)
end
snapshot_at(time) click to toggle source
# File lib/asciinema/film.rb, line 11
def snapshot_at(time)
  stdout_each_until(time) do |delay, data|
    terminal.feed(data)
  end

  terminal.snapshot
end

Private Instance Methods

stdout_each_until(seconds) { |delay, frame_data| ... } click to toggle source
# File lib/asciinema/film.rb, line 30
def stdout_each_until(seconds)
  stdout.each do |delay, frame_data|
    seconds -= delay
    break if seconds <= 0
    yield(delay, frame_data)
  end
end