CURSO DE RUBY

CURSO DE RUBY

CARLSON, LUCAS / RICHARDSON, LEONARD

59,50 €
IVA incluido
Editorial:
ANAYA MULTIMEDIA, S.A.
Año de edición:
2007
ISBN:
978-84-415-2194-0
Páginas:
1024
Encuadernación:
Otros

Disponibilidad:

  • Calle Doce de OctubreConsulte disponibilidad
  • Calle Valeriano MirandaConsulte disponibilidad

Contenido



Introducción

La vida es corta

Audiencia

La estructura del libro

Funcionamiento de los listados

Instalar el programa

Diferencias entre plataformas, diferencias entre versiones y otros dolores de cabeza

Otros recursos

Convenciones

Código fuente



Capítulo 1. Cadenas

1.1. Creando una cadena usando partes

1.2. Sustituir variables por cadenas

1.3. Sustituir variables por una cadena existente

1.4. Invertir las palabras o caracteres de una cadena

1.5. Representar caracteres que no se pueden mostrar

1.6. Conversiones entre caracteres y valores

1.7. Conversiones entre cadenas y símbolos

1.8. Procesar una cadena carácter a carácter

1.9. Procesar una cadena palabra a palabra

1.10. Cambiar las mayúsculas y minúsculas de una cadena

1.11. Gestionar el espacio en blanco

1.12. Comprobar si un objeto es del tipo cadena

1.13. Obtener las partes de la cadena que queramos

1.14. Gestionar codificaciones internacionales

1.15. Ajuste de línea automático

1.16. Generar una sucesión de cadenas

1.17. Comparar cadenas y expresiones regulares

1.18. Sustituir varios patrones con una sola pasada

1.19. Validar una dirección de correo electrónico

1.20. Clasificar texto con un analizador bayesiano



Capítulo 2. Números

2.1. Analizar un número de una cadena

2.2. Comparar números de punto flotante

2.3. Representar números con cualquier precisión

2.4. Representar números racionales

2.5. Generar números aleatorios

2.6. Convertir entre bases numéricas

2.7. Tomar logaritmos

2.8. Calcular la media, la mediana y la moda

2.9. Conversiones entre grados y radianes

2.10. Multiplicar matrices

2.11. Resolver un sistema de ecuaciones lineales

2.12. Usar números complejos

2.13. Simular una subclase de Fixnum

2.14. Realizar cálculos matemáticos con números romanos

2.15. Generar una secuencia de números

2.16. Generar números primos

2.17. Comprobar la suma de verificación de una tarjeta de crédito



Capítulo 3. Fecha y hora

3.1. Buscar la fecha actual

3.2. Analizar fechas, con precisión o de forma difusa

3.3. Mostrar una fecha

3.4. Recorrer fechas

3.5. Hacer cálculos con fechas

3.6. Contar los días transcurridos desde una fecha cualquiera

3.7. Convertir entre zonas horarias

3.8. Comprobar si el horario de verano está activo

3.9. Convertir entre objetos Time y DateTime

3.10. Buscar el día de la semana

3.11. Gestionar fechas comerciales

3.12. Ejecutar un bloque de código periódicamente

3.13. Esperar un cierto tiempo

3.14. Añadir caducidad a una operación prolongada



Capítulo 4. Matrices

4.1. Recorrer una matriz

4.2. Recolocar valores sin usar variables temporales

4.3. Eliminar los elementos duplicados de una matriz

4.4. Invertir una matriz

4.5. Ordenar una matriz

4.6. Omitir mayúsculas y minúsculas al ordenar cadenas

4.7. Asegurarnos de que una matriz ordenada permanece ordenada

4.8. Sumar los elementos de una matriz

4.9. Ordenar una matriz por frecuencia de aparición

4.10. Desordenar una matriz

4.11. Obtener los N elementos más pequeños de una matriz

4.12. Crear un resumen codificado usando inyección

4.13. Extraer partes de matrices

4.14. Calcular operaciones de conjunto en matrices

4.15. Dividir o clasificar un conjunto



Capítulo 5. Resúmenes codificados

5.1. Usar símbolos como claves de resumen codificado

5.2. Crear un resumen codificado con un valor predeterminado

5.3. Añadir elementos a un resumen codificado

5.4. Eliminar elementos de un resumen codificado

5.5. Usar una matriz u otro objeto modificable como clave de resumen codificado

5.6. Mantener varios valores para la misma clave de resumen codificado

5.7. Recorrer un resumen codificado

5.8. Recorrer un resumen codificado en orden de inserción

5.9. Mostrar un resumen codificado

5.10. Invertir un resumen codificado

5.11. Seleccionar un elemento al azar de una lista ponderada

5.12. Crear un histograma

5.13. Volver a asignar las claves y valores de un resumen codificado

5.14. Extraer partes de resúmenes codificados

5.15. Buscar en un resumen codificado con expresiones regulares



Capítulo 6. Archivos y directorios

6.1. Comprobar si existe un archivo

6.2. Comprobar el acceso a un archivo

6.3. Cambiar los permisos de un archivo

6.4. Ver cuándo se usó un archivo por última vez

6.5. Obtener un listado de un directorio

6.6. Leer el contenido de un archivo

6.7. Escribir en un archivo

6.8. Escribir en un archivo temporal

6.9. Seleccionar una línea al azar de un archivo

6.10. Compara dos archivos

6.11. Realizar un acceso aleatorio en flujos de entrada de datos que se leen una sola vez

6.12. Recorrer un árbol de directorio

6.13. Bloquear un archivo

6.14. Guardar copias de seguridad en versiones de nombre de archivo

6.15. Fingir que una cadena es un archivo

6.16. Redirigir los datos de entrada y de salida estándar

6.17. Procesar un archivo binario

6.18. Eliminar un archivo

6.19. Truncar un archivo

6.20. Encontrar los archivos que queremos

6.21. Buscar y modificar el directorio de trabajo actual



Capítulo 7. Bloques de código e iteración

7.1. Crear e invocar a un bloque

7.2. Escribir un método que acepte un bloque

7.3. Vincular un argumento de bloque a una variable

7.4. Bloques y cierres: usar variables externas en un bloque de código

7.5. Escribir un iterador para una estructura de datos

7.6. Cambiar la forma en la que un objeto itera

7.7. Escribir métodos de bloque que clasifiquen o recojan datos

7.8. Detener una iteración

7.9. Recorrer varios objetos iterables en paralelo usando bucles

7.10. Ocultar Setup y Cleanup en un bloque de método

7.11. Acoplar débilmente sistemas con llamadas devueltas



Capítulo 8. Objetos y clases

8.1. Gestionar datos de instancia

8.2. Gestionar datos de clase

8.3. Comprobar la pertenencia a clases o módulos

8.4. Escribir una clase heredada

8.5. Sobrecargar métodos

8.6. Validar y modificar valores de atributo

8.7. Definir un atributo virtual

8.8. Delegar llamadas a métodos en otro objeto

8.9. Convertir objetos en diferentes tipos y forzarlos

8.10. Obtener una impresión legible de cualquier objeto

8.11. Aceptar o pasar un número variable de argumentos

8.12. Simular argumentos de claves

8.13. Invocar a un método de superclase

8.14. Crear un método abstracto

8.15. Bloquear un objeto para evitar cambios

8.16. Crear una copia de un objeto

8.17. Declarar constantes

8.18. Implementar clases y métodos singleton

8.19. Controlar el acceso haciendo que los métodos sean privados



Capítulo 9. Módulos y espacios de nombre

9.1. Simular una herencia múltiple con mixins

9.2. Ampliar objetos específicos con módulos

9.3. Mezclar métodos de clase

9.4. Implementar Enumerable: escribir un método y obtener otros 22

9.5. Evitar conflictos de nombres con espacios de nombre

9.6. Cargar automáticamente bibliotecas cuando se necesitan

9.7. Incluir espacios de nombre

9.8. Inicializar variables de instancia definidas por un módulo

9.9. Inicializar automáticamente módulos mezclados



Capítulo 10. Reflexión y metaprogramación

10.1. Encontrar la clase y la superclase de un objeto

10.2. Mostrar los métodos de un objeto

10.3. Mostrar métodos únicos para un objeto

10.4. Obtener una referencia a un método

10.5. Reparar errores en clases que no hemos creado nosotros

10.6. Buscar cambios en una clase

10.7. Comprobar si un objeto tiene los atributos necesarios

10.8. Responder a llamadas a métodos sin definir

10.9. Inicializar automáticamente variables de instancia

10.10. Evitar el código estándar con metaprogramación

10.11. Metaprogramación con evaluaciones de cadena

10.12. Evaluar código en un contexto anterior

10.13. Indefinir un método

10.14. Métodos para proporcionar alias

10.15. Realizar programación orientada al aspecto

10.16. Imponer contratos de programa



Capítulo 11. XML y HTML

11.1. Comprobar que un XML esté bien formado

11.2. Extraer datos de la estructura de árbol de un documento

11.3. Extraer datos mientras se analiza un documento

11.4. Recorrer un documento con XPath

11.5. Analizando un marcado no válido

11.6. Convertir un documento XML en un resumen codificado

11.7. Validar un documento XML

11.8. Sustituir entidades XML

11.9. Crear y modificar documentos XML

11.10. Comprimir espacio en blanco en un documento XML

11.11. Adivinar la codificación de un documento

11.12. Convertir una codificación en otra

11.13. Extraer todos los URL de un documento HTML

11.14. Transformar texto plano en HTML

11.15. Convertir documentos HTML de Internet en texto

11.16. Un simple agregador de noticias



Capítulo 12. Gráficos y otros formatos de archivo

12.1. Crear miniaturas de imágenes

12.2. Añadir texto a una imagen

12.3. Convertir un formato de imagen en otro

12.4. Datos gráficos

12.5. Añadir contexto gráfico con palabras gráficas

12.6. Codificar datos de forma segura

12.7. Analizar datos separados por comas

12.8. Analizar datos no separados por comas

12.9. Generar y analizar hojas de cálculo Excel

12.10. Comprimir y archivar archivos con Gzip y Tar

12.11. Leer y escribir archivos ZIP

12.12. Leer y escribir archivos de configuración

12.13. Generar archivos PDF

12.14. Representar datos como música MIDI



Capítulo 13. Bases de datos y persistencia

13.1. Serialización de datos con YAML

13.2. Serialización de datos utilizando flujos de datos

13.3. Objetos persistentes con Madeleine

13.4. Indexado de un texto desestructurado con SimpleSearch

13.5. Indexado de texto estructurado con Ferret

13.6. Uso de la base de datos Berkeley DB

13.7. Control de MySQL en Unix

13.8. Averiguar el número de filas devuelto por una consulta

13.9. Trato directo con una base de datos MySQL

13.10. Trato directo con una base de datos PostgreSQL

13.11. Uso de mapas de objetos relacionales con ActiveRecord

13.12. Uso del mapeado de objetos relacionales con Og

13.13. Composición de consultas mediante programación

13.14. Validación de datos usando ActiveRecord

13.15. Prevención de ataques de inyección SQL

13.16. Uso de transacciones con ActiveRecord

13.17. Agregar conexiones a los eventos de la tabla

13.18. Agregar etiquetas a bases de datos



Capítulo 14. Servicios de Internet

14.1. Visualizar los contenidos de una página Web

14.2. Cómo hacer una consulta Web HTTPS

14.3. Personalización de las cabeceras de petición HTTP

14.4. Realizar peticiones a servidores DNS

14.5. Envío de correo electrónico

14.6. Kectyra de correo electrónico con IMAP

14.7. Lectura de correo con POP3

14.8. Funcionamiento como cliente FTP

14.9. Funcionamiento como cliente Telnet

14.10. Funcionamiento como cliente SSH

14.11. Copiar un archivo a otra máquina

14.12. Funcionamiento como un cliente BitTorrent

14.13. Hacer ping a una máquina

14.14. Escritura de un servidor de Internet

14.15. Procesado de los URL

14.16. Escritura de script CGI

14.17. Configuración de las cookies y otras cabeceras de la respuesta HTTP

14.18. Gestión de subida de archivos mediante CGI

14.19. Ejecución de servlets con WEBrick

14.20. Un cliente HTTP del mundo real



Capítulo 15. Desarrollo Web con Ruby on Rails

15.1. Escritura de una aplicación Rails sencilla para mostrar el estado del sistema

15.2. Paso de datos del Controlador a la Vista

15.3. Creación de una distribución para la cabecera y el pie

15.4. Redirección a una ubicación diferente

15.5. Visualización de plantillas utilizando las funciones de dibujo

15.6. Integración de una base de datos con una aplicación Rails

15.7. Explicación de las reglas de pluralización

15.8. Creación de un sistema de entrada a un sistema

15.9. Almacenaje de contraseñas de usuario en una base de datos

15.10. Evitar el uso de HTML y JavaScript para la visualización

15.11. Configuración y recuperación de la información de la sesión

15.12. Configuración y recuperación de cookies

15.13. Extracción de código para las funciones de ayuda

15.14. Refactorización de la vista en partes parciales de la misma

15.15. Incorporar efectos DHTML con script.aculo.us

15.16. Generación de formularios para manipulación de objetos del modelo

15.17. Creación de un formulario Ajax

15.18. Utilización de servicios Web en nuestro sitio Web

15.19. Envío de correo electrónico con Rails

15.20. Envío automático de mensajes de error a su correo electrónico

15.21. Documentación de su sitio Web

15.22. Unidades de prueba de su sitio Web

15.23. Uso de puntos de ruptura en sus aplicaciones Web



Capítulo 16. Servicios Web y programación distribuida

16.1. Búsqueda de libros en Amazon

16.2. Buscar fotos en Flickr

16.3. Escritura de un cliente XML-RPC

16.4. Escritura de un cliente SOAP

16.5. Escritura de un servidor SOAP

16.6. Búsqueda en la Web utilizando el servicio SOAP de Google

16.7. Uso de un archivo WSDL para hacer las llamadas SOAP más sencillas

16.8. Pago con una tarjeta de crédito

16.9. Consulta al precio de enviar paquetería utilizando UPS o FedEx

16.10. Compartir un hash entre varias máquinas

16.11. Implementación de una cola distribuida

16.12. Creación de una pizarra compartida

16.13. Haciendo seguros los servicios DRb con listas de control de acceso

16.14. Descubrimiento automático de Servicios DRb con Rinda

16.15. Construcción de objetos proxy que no pueden ser distribuidos

16.16. Almacenamiento de datos en RAM distribuida utilizando MemCached

16.17. Almacenamiento intermedio de resultados pesados utilizando MemCached

16.18. Un Jukebox controlado remotamente



Capítulo 17. Prueba, depuración, optimización y documentación

17.1. Ejecución de código en modo de depuración

17.2. Levantamiento de excepciones

17.3. Gestión de una excepción

17.4. Recuperación tras una excepción

17.5. Inclusión de bitácora en su aplicación

17.6. Creación de trazas comprensibles

17.7. Escritura de pruebas unitarias

17.8. Ejecución de pruebas unitarias

17.9. Prueba de código que utiliza recursos externos

17.10. Uso de puntos de ruptura para inspeccionar y cambiar el estado de su aplicación

17.11. Documentación de su aplicación

17.12. Perfilando la aplicación

17.13. Estadísticas de soluciones completas

17.14. Ejecución de varias herramientas de análisis al mismo tiempo

17.15. ¿Quién está invocando a este método? Un analizador de gráficos de invocación



Capítulo 18. Empaquetado y distribución del software

18.1. Búsqueda de bibliotecas consultando los repositorios de gemas

18.2. Instalación y uso de gemas

18.3. Requerir una versión específica de una gema

18.4. Desinstalación de una gema

18.5. Lectura de documentación de las gemas instaladas

18.6. Empaquetado de su código en una gema

18.7. Distribución de sus gemas

18.8. Instalación y creación de paquetes individuales con setup.rb



Capítulo 19. Automatización de tareas con Rake

19.1. Ejecución automática de pruebas unitarias

19.2. Generación automática de documentación

19.3. Limpieza de archivos generados

19.4. Construcción automática de una gema

19.5. Obtención de estadísticas sobre su código

19.6. Publicación de su documentación

19.7. Ejecución de varias tareas en paralelo

19.8. Un proyecto genérico de archivos Rake



Capítulo 20. Multitarea y multihilo

20.1. Ejecución de un proceso demonio en Unix

20.2. Creación de un servicio de Windows

20.3. Cómo hacer dos cosas a la vez con hilos

20.4. Sincronización del acceso a un objeto

20.5. Terminación de un hilo

20.6. Ejecución de un bloque de código en varios objetos de forma simultánea

20.7. Limitación del multihilo con un almacén de hilos

20.8. Gestión de un proceso externo con popen

20.9. Captura de los flujos de salida y de error desde una consola de Unix

20.10. Control de un proceso de otra máquina

20.11. Evasión de la exclusión mutua



Capítulo 21. Interfaz de usuario

21.1. Obtener los datos introducidos por el usuario línea a línea

21.2. Obtener los datos introducidos carácter a carácter

21.3. Analizar argumentos de línea de comandos

21.4. Comprobar si un programa se está ejecutando de forma interactiva

21.5. Montar y desmontar un programa Curses

21.6. Borrar la pantalla

21.7. Determinar el tamaño de la terminal

21.8. Cambiar el color de texto

21.9. Leer una contraseña

21.10. Permitir la edición de datos de entrada con Readline

21.11. Hacer que las luces del teclado parpadeen

21.12. Crear una aplicación GUI con Tk

21.13. Crear una aplicación GUI con wxRuby

21.14. Crear una aplicación GUI con Ruby/GTK

21.15. Crear una aplicación Mac OS X con Ruby Cocoa

21.16. Usar AppleScript para obtener los datos introducidos por el usuario



Capítulo 22. Extensión de Ruby con otros lenguajes

22.1. Escritura de una extensión C para Ruby

22.2. Uso de una biblioteca de C desde Ruby

22.3. Invocación a la biblioteca de C mediante SWIG

22.4. Inclusión de código C dentro de su código Ruby

22.5. Uso de la biblioteca de Java con JRuby



Capítulo 23. Administración del sistema

23.1. Escritura de un programa externo como script

23.2. Gestión de los servicios de Windows

23.3. Ejecución de código como si fuese un usuario distinto

23.4. Ejecución de tareas periódicas sin cron o at

23.5. Eliminación de archivos que cumplen una determinada expresión regular

23.6. Renombrado de archivos en serie

23.7. Búsqueda de archivos Duplicates

23.8. Automatización de copias de seguridad

23.9. Normalización de propiedad y permisos en directorios de usuario

23.10. Matar todos los procesos de un usuario determinado



Índice alfabético

Ruby, el lenguaje de programación reflexivo orientado a objetos, se fundamenta en una combinación de sintaxis inspirada en Python, Perl con características de programación orientada a objetos similates a Smaltalk. Además, comparte funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby nos permite ahorrar tiempo y ser más productivos que con otros lenguajes de programación, porque pasamos más tiempo haciendo que el ordenador haga lo que queremos y menos luchando con el lenguaje.



Este libro es la guía más detallada y práctica para el lenguaje de programación más activo del momento. Proporciona cientos de soluciones reales, con explicaciones sencillas y miles de líneas de código que puede usar en sus propios proyectos. Desde estructuras de datos y algoritmos hasta la integración con tecnología de vanguardia, este libro será de gran ayuda a cualquier programador.

Artículos relacionados

  • GENERACIÓN IA
    LÁZARO ÁVILA, MARÍA
    Al debate sobre cómo, cuándo y por qué dar acceso (o no) a niños y adolescentes a las pantallas, móviles y redes sociales, se añade ahora otro ingrediente digital: la inteligencia artificial.En realidad, la IA no es un fenómeno nuevo: llevamos conviviendo con ella desde hace años, muchas veces de forma invisible. Ahora, la «democratización» de aplicaciones y herramientas de IA ...

    22,95 €

  • ACCESIBILIDAD DIGITAL. CURSO PRÁCTICO
    FERNÁNDEZ CASADO, PABLO ENRIQUE
    Este libro constituye una guía actualizada sobre la accesibilidad digital, orientada tanto a la comprensión de la nueva Ley EAA como a su aplicación práctica en entornos reales. A lo largo de sus capítulos, el lector adquiere una visión global de la accesibilidad web y documental, entendida como un requisito técnico, legal y ético imprescindible para garantizar el acceso univer...

    29,90 €

  • INFORMÁTICA E INTERNET BÁSICO PARA MAYORES
    MONTEPINAR, GRUPO
    Este libro es una guía práctica y cercana pensada especialmente para personas mayores que desean aprender a utilizar el ordenador y el teléfono móvil con tranquilidad y confianza. Explicado paso a paso y con un lenguaje claro, permite adquirir las competencias digitales necesarias para desenvolverse en la vida cotidiana. La obra está centrada especialmente en Windows 11 y el pa...

    19,90 €

  • HACIA UN INTERNET MÁS LIBRE
    JORGE SCHNURA
    ¿Y si pudieras ser el verdadero dueño de tu yo digital?En un mundo en el que unos pocos gigantes tecnológicos deciden qué vemos, qué pensamos y qué somos en línea, este libro propone una revolución: la Web 3.0. A través de un viaje apasionante que une historia, tecnología y crítica social, el autor desenmascara los mecanismos de control de la Internet actual y muestra cómo la t...

    23,95 €

  • OFFICE Y COPILOT OPTIMIZA WORD EXCEL POWERPOINT Y TEAMS
    CHEMA GOMEZ
    La Inteligencia Artificial ha transformado las herramientas de Office, convirtiéndolas en asistentes inteligentes que facilitan el trabajo diario.Este libro te guía paso a paso en la integración de la IA en Word, Excel, Powerpoint, Outlook y Teams, mostrando cómo aprovechar al máximo sus funciones avanzadas.? En Word, redacta con mayor precisión gracias al procesamiento de leng...

    27,90 €

  • ENTIENDE LA TECNOLOGÍA
    GENTILE, NATE
    Piénsalo: gracias a los avances tecnológicos podemos hablar con alguien que esté a miles de kilómetros, predecir el tiempo, cruzar el planeta en cuestión de horas, conocer nuestro estado de salud, curar enfermedades graves, acceder al instante a más información de la que nunca seremos capaces de leer... ¡Si incluso hemos conseguido hacer que las máquinas aprendan! ¿Cómo de dif...

    21,90 €