Public Los métodos pueden ser llamados por cualquiera.
Los métodos de instancia son públicos por defecto.
Protected Los métodos pueden ser invocados sólo por objetos
de la clase que los define y sus subclases.
Private Los métodos no pueden ser llamados con un receptor
explícito. El receptor siempre es self. Esto significa que
los métodos privados pueden ser llamados sólo en el contexto del objeto
actual. El método initialize siempre es privado.
El control de acceso es determinado de manera dinámica mientras el programa
se ejecuta, no de manera estática. Obtendrás una violación de acceso cuando el
código intente ejecutar un método restringido.
Los métodos del nivel más alto son métodos de instancia privados del módulo
Kernel.
attr_reader es sólo un lector, atrr_writer es sólo
un escritor y attr_accessor es lector y escritor.
Una excepción es una especie especial de objeto, una instancia de la clase
Exception o un descendiente de ella.
El método raise está definido en el módulo Kernel.
Por defecto, raise genera una excepción de clase
RuntimeError. Para generar una excepción de una clase en específico,
puedes pasar el nombre de la clase como argumento al método raise.
Para manejar excepciones, colocamos el código que puede generar una excepción
entre un bloque begin-end y utilizamos una o más cláusulas
rescue para indicarle a Ruby el tipo de excepciones que queremos
manejar.
Es importante notar que el cuerpo de una definición de un método es un
bloque begin-end implícito en el que begin es
omitido y el cuerpo entero del método está sujeto a manejo de excepciones
hasta el final del método.
Si escribes una cláusula rescue sin parámetros, el parámetro
pro defecto es StandardError.
Si necesitas garantizar que algún proceso es ejecutado al final del un
bloque de código sin importar si se generó una excepción, puedes usar
la cláusula ensure. ensure se coloca después de
la última cláusula rescue y contiene código que siempre va a ser
ejecutado cuande el bloque termie. La cláusula ensure siempre
es ejecutada.
Por defecto, el mensaje inspect, que puede ser enviado a cualquier
objeto, da formato al ID del objeto y a sus variables de instancia. Regresa
una cadena que contiene una representación legible del objeto. Si no es
sobreescrito, utiliza el método to_s para generar la cadena.
La clase Time contiene una interfaz en Ruby para el canjunto de
librerías escritas en C.
El tiempo cero para Ruby es el primer segunda del primer día de Enero de
1970.
La clase DateTime de Ruby es superior que la clase Time
pra aplicaciones astronómicas e históricas pero puedes usar Time
para la mayoría de tus programas.