diff --git a/ruby/README b/ruby/README index 1b05d65..b89104f 100644 --- a/ruby/README +++ b/ruby/README @@ -1,177 +1,4 @@ -/* $Id$ */ /** \page libcaca-ruby Libcaca ruby bindings - This a Ruby binding for libcucul and libcaca. -There is no real documentation but "methods" on any object should help you :) - -The classes available for libcucul are : - -- Cucul::Canvas (functions that have a cucul_canvas_t* as first argument) - -- Cucul::Dither (functions that have a cucul_dither_t* as first argument) - -- Cucul::Font (functions that have a cucul_font_t* as first argument) - * The constructor can currently only accept the name of a builtin font - -The classes available for libcaca are : - -- 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 - -The character set conversion functions are not available yet in the binding. - -I tried to follow Ruby spirit meaning that : -- most of the methods return self -- the methods set_foo with only an argument are also available as foo= -(returning the value instead of self) -- the methods originally named get_foo are available only as foo - -What is currently available is : - -\code -$ irb -rcucul -irb(main):001:0> Cucul.constants -=> ["BROWN", "BOLD", "GREEN", "LIGHTMAGENTA", "LIGHTBLUE", "BLINK", -"MAGENTA", "DEFAULT", "TRANSPARENT", "BLUE", "LIGHTRED", "DARKGRAY", -"UNDERLINE", "RED", "WHITE", "BLACK", "LIGHTCYAN", "LIGHTGRAY", -"ITALICS", "CYAN", "YELLOW", "LIGHTGREEN", "Canvas", "Dither", "Font"] -\endcode - -\code -irb(main):002:0> Cucul::Canvas.methods.sort - -Cucul::Canvas.ancestors[1].methods -=> ["export_list", "import_list"] -\endcode - -\code -irb(main):003:0> Cucul::Canvas.instance_methods.sort - -Cucul::Canvas.ancestors[1].instance_methods -=> ["attr=", "blit", "clear", "create_frame", "cursor_x", "cursor_y", -"dither_bitmap", "draw_box", "draw_circle", "draw_cp437_box", "draw_ellipse", -"draw_line", "draw_polyline", "draw_thin_box", "draw_thin_ellipse", -"draw_thin_line", "draw_thin_polyline", "draw_thin_triangle", -"draw_triangle", "export_memory", "fill_box", "fill_ellipse", -"fill_triangle", "flip", "flop", "frame=", "frame_count", "frame_name", -"frame_name=", "free_frame", "get_attr", "get_char", "gotoxy", -"handle_x", "handle_y", "height", "height=", "import_file", -"import_memory", "invert", "printf", "put_attr", "put_char", "put_str", -"rotate_180", "rotate_left", "rotate_right", "set_attr", -"set_boundaries", "set_color_ansi", "set_color_argb", "set_frame", -"set_frame_name", "set_handle", "set_height", "set_size", "set_width", -"stretch_left", "stretch_right", "width", "width="] -\endcode - -\code -irb(main):004:0> Cucul::Font.methods.sort - -Cucul::Font.ancestors[1].methods -=> ["list"] -\endcode - -\code -irb(main):005:0> Cucul::Font.instance_methods.sort - -Cucul::Font.ancestors[1].instance_methods -=> ["blocks", "height", "width"] -\endcode - -\code -irb(main):006:0> Cucul::Dither.instance_methods.sort - -Cucul::Dither.ancestors[1].instance_methods -=> ["algorithm=", "algorithm_list", "antialias=", "antialias_list", -"brightness=", "charset=", "charset_list", "color=", "color_list", -"contrast=", "gamma=", "palette=", "set_algorithm", "set_antialias", -"set_brightness", "set_charset", "set_color", "set_contrast", -"set_gamma", "set_palette"] -\endcode - -\code -irb(main):007:0> Caca::Display.instance_methods.sort - -Caca::Display.ancestors[1].instance_methods -=> ["get_event", "height", "mouse=", "mouse_x", "mouse_y", "refresh", -"set_mouse", "set_time", "set_title", "time", "time=", "title=", "width"] -\endcode - -\code -irb(main):008:0> Caca::Event.constants -=> ["Key", "Quit", "TYPE", "Mouse", "Resize"] -\endcode - -\code -irb(main):009:0> Caca::Event::Key.instance_methods - Caca::Event::Key.ancestors[1].instance_methods -=> ["ch", "utf32", "utf8"] -\endcode - -\code -irb(main):010:0> Caca::Event::Key.instance_methods - Caca::Event::Mouse.ancestors[1].instance_methods -=> ["ch", "utf32", "utf8"] -\endcode - -\code -irb(main):011:0> Caca::Event::Mouse.instance_methods - Caca::Event::Mouse.ancestors[1].instance_methods -=> ["button", "x", "y"] -\endcode - -\code -irb(main):018:0> Caca::Event::Resize.instance_methods - Caca::Event::Resize.ancestors[1].instance_methods -=> ["w", "h"] -\endcode - -And here are sample uses : - -\code -$ ruby -rcucul -e 'c=Cucul::Canvas.new(6, 3).fill_box(0,0,2,2,"#"[0]); -c2=Cucul::Canvas.new(1, 1).put_str(0,0,"x"); c.blit(1,1,c2); puts -c.export_memory("irc")' -### -#x# -### -\endcode - -\code -$ ruby -e 'puts Cucul::Canvas.new(6,3).draw_thin_polyline([[0,0], [0,2], -[5,2],[0,0]]).export_memory("irc")' --. -| `. -----`- -\endcode - -\code -$ ruby -rcucul -e 'p Cucul::Canvas.export_list' -[["caca", "native libcaca format"], ["ansi", "ANSI"], ["utf8", "UTF-8 -with ANSI 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", -"SVG vector image"], ["tga", "TGA image"]] -\endcode - -\code -$ ruby -rcucul -e 'p Cucul::Font.list' -["Monospace 9", "Monospace Bold 12"] -\endcode - -And now a real one: - -\code -require 'caca' -c = Cucul::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 -while((e = d.get_event(Caca::Event, -1)) && - ! e.kind_of?(Caca::Event::Quit)) - p e - d.refresh -end -\endcode - -*/ +You can play with it by doing require 'caca' or require 'cucul' and looking at +the Cucul and Caca modules, or maybe read the documentation :) diff --git a/ruby/ruby-caca.dox b/ruby/ruby-caca.dox new file mode 100644 index 0000000..76d90d1 --- /dev/null +++ b/ruby/ruby-caca.dox @@ -0,0 +1,66 @@ +/* $Id$ */ /** \page libcaca-ruby-api Libcaca Ruby API + +The classes available for libcaca are : + +\li \b Caca::Display +\li \b Caca::Event +\li \b Caca::Event::Key +\li \b Caca::Event::Key::Press +\li \b Caca::Event::Key::Release +\li \b Caca::Event::Mouse +\li \b Caca::Event::Mouse::Press +\li \b Caca::Event::Mouse::Release +\li \b Caca::Event::Mouse::Motion +\li \b Caca::Event::Resize +\li \b Caca::Event::Quit + +\code +irb(main):007:0> Caca::Display.instance_methods.sort - +Caca::Display.ancestors[1].instance_methods +=> ["get_event", "height", "mouse=", "mouse_x", "mouse_y", "refresh", +"set_mouse", "set_time", "set_title", "time", "time=", "title=", "width"] +\endcode + +\code +irb(main):008:0> Caca::Event.constants +=> ["Key", "Quit", "TYPE", "Mouse", "Resize"] +\endcode + +\code +irb(main):009:0> Caca::Event::Key.instance_methods - Caca::Event::Key.ancestors[1].instance_methods +=> ["ch", "utf32", "utf8"] +\endcode + +\code +irb(main):010:0> Caca::Event::Key.instance_methods - Caca::Event::Mouse.ancestors[1].instance_methods +=> ["ch", "utf32", "utf8"] +\endcode + +\code +irb(main):011:0> Caca::Event::Mouse.instance_methods - Caca::Event::Mouse.ancestors[1].instance_methods +=> ["button", "x", "y"] +\endcode + +\code +irb(main):018:0> Caca::Event::Resize.instance_methods - Caca::Event::Resize.ancestors[1].instance_methods +=> ["w", "h"] +\endcode + +\section Samples + +\code +require 'caca' +c = Cucul::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 +while((e = d.get_event(Caca::Event, -1)) && + ! e.kind_of?(Caca::Event::Quit)) + p e + d.refresh +end +\endcode + +*/ diff --git a/ruby/ruby-cucul.dox b/ruby/ruby-cucul.dox new file mode 100644 index 0000000..f0c8ba4 --- /dev/null +++ b/ruby/ruby-cucul.dox @@ -0,0 +1,101 @@ +/* $Id$ */ /** \page libcucul-ruby-api Libcucul Ruby API +The classes available for libcucul are : + +\li \b Cucul::Canvas : functions that have a cucul_canvas_t* as first argument + +\li \b Cucul::Dither : functions that have a cucul_dither_t* as first argument + +\li \b Cucul::Font : functions that have a cucul_font_t* as first argument + (The constructor can currently only accept the name of a builtin font) + +The character set conversion functions are not available yet in the binding. + +\code +$ irb -rcucul +irb(main):001:0> Cucul.constants +=> ["BROWN", "BOLD", "GREEN", "LIGHTMAGENTA", "LIGHTBLUE", "BLINK", +"MAGENTA", "DEFAULT", "TRANSPARENT", "BLUE", "LIGHTRED", "DARKGRAY", +"UNDERLINE", "RED", "WHITE", "BLACK", "LIGHTCYAN", "LIGHTGRAY", +"ITALICS", "CYAN", "YELLOW", "LIGHTGREEN", "Canvas", "Dither", "Font"] +\endcode + +\code +irb(main):002:0> Cucul::Canvas.methods.sort - +Cucul::Canvas.ancestors[1].methods +=> ["export_list", "import_list"] +\endcode + +\code +irb(main):003:0> Cucul::Canvas.instance_methods.sort - +Cucul::Canvas.ancestors[1].instance_methods +=> ["attr=", "blit", "clear", "create_frame", "cursor_x", "cursor_y", +"dither_bitmap", "draw_box", "draw_circle", "draw_cp437_box", "draw_ellipse", +"draw_line", "draw_polyline", "draw_thin_box", "draw_thin_ellipse", +"draw_thin_line", "draw_thin_polyline", "draw_thin_triangle", +"draw_triangle", "export_memory", "fill_box", "fill_ellipse", +"fill_triangle", "flip", "flop", "frame=", "frame_count", "frame_name", +"frame_name=", "free_frame", "get_attr", "get_char", "gotoxy", +"handle_x", "handle_y", "height", "height=", "import_file", +"import_memory", "invert", "printf", "put_attr", "put_char", "put_str", +"rotate_180", "rotate_left", "rotate_right", "set_attr", +"set_boundaries", "set_color_ansi", "set_color_argb", "set_frame", +"set_frame_name", "set_handle", "set_height", "set_size", "set_width", +"stretch_left", "stretch_right", "width", "width="] +\endcode + +\code +irb(main):004:0> Cucul::Font.methods.sort - +Cucul::Font.ancestors[1].methods +=> ["list"] +\endcode + +\code +irb(main):005:0> Cucul::Font.instance_methods.sort - +Cucul::Font.ancestors[1].instance_methods +=> ["blocks", "height", "width"] +\endcode + +\code +irb(main):006:0> Cucul::Dither.instance_methods.sort - +Cucul::Dither.ancestors[1].instance_methods +=> ["algorithm=", "algorithm_list", "antialias=", "antialias_list", +"brightness=", "charset=", "charset_list", "color=", "color_list", +"contrast=", "gamma=", "palette=", "set_algorithm", "set_antialias", +"set_brightness", "set_charset", "set_color", "set_contrast", +"set_gamma", "set_palette"] +\endcode + +\section Samples + +\code +$ ruby -rcucul -e 'c=Cucul::Canvas.new(6, 3).fill_box(0,0,2,2,"#"[0]); +c2=Cucul::Canvas.new(1, 1).put_str(0,0,"x"); c.blit(1,1,c2); puts +c.export_memory("irc")' +### +#x# +### +\endcode + +\code +$ ruby -e 'puts Cucul::Canvas.new(6,3).draw_thin_polyline([[0,0], [0,2], +[5,2],[0,0]]).export_memory("irc")' +-. +| `. +----`- +\endcode + +\code +$ ruby -rcucul -e 'p Cucul::Canvas.export_list' +[["caca", "native libcaca format"], ["ansi", "ANSI"], ["utf8", "UTF-8 +with ANSI 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", +"SVG vector image"], ["tga", "TGA image"]] +\endcode + +\code +$ ruby -rcucul -e 'p Cucul::Font.list' +["Monospace 9", "Monospace Bold 12"] +\endcode + +*/ diff --git a/ruby/ruby.dox b/ruby/ruby.dox new file mode 100644 index 0000000..c292e67 --- /dev/null +++ b/ruby/ruby.dox @@ -0,0 +1,17 @@ +/* $Id$ */ /** \page libcaca-ruby Libcaca ruby bindings + +There is no real documentation yet for the Ruby binding but \c methods on any object should help you :) + +I tried to follow Ruby spirit meaning that : +- most of the methods return self +- the methods set_foo with only an argument are also available as foo= +(returning the value instead of self) +- the methods originally named get_foo are available only as foo + +For the list of methods and some sample code, read: + +\subpage libcucul-ruby-api + +\subpage libcaca-ruby-api + +*/