Class: Flowterm
- Inherits:
-
Object
- Object
- Flowterm
- Defined in:
- lib/flowterm.rb,
lib/flowterm/version.rb
Constant Summary collapse
- VERSION =
"0.1.1"
Instance Method Summary collapse
-
#initialize(argv, input) ⇒ Flowterm
constructor
A new instance of Flowterm.
- #render(str, col_offset) ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(argv, input) ⇒ Flowterm
Returns a new instance of Flowterm.
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/flowterm.rb', line 6 def initialize(argv, input) @sleep = 1 / 25.0 @trap = true opt = OptionParser.new opt.on('--speed=speed') { |v| @sleep = 1 / v.to_f } opt.on('--[no-]trap') { |v| @trap = v } opt.parse!(argv) Signal.trap(:INT, nil) if @trap @str = input.read end |
Instance Method Details
#render(str, col_offset) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/flowterm.rb', line 31 def render(str, col_offset) col = Curses.cols - str.each_line.max_by(&:size).size + col_offset line = (Curses.lines - str.each_line.count) / 2 Curses.clear str.each_line.with_index do |str_line, index| Curses.setpos(line + index, [col, 0].max) str_line = str_line[-col..-1] || '' if col < 0 Curses.addstr(str_line) end Curses.refresh end |
#run ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/flowterm.rb', line 19 def run Curses.init_screen begin Curses.cols.times do |idx| render(@str, -idx) sleep @sleep end ensure Curses.close_screen end end |