|
|||
| Sidebar: El último Ruby |
Para aquellos que tienen que estar en la última, recién salida de la imprenta y
sin testear (como mientras estábamos escribiendo este libro),
puedes obtener versiones de desarrollo directamente desde el del repositorio
de trabajo de los desarrolladores.
Los desarrolladores de Ruby utilizan CVS (Concurrent Version System, disponible
de forma libre desde http://www.cvshome.com) como su sistema
de control de versiones. Puedes comprobar los ficheros como un
usuario anónimo desde sus archivos ejecutando el siguiente comando CVS:
% cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs
login
(Logging in to anonymous@cvs.netlab.co.jp)
CVS password: guest
% cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs
checkout ruby
El árbol completo del código fuente, tal y como lo dejaron los desarrolladores,
será copiado a un subdirectorio ``ruby'' de tu máquina, actualizando tu
árbol local desde un repositorio en el otro extremo del mundo. ¿No son buenos
tiempos para vivir?
|
README, el
cual explica el procedimiento de instalación en detalle. Para resumir, construyes
Ruby en sistemas basados en POXIS utilizando los mismos cuatro comandos que utilizas
para la mayoría de las otras aplicaciones open source:
./configure, make, make test, and make
install. Puedes construir Ruby bajo otros entornos (incluyendo Windows)
mediante el uso de un entorno de emulación POXIS como cygwin
[Ver
http://sourceware.cygnus.com/cygwin para más detalles.] o
utilizando compiladores nativos ---ver ``ntsetup.bat'' en el directorio
win32 de la distribución como punto de comienzo.
% ruby puts "Hello, world!" ^D Hello, world! |
puts y un
carácter fin de fichero (que es control-D en nuestro sistema).
Este proceso funciona, pero es algo doloroso si cometes un error
mecanográfico, y no puedes ver realmente que está pasando
En el directorio sample de la distribución Ruby encontrarás
un script llamado ``eval.rb''. Va un paso más allá, mostrándonos
el valor de cada expresión a medida que se introducen:
% cd sample % ruby eval.rb ruby> a = "Hello, world!" "Hello, world!" ruby> puts a Hello, world! nil ruby> ^D % |
puts, y el valor devuelto por puts
(que es nil).
Hasta aquí todo correcto, excepto que las expresiones multilíneas no
funcionan, y que no puedes editar la línea en la que estás, o ir atrás
y utilizar líneas previas (como podrías con el histórico de comandos
de un interprete de comandos).
El siguiente paso desde eval.rb, tenemos irb ---Interactive
Ruby. irb es un Interprete de Comandos Ruby, completado con histórico
de comandos, capacidad de edición de líneas, y control de trabajo. Es bastante
configurable y tiene muchas opciones, tanto que tiene su propio apéndice que
comienza en la página 517. Nosotros te recomendamos que te familiarices con
irb para poder probar algunos de nuestros ejemplos interactivamente.
% ruby myprog.rb |
#!/usr/bin/env ruby, que encontrará tu ruta a ruby y lo
ejecutará.]
#!/usr/local/bin/ruby -w puts "Hello, World!" |
chmod +x myprog.rb), Unix te permite ejecutar el fichero
como un programa:
% ./myprog.rb Hello, World! |
Date. Guy Decoux
y Clemens Hintze respondieron pacientemente a nuestras preguntas
sobre escribir extensiones de Ruby, y Masaki Suketa nos ayudó a entender
el módulo WinOle.
Aunque mucha de la documentación original de Ruby está en Japonés,
hay un grupo creciente de traducciones al inglés, mayormente acometidas
por desarrolladores japoneses cuyas capacidades con el inglés no paran
de sorprendernos. Aunque hay demasiadas contribuciones individuales en
este esfuerzo como para nombrar cada autor, querríamos destacar a
Goto Kentaro, quien ha producido un gran volumen de documentación de
mucha calidad y la ha puesto online.
Finalmente, queremos dar las gracias a Yukihiro ``Matz'' Matsumoto, el creador
de Ruby. Hemos perdido la cuenta del nº de preguntas que le hemos hecho,
y el numero de pacientes y detalladas respuestas que nos ha devuelto.
Igual que ha creado un maravilloso lenguaje, Matz ha fomentado una cultura
maravillosamente comprensiva y abierta en la cual el lenguaje puede prosperar.
Gracias a todos. Domo arigato gozaimasu.
Dave Thomas y Andy Hunt
class SampleCode def run #... end end |
Fred#doIt es una referencia a un metodo de instancia
(doIt) de la clase Fred, mientras Fred.new
[
en algunos otras documentaciones de Ruby, podrías ver métodos de clase escritos como
Fred::new. Esto es perfectamente válido en sintaxis Ruby; solo ocurre que nos parece
que Fred.new es menos molesto de leer.] es un metodo de clase, y Fred::EOF es una
constante de clase.
El libro contiene varios trozos de código Ruby. Donde sea posible, intentaremos
mostrar que suceden cuando se ejecutan. En casos simples, mostramos el
valor de la expresión en la misma línea que la expresión. Por ejemplo:
a = 1
|
||
b = 2
|
||
a + b
|
» |
3
|
a = 1
|
» |
1
|
b = 2
|
» |
2
|
a + b
|
» |
3
|
3.times { puts "Hello!" }
|
Hello! Hello! Hello! |
ruby [
opciones
]*
[
nombre_programa
] [
argumentos
]+
|