Class: LetItFall::Render

Inherits:
Object
  • Object
show all
Defined in:
lib/let_it_fall.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mark, screen, colorize: false, interval: 0.1) ⇒ Render

Returns a new instance of Render.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/let_it_fall.rb', line 11

def initialize(mark, screen, colorize:false, interval:0.1)
  @y, @x = screen
  @colorize = colorize
  marks =
    if Array===mark
      mark.map { |m| m.to_i(16) }
    else
      CODESET[mark.intern] || CODESET[:snow]
    end
  @marks = Array(marks).map { |code| code.chr("UTF-8") }.cycle
  @interval = interval
  @screen = {}
  $stdout.sync = true
end

Class Method Details

.run(mark, screen, colorize: false, interval: 0.1) ⇒ Object



7
8
9
# File 'lib/let_it_fall.rb', line 7

def self.run(mark, screen, colorize:false, interval:0.1)
  new(mark, screen, colorize:colorize, interval:interval).run
end

Instance Method Details

#runObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/let_it_fall.rb', line 26

def run
  clear_screen
  loop do
    trap(:INT) do
      print "\e[?25h\e[0;0H" # show cursor and set 0,0 pos
      exit(0)
    end
    print_marks
    sleep @interval
  end
end