Librerías de ampliación

P: ¿Cómo puedo utilizar Ruby interactivamente?
P: ¿Existe algún depurador para Ruby?
P: ¿Cómo puedo utilizar desde Ruby una librería escrita en C?
P: ¿Puedo utilizar con Ruby la interfaz Tcl/Tk?
P: Tk no funciona
P: ¿Puedo utiliza con Ruby las interfaces gtk+ o xforms?
P: ¿Cómo puedo hacer date aritmético?

P: ¿Cómo puedo utilizar Ruby interactivamente?

R: Se puede utilizar irb. Las siguientes líneas se han parafraseado de un comunicado de Goto Kentaro (Gotoken) aparecido en ruby-talk:444.

  1. Conseguir el último fichero tar del directorio contrib ftp://ftp.netlab.co.jp/pub/lang/ruby/contrib.

  2. Extraer el árbol de directorio de irb.

  3. Añadir a la variable de entorno $RUBYLIB la localización de /irb.

  4. Crear un enlace simbólico de $RUBYLIB/irb/irb.rb a un fichero llamado irb en un directorio dentro del path propio.

  5. chmod +x $RUBYLIB/irb/irb.rb.

  6. Ejecutar rehash para indicar a la shell de entrada la existencia del nuevo comando.

  7. teclear irb.

irb es mucho más entretenido de utilizar, si el módulo readline está funcionando en tu interprete.

Existe también un programa sencillo, eval, en el directorio /samples de la distribución de Ruby. Éste permite introducir expresiones y ver sus resultados. Se puede copiar al direcotrio site_ruby del árbol Ruby y ejecutarlo con:

	  
	  ruby -r eval -e0
	

P: ¿Existe algún depurador para Ruby?

R: Existe un depurador al estilo de gdb para Ruby:

	    ruby -r debug tu_programa
	  

P: ¿Cómo puedo utilizar desde Ruby una librería escrita en C?

R: De todos los lenguajes de scripts, probablemente Ruby es el más fácil de ampliar. No existen problemas como cuentas de referencia o tipos de variables y hay muy pocos interfaces que aprender. De hecho, el código C utilizado para ampliar Ruby termina pareciéndose, sorprendentemente, al código Ruby.

Primero hay que conseguir la distribución de Ruby y leer el fichero README.TXT. Éste es un buen documento, no sólo válido para escribir ampliaciones sino también para tener un conocimiento más profundo del lenguaje mismo.

A continuación hay que estudiar el código fuente del propio interprete y de algunas de las diferentes ampliaciones presentes en el dirextorio /ext. También se pueden encontrar buenos ejemplos en el directorio /contrib en las sedes ftp de Ruby.

P: ¿Puedo utilizar con Ruby la interfaz Tcl/Tk?

R: Existeb dos interfaces a Tcl/Tk que se incluyen con la distribución estándar. Una se encuentra en ext/tcltk/ y se carga con require "tcltk". Su sintaxis es muy próxima a la de Tcl, la cual se pasa al interprete Tcl. Por desgracia, la documentación se encuentra en Japones.

La otra se encuentra en ext/tk/ y se carga con require "tk". Su sintaxis es más del estilo de la interfaz Tk proporcionada por Perl y Python.

P: Tk no funciona

R: La versión puede ser antigua, hay que probar con una más moderna.

P: ¿Puedo utiliza con Ruby las interfaces gtk+ o xforms?

R: En las sedes ftp bajo /contrib se encuentran los ficheros empaquetados ruby-gtk-x.xx-tar.gz y ruby-forms-x.x.tar.gz.

P: ¿Cómo puedo hacer date aritmético?

R: Un objeto Time sólo puede expresar fechas desde el uno de enero de 1970 al 19 de enero de 2038.

Existen dos módulos de ampliación: require "date" que es muy sencillo y utiliza el calendario Inglés y require "date2" que es más genérico.

Se puede ver en sample/cal.rb.