libcaca-ruby-api(3) - Linux man page

Name

libcaca-ruby-api - Libcaca Ruby API Theclasses available for libcaca are :

Caca::Canvas : functions that have a caca_canvas_t* as first argument

Caca::Dither : functions that have a caca_dither_t* as first argument

Caca::Font : functions that have a caca_font_t* as first argument (The constructor can currently only accept the name of a builtin font)

Caca::Display

Caca::Event

Caca::Event::Key

Caca::Event::Key::Press

Caca::Event::Key::Release

Caca::Event::Mouse

Caca::Event::Mouse::Press

Caca::Event::Mouse::Release

Caca::Event::Mouse::Motion

Caca::Event::Resize

Caca::Event::Quit

Thecharacter set conversion functions are not available yet in the binding.
$irb -rcaca
irb(main):001:0>class Object
irb(main):002:1>def Object.my_instance_methods
irb(main):003:2>instance_methods.sort - ancestors[1].instance_methods
irb(main):004:2>end
irb(main):005:1>def Object.my_methods
irb(main):006:2>methods.sort - ancestors[1].methods
irb(main):007:2>end
irb(main):008:1>end

irb(main):009:0>Caca.constants
=>['BROWN', 'BOLD', 'GREEN', 'LIGHTMAGENTA', 'LIGHTBLUE', 'BLINK',

irb(main):010:0>Caca.my_methods
=>['version']

irb(main):011:0>Caca::Canvas.my_methods
=>['export_list', 'import_list']

irb(main):012:0>Caca::Canvas.my_instance_methods
=>['attr=', 'blit', 'clear', 'create_frame', 'cursor_x', 'cursor_y',

irb(main):013:0>Caca::Font.my_methods
=>['list']

irb(main):014:0>Caca::Font.my_instance_methods
=>['blocks', 'height', 'width']

irb(main):015:0>Caca::Dither.my_instance_methods
=>['algorithm=', 'algorithm_list', 'antialias=', 'antialias_list',

irb(main):010:0>Caca::Display.my_instance_methods
=>['canvas', 'get_event', 'height', 'mouse=', 'mouse_x', 'mouse_y', 'refresh',

irb(main):011:0>Caca::Event.constants
=>['Key', 'Quit', 'TYPE', 'Mouse', 'Resize']

irb(main):012:0>Caca::Event.my_instance_methods
=>['quit?']

irb(main):013:0>Caca::Event::Key.my_instance_methods
=>['ch', 'utf32', 'utf8']

irb(main):014:0>Caca::Event::Mouse.my_instance_methods
=>['button', 'x', 'y']

irb(main):015:0>Caca::Event::Resize.my_instance_methods
=>['w', 'h']

$ruby -rcaca -e 'c=Caca::Canvas.new(6, 3).fill_box(0,0,2,2,'#'[0]);
c2=Caca::Canvas.new(1,1).put_str(0,0,'x'); c.blit(1,1,c2); puts
c.export_memory('irc')'
###
#x#
###

$ruby -e 'puts Caca::Canvas.new(6,3).draw_thin_polyline([[0,0], [0,2],
[5,2],[0,0]]).export_memory('irc')'
-.
|'.
----'-

$ruby -rcaca -e 'p Caca::Canvas.export_list'
[['caca','native libcaca format'], ['ansi', 'ANSI'], ['utf8', 'UTF-8
withANSI escape codes'], ['utf8cr', 'UTF-8 with ANSI escape codes and
MS-DOS\r'], ['html', 'HTML'], ['html3', 'backwards-compatible HTML'],
['irc','IRC with mIRC colours'], ['ps', 'PostScript document'], ['svg',

$ruby -rcaca -e 'p Caca::Font.list'
['Monospace9', 'Monospace Bold 12']

require'caca'
c= Caca::Canvas.new(20,10)
c.put_str(2,3, 'plop!')
c.draw_thin_polyline([[0,0],[0,2], [5,2], [0,0]])
d= Caca::Display.new(c)
d.title= 'Test !'
d.refresh

#Redefine Event::Key#quit? so that q, Q, and Esc become exit keys
moduleCaca
class Event::Key
def quit?
end
end
end

while((e= d.get_event(Caca::Event, -1)) && ! e.quit?)
p e
d.refresh
end