class Drawille::FlipBook
Public Class Methods
new()
click to toggle source
# File lib/drawille/flipbook.rb, line 8 def initialize clear end
Public Instance Methods
clear()
click to toggle source
# File lib/drawille/flipbook.rb, line 12 def clear @snapshots = [] @chars = {} end
each_frame(options={}) { |frame| ... }
click to toggle source
# File lib/drawille/flipbook.rb, line 22 def each_frame options={} return enum_for(__callee__) unless block_given? @snapshots.each do |frame| yield frame end end
play(options={}) { || ... }
click to toggle source
# File lib/drawille/flipbook.rb, line 29 def play options={} options = { repeat: false, fps: 6, min_x: 0, min_y: 0 }.merge(options) Curses::init_screen begin Curses::crmode Curses::curs_set 0 repeat options do if block_given? loop { canvas = yield raise StopIteration if canvas == nil draw canvas.frame } else each_frame options do |frame| draw frame sleep(1.0/options[:fps]) end end end ensure Curses::close_screen end end
repeat(options) { || ... }
click to toggle source
# File lib/drawille/flipbook.rb, line 58 def repeat options options[:repeat] ? loop { yield; clear_screen options } : yield end
snapshot(canvas)
click to toggle source
# File lib/drawille/flipbook.rb, line 17 def snapshot canvas @snapshots << canvas.frame @chars = canvas.chars end
Private Instance Methods
clear_screen(options)
click to toggle source
# File lib/drawille/flipbook.rb, line 70 def clear_screen options Curses::clear Curses::refresh end
draw(frame)
click to toggle source
# File lib/drawille/flipbook.rb, line 64 def draw frame Curses::setpos(0, 0) Curses::addstr(frame) Curses::refresh end