Autores:
- VÁZQUEZ OLIVARES, Javier Arturo
- LORENZO MARTÍNEZ, Daniel
Páginas: 704
Coedición: Alfaomega, RC Libros
$58.054
Autores:
Páginas: 704
Coedición: Alfaomega, RC Libros
Compra en hasta 12 pagos mensuales sin usar tarjeta de crédito
¿Tienes dudas? Consulta nuestra FAQ . Crédito sujeto a aprobación.
Ruby y su framework Rails se han venido posicionando como una de las tecnologías más solicitadas a nivel mundial debido a la facilidad de uso y productividad que ofrece. Los desarrolladores necesitan de herramientas con agilidad para construir y depurar productos de software de manera ordenada y rápida. Es por ello que la versatilidad y rapidez de Rails se conjuga con la elegancia y legibilidad de lenguaje de Ruby para dar como resultado un excelente producto tecnológico. En la presente publicación se muestra detalladamente cómo crear un software utilizando Ruby on Rails desde los primeros pasos. El lector podrá constatar en estas páginas que la característica principal de Ruby es ser intuitivo e idiomático, es decir, que la programación en Ruby se parece mucho al lenguaje natural (en inglés) y que la estructura de código es muy sencilla. Se exponen temas relativos a variables, objetos, arreglos, hashes y otros temas de importancia en Ruby mediante explicaciones fáciles de entender y ejemplos que el lector por sí mismo podrá practicar.
VENTAJAS
• Está escrito de forma coloquial y sin demasiados tecnicismos para que su lectura sea fluida.
• Cuenta con numerosos ejemplos prácticos de cada uno de los temas.
• Al final del libro se encuentra un capítulo complementario que puede servir de guía para comenzar sus propios proyectos.
• Cuenta con un índice analítico útil para la localización puntual de algún concepto.
CONOZCA
• Las principales características de este lenguaje.
• Los diferentes métodos para trabajar con Ruby.
• Qué es, para qué se utiliza y cómo se define un módulo.
• Las características fundamentales del framework RoR y la estructura de los proyectos realizados con éste.
APRENDA
• A trabajar con números, rangos, cadenas de caracteres, símbolos, fechas y con colecciones de objetos.
• A trabajar en la Programación Orientada a Objetos con Ruby.
• A crear modelos y hacer operaciones CRUD con ellos.
• A llevar a cabo potentes aplicaciones web y construir servicios API Rest.
DESARROLLE SUS HABILIDADES PARA
• Instalar Ruby on Rails en Windows, GNU/Linux y OS X.
• Hacer conversiones entre los diferentes tipos de datos.
• Establecer condiciones y repeticiones en sus programas.
• Montar sus servicios o aplicaciones en un servidor en la nube.
PARTE I RUBY
MI PRIMER ENCUENTRO …………………………………………………………………………….. 1
CAPÍTULO 1. ACERCA DE RUBY …………………………………………………………………….. 3
Sobre el lenguaje y su creador …………………………………………………………………………… 3
Características y comparación …………………………………………………………………………… 4
CAPÍTULO 2. PREPARACIÓN DEL ENTORNO DE TRABAJO ……………………………. 7
Instalación de Ruby y Ruby on Rails …………………………………………………………………… 7
Instalación en Windows ……………………………………………………………………………….. 8
Instalación en GNU/Linux …………………………………………………………………………… 11
Instalación en OS X …………………………………………………………………………………….. 17
Entornos de desarrollo …………………………………………………………………………………… 20
Editores de código ……………………………………………………………………………………… 20
IDEs ………………………………………………………………………………………………………….. 21
CAPÍTULO 3. MIS PRIMEROS PROGRAMAS EN RUBY ………………………………… 23
EL IRB de Ruby ………………………………………………………………………………………………. 23
Ejecución de un script desde la terminal …………………………………………………………… 25
Antes de continuar considera lo siguiente ………………………………………………………… 27
CAPÍTULO 4. INTRODUCCIÓN A LA POO ………………………………………………………. 31
La POO en palabras simples …………………………………………………………………………….. 31
CAPÍTULO 5. UTILIZANDO OBJETOS EN RUBY …………………………………………. 35
Los objetos de Ruby ……………………………………………………………………………………….. 35
Creación de un objeto en Ruby ……………………………………………………………………. 36
Trabajando con los métodos de Ruby …………………………………………………………… 37
Valores de retorno y paso de argumentos en los métodos ………………………….. 38
Paso de argumentos a los métodos ………………………………………………………….. 39
La biblioteca de clases de Ruby …………………………………………………………………… 42
VARIABLES Y OBJETOS ……………………………………………………………………………. 47
CAPÍTULO 6. LAS VARIABLES ……………………………………………………………………… 49
Asignación de objetos a las variables ……………………………………………………………….. 49
Un nombre correcto para mi variable ………………………………………………………………. 50
¿Qué es el tipado dinámico? …………………………………………………………………………… 51
Asignaciones abreviadas ………………………………………………………………………………… 52
Asignación del valor de una variable a otra ………………………………………………………. 53
CAPÍTULO 7. LOS NÚMEROS ………………………………………………………………………. 57
¿Qué son los números y de dónde provienen? ………………………………………………….. 57
Números enteros ………………………………………………………………………………………….. 58
Sistemas numéricos …………………………………………………………………………………… 59
Algunos métodos de la clase Integer ……………………………………………………………. 60
Números flotantes ………………………………………………………………………………………… 62
Truncamiento y redondeo ………………………………………………………………………….. 62
Algunos métodos heredados de Numeric …………………………………………………………. 64
Operaciones con números ……………………………………………………………………………… 64
Operadores aritméticos y algunos ejemplos sencillos …………………………………….. 64
Evaluación de expresiones con varios operadores involucrados ………………………. 67
comparaciones de números ……………………………………………………………………………. 69
Operadores relacionales o de comparación ………………………………………………….. 69
Aplicación de los operadores relacionales …………………………………………………….. 70
Números aleatorios y rangos ………………………………………………………………………….. 70
CAPÍTULO 8. CADENAS DE CARACTERES ………………………………………………………. 75
Generalidades de las cadenas …………………………………………………………………………. 75
Algunos métodos para empezar ………………………………………………………………….. 76
Transformación de los caracteres alfabéticos ……………………………………………….. 78
Comparación de cadenas ……………………………………………………………………………. 79
Concatenación ………………………………………………………………………………………….. 80
Búsqueda de caracteres ……………………………………………………………………………… 82
Obtención de caracteres y subcadenas ………………………………………………………… 82
Inserción en una cadena …………………………………………………………………………….. 83
Reemplazo de caracteres ……………………………………………………………………………. 84
Eliminación de fragmentos de una cadena ……………………………………………………. 85
Las particularidades de cada comilla ………………………………………………………………… 87
Comillas dobles …………………………………………………………………………………………. 87
Las secuencias de escape ………………………………………………………………………… 87
La interpolación …………………………………………………………………………………….. 89
Comillas simples ………………………………………………………………………………………… 90
Los únicos caracteres especiales ……………………………………………………………… 91
Percent strings (%Q y %q) ………………………………………………………………………………. 91
here documents o heredocs …………………………………………………………………………… 92
CAPÍTULO 9. FECHAS Y HORAS …………………………………………………………………… 95
La clase Time …………………………………………………………………………………………………. 95
La clase Date …………………………………………………………………………………………………. 98
DateTime, una subclase de Date ………………………………………………………………….. 99
Formateo de fechas y horas ………………………………………………………………………….. 100
Comparación de fechas y horas ……………………………………………………………………… 102
CAPÍTULO 10. COLECCIONES DE OBJETOS …………………………………………………… 105
Los arreglos …………………………………………………………………………………………………. 105
Creación de un arreglo ……………………………………………………………………………… 105
Una miscelánea de métodos básicos ………………………………………………………….. 107
¿Cómo extraer elementos de un arreglo? …………………………………………………… 110
Diversas maneras de agregar más elementos a un arreglo ……………………………. 112
Reducción de un arreglo …………………………………………………………………………… 114
Operaciones de arreglos …………………………………………………………………………… 116
Operación resta ……………………………………………………………………………………. 118
Operación unión …………………………………………………………………………………… 119
Operación intersección …………………………………………………………………………. 120
Concatenación de arreglos …………………………………………………………………….. 120
Los Hashes ………………………………………………………………………………………………….. 121
Creación de un hash …………………………………………………………………………………. 121
¿Qué son los símbolos? …………………………………………………………………………….. 122
Algunos métodos similares a los de las cadenas ……………………………………….. 123
Pregúntale al hash acerca de… …………………………………………………………………… 124
Obtención de claves y valores ……………………………………………………………………. 126
Obtención de una sola clave o valor ……………………………………………………….. 127
Obtención de varias claves o valores ………………………………………………………. 127
Modificación de los hashes ……………………………………………………………………….. 128
Inserciones de clave-valor y sustitución de valores …………………………………… 128
Combinación de hashes ………………………………………………………………………… 129
Eliminación a través de las claves …………………………………………………………… 130
CAPÍTULO 11. CONVERSIONES DE DATOS …………………………………………………… 131
Conversiones frecuentes ………………………………………………………………………………. 131
Conversiones de números sin dejar de ser números …………………………………….. 131
De texto a números ………………………………………………………………………………….. 132
Entre colecciones de objetos …………………………………………………………………….. 133
Cualquier otro objeto a texto …………………………………………………………………….. 134
ESTRUCTURAS DE CONTROL ………………………………………………………………….. 135
CAPÍTULO 12. CONDICIONES ……………………………………………………………………. 137
Expresiones …………………………………………………………………………………………………. 137
Expresión if ……………………………………………………………………………………………… 137
Expresión if – else …………………………………………………………………………………. 138
expresión elsif ……………………………………………………………………………………… 141
Expresión case …………………………………………………………………………………………. 143
case como un if-elsif ……………………………………………………………………………… 144
Case con un argumento ………………………………………………………………………… 145
Expresión unless ……………………………………………………………………………………… 148
if y unless como modificadores ……………………………………………………………………… 149
Condicionales y operadores lógicos ……………………………………………………………….. 150
Operadores lógicos ………………………………………………………………………………….. 150
Operador ! ………………………………………………………………………………………….. 151
Operador && ………………………………………………………………………………………. 152
Operador || ………………………………………………………………………………………… 153
Más de un operador lógico en una expresión ……………………………………………… 154
Ahora todo junto …………………………………………………………………………………….. 155
Un último ejemplo y tarea para la casa …………………………………………………………… 156
CAPÍTULO 13. CICLOS E ITERADORES …………………………………………………………. 159
Ciclos …………………………………………………………………………………………………………. 159
Ciclo for ………………………………………………………………………………………………….. 159
Ciclo while ………………………………………………………………………………………………. 162
Ciclo until ……………………………………………………………………………………………….. 163
Usando while y until como modificadores …………………………………………………… 164
Hacer al menos una repetición con while o until se cumpla o no la condición 164
Declaraciones break, next y redo ……………………………………………………………….. 168
Iteradores …………………………………………………………………………………………………… 170
Sobre los iteradores en general …………………………………………………………………. 170
Iteradores times, upto y downto ……………………………………………………………….. 171
Las cadenas también se iteran con estilo ……………………………………………………. 173
Iteración de un arreglo …………………………………………………………………………….. 173
Iteración de un hash ………………………………………………………………………………… 178
LA POO A DETALLE ……………………………………………………………………………….. 181
CAPÍTULO 14. LOS MÉTODOS …………………………………………………………………… 183
Sobre los métodos en general ……………………………………………………………………….. 183
Métodos con argumentos …………………………………………………………………………….. 185
Argumentos posicionales con valores por defecto ……………………………………….. 187
Argumentos de palabras clave (no posicionales) ………………………………………….. 188
Argumentos Array/Hash …………………………………………………………………………… 190
Los métodos y los bloques de código ……………………………………………………………… 193
Algunos aspectos de los bloques ……………………………………………………………….. 193
De bloques a objetos Proc y viceversa ………………………………………………………… 196
Recursividad ……………………………………………………………………………………………….. 199
CAPÍTULO 15. CLASES Y OBJETOS ……………………………………………………………… 203
Diseño de clases ………………………………………………………………………………………….. 203
Acciones (métodos) que realizarán los objetos ……………………………………………. 204
Las características (atributos) que tendrán los objetos …………………………………. 205
Inicialización de atributos ……………………………………………………………………… 207
Todo junto ………………………………………………………………………………………………. 210
Herencia de clases ……………………………………………………………………………………….. 212
Sobrescritura de métodos ………………………………………………………………………… 213
De lo general a lo específico ………………………………………………………………………. 214
La herencia con las clases de Ruby ……………………………………………………………… 217
La visibilidad de los métodos …………………………………………………………………………. 217
La clase Singleton, los métodos de clase y las variables de clase ………………………… 222
CAPÍTULO 16. LOS MÓDULOS …………………………………………………………………… 227
¿Qué es un módulo, para qué sirve y cómo se define? ……………………………………… 227
Los módulos como namespaces …………………………………………………………………….. 228
Los mixins …………………………………………………………………………………………………… 231
Módulos en diferentes archivos …………………………………………………………………. 233
Explicación del scope de las constantes en módulos / clases …………………………….. 234
CUENTAME MÁS SOBRE RUBY ……………………………………………………………….. 237
CAPÍTULO 17. LAS EXPRESIONES REGULARES …………………………………………. 239
Perdiéndole el miedo a las expresiones regulares ……………………………………………. 239
Construcción de Regex para números telefónicos con 10 dÍgitos (paso a paso) ……. 242
¿Dónde más se usan los regex? ……………………………………………………………………… 245
Tablas de ayuda …………………………………………………………………………………………… 245
CAPÍTULO 18. ARCHIVOS Y CARPETAS ……………………………………………………….. 247
Archivos ……………………………………………………………………………………………………… 247
Permisos en archivos de texto plano ………………………………………………………….. 247
Permiso de solo lectura …………………………………………………………………………. 248
Permiso de solo escritura ………………………………………………………………………. 250
Permiso de lectura y escritura ……………………………………………………………….. 251
Directorios ………………………………………………………………………………………………….. 252
Creación de directorios …………………………………………………………………………….. 252
Obtención de la ruta, nombre y extensión de un archivo ………………………………. 255
Verificación y búsqueda ……………………………………………………………………………. 256
CAPÍTULO 19. EXCEPCIONES …………………………………………………………………….. 259
¿Qué es una excepción en Ruby? …………………………………………………………………… 259
Otros tipos de excepciones que ocurren frecuentemente …………………………….. 261
Manejo de excepciones ………………………………………………………………………………… 263
¿Cómo evitar que un programa termine antes? …………………………………………… 263
El método raise: Lanzar excepciones intencionadamente ……………………………… 264
Dos elementos más en el bloque: else y ensure …………………………………………… 266
PARTE II RUBY ON RAILS
FUNDAMENTOS ………………………………………………………………………………….. 267
CAPÍTULO 20. INTRODUCCIÓN A RUBY ON RAILS ………………………………………… 269
¿Qué es Ruby on Rails? …………………………………………………………………………………. 269
La fIlosofía Rails …………………………………………………………………………………………… 270
CAPÍTULO 21. FUNDAMENTOS DEL DESARROLLO WEB …………………………………. 269
¿Cómo funciona una aplicación web? …………………………………………………………….. 273
¿Qué es un servidor web? …………………………………………………………………………….. 275
El protocolo de comunicación http ……………………………………………………………….. 276
Peticiones y respuestas http …………………………………………………………………….. 277
Métodos de peticiones http …………………………………………………………………….. 279
Código del lado del cliente vs código del lado del servidor ……………………………….. 281
CAPÍTULO 22. PRIMER PROYECTO EN RUBY ON RAILS ………………………………….. 285
Creación de un proyecto en Ruby on Rails ………………………………………………………. 285
Ejecución del servidor local ………………………………………………………………………. 291
Arquitectura MVC en Ruby on Rails ……………………………………………………………….. 292
Solución al bug con usuarios de Windows ………………………………………………………. 294
FUNDAMENTOS DEL TRABAJO EN ROR ……………………………………………………. 297
CAPÍTULO 23.PRIMEROS PASOS EN RUBY ON RAILS …………………………………….. 299
Creación de un controlador ………………………………………………………………………….. 299
¿Qué acabo de crear? ………………………………………………………………………………. 301
Proceso de una petición en Ruby on Rails …………………………………………………… 303
Comunicación entre la vista y el controlador ………………………………………………. 310
Expresiones y scriptlets en las vistas ………………………………………………………. 311
Incluyamos un modelo ……………………………………………………………………………… 314
SQLite …………………………………………………………………………………………………. 315
Configuración de la base de datos ………………………………………………………….. 318
Creación de un módelo en Ruby on Rails ………………………………………………… 320
Ejecutando la migración ……………………………………………………………………….. 323
Uso de la consola de Rails ……………………………………………………………………… 327
Juntemos todo ………………………………………………………………………………………… 335
Estructura de un proyecto Ruby on Rails ………………………………………………………… 338
El archivo Gemfile ……………………………………………………………………………………. 341
MODELOS EN PROFUNDIDAD ………………………………………………………………… 345
CAPÍTULO 24. CREACIÓN DE MODELOS EN RUBY ON RAILS ………………… 347
Introducción ……………………………………………………………………………………………….. 347
Generación de modelos ……………………………………………………………………………….. 348
Usos avanzados del generador de modelos ………………………………………………… 350
Preparación de un nuevo proyecto en Rails …………………………………………………….. 352
CAPÍTULO 25. ACCIONES CON MODELOS ……………………………………………………. 355
Acciones CRUD: Crear ………………………………………………………………………………….. 355
El archivo seeds.rb …………………………………………………………………………………… 357
Acciones CRUD: Actualizar ……………………………………………………………………………. 358
Acciones CRUD: Eliminar ………………………………………………………………………………. 359
Acciones CRUD: Leer ……………………………………………………………………………………. 360
Métodos para obtener una instancia de modelo …………………………………………. 360
Métodos de búsqueda dinámicos ………………………………………………………………. 363
Métodos para obtener colecciones de instancias de modelo
y otros métodos más ………………………………………………………………………………. 364
Utilizando not y or ……………………………………………………………………………….. 368
Ordenamiento de datos ………………………………………………………………………… 368
Selección específica de campos ……………………………………………………………… 369
Buscar o construir un nuevo objeto ………………………………………………………… 371
Realizar búsquedas mediante SQL nativo ………………………………………………… 372
Obtener datos específicos de una consulta ……………………………………………… 373
Los cálculos en Active Record ……………………………………………………………………. 374
Contar registros ……………………………………………………………………………………. 375
Agregando columna edad a los usuarios …………………………………………………. 377
Estableciendo valores aleatorios al campo edad ………………………………………. 380
Obtener el mínimo, máximo, la suma y el promedio …………………………………. 381
CAPÍTULO 26. ASOCIACIÓN DE MODELOS ………………………………………………….. 383
Asociaciones en Active Record ………………………………………………………………………. 383
Creando los modelos Book y Borrowing ……………………………………………………… 383
Tipos de relaciones en los modelos…………………………………………………………….. 388
Asociación belongs_to ………………………………………………………………………….. 391
Asociación has_one ………………………………………………………………………………. 392
Asociación has_many ……………………………………………………………………………. 393
Asociación has_many :through ………………………………………………………………. 393
Asociación has_one :through …………………………………………………………………. 395
Asociación has_and_belongs_to_many …………………………………………………… 395
Métodos añadidos a los modelos para manipulación de asociaciones ……………. 398
Métodos automáticamente añadidos en asociaciones has_many, has_many
:through y has_and_belongs_to_many …………………………………………………. 399
Métodos añadidos en asociaciones has_one y belongs_to ………………………… 401
Operaciones con relaciones ………………………………………………………………………. 403
Crear asociaciones entre instancias de modelos ………………………………………. 403
Operaciones de selección en asociaciones ………………………………………………. 414
Crear métodos para manipular asociaciones has_many ……………………………. 418
CAPÍTULO 27. JOINS ……………………………………………………………………………….. 427
Uniones de tablas ………………………………………………………………………………………… 427
Uniones mediante el método joins …………………………………………………………….. 429
Uniones mediante el método left_outer_join ……………………………………………… 433
El uso de includes …………………………………………………………………………………….. 435
VISTAS Y CONTROLADORES …………………………………………………………………… 439
CAPÍTULO 28. LOS CONTROLADORES DE RAILS ……………………………………………. 441
Generalidades sobre los controladores …………………………………………………………… 441
Creación de controladores ……………………………………………………………………………. 442
Convenciones en los controladores ………………………………………………………………… 448
Conceptos importantes sobres los controladores …………………………………………….. 449
Las vistas y ActionView ………