PDF de programación - Introducción a Ruby on Rails

Imágen de pdf Introducción a Ruby on Rails

Introducción a Ruby on Railsgráfica de visualizaciones

Actualizado el 23 de Mayo del 2019 (Publicado el 31 de Enero del 2018)
558 visualizaciones desde el 31 de Enero del 2018
14,4 MB
67 paginas
Creado hace 13a (11/07/2006)
Introducción a Ruby on
Rails

Dr. Diego Lz. de Ipiña Gz. de Artaza

http://paginaspersonales.deusto.es/dipina

Cursos de Julio 2006, Universidad de Deusto,

11 y 12 Julio, 10:00 a 12:00

dipina@eside.deusto.es

Contenidos

1.

Introducción a la programación de scripting con Ruby. (1h y 10’)
 Instalación de Ruby
 Modo interactivo y de scripting
 Tipos de datos en Ruby
 Primitivos
 Estructuras de Datos Complejas: Arrays, Iteradores y Mapas
 Programación Orientada a Objetos en Ruby
 Gestión de errores y de módulos

2. Programación avanzada en Ruby. (40 ‘)

 Programación de redes con sockets
 Multithreading en Ruby
 Acceso a Bases de Datos desde Ruby

Descanso (10’)

1

Contenidos

3.

Introducción a Ruby on Rails (30’)
 Filosofía DRY-COC
Instalación de Rails



 Desarrollo de una aplicación CRUD en 6 pasos

4. Entendiendo el modelo MVC de Rails (40’)

 Concepto de Scaffolding
 Controladores en Rails: clase ApplicationController
 Modelo en Rails: clase ActiveRecord
 Vistas en Rails: ficheros .rhtml

5. Conceptos avanzados en Rails (40’)

 Caching, validación y AJAX



Integración con Apache

 Distribuyendo aplicaciones Rails

6. Casos de Éxito de Rails y Conclusión (10’).

Ruby

 Un lenguaje de scripting orientado a objetos

“puro”

 Desarrollado por Yukihiro "Matz" Matsumoto
 Ruby combina:

 Elegancia conceptual de Smalltalk
 La facilidad de aprendizaje y uso de Python
 El pragmatismo de Perl

 Liberado en 1993
 Más famoso que Python en Japón
 Website: http://www.ruby-lang.org/en/

2

Ventajas de Ruby

 Simple: fácil de aprender y mantener
 Poderoso

 “Language stays out of your way”

 Equipado con excelentes librerías
 Desarrollo rápido
 Código abierto
 “Divertido”

Desventajas de Ruby

 Rendimiento comparable a Perl o Python, pero lejos de C o C++

 Podemos extender Ruby con estos lenguajes

 No existen muchas frameworks desarrolladas en Ruby

 Ruby on Rails (http://www.rubyonrails.com/) es la excepción
 No existe una framework de GUI multi-plataforma ampliamente

aceptada

 RAA – Ruby Application Archive (http://raa.ruby-lang.org/)

 No tan grande como CPAN – Comprehensive Perl Archive Network

(http://www.cpan.org/)

 Peros:

 Documentación en progreso
 No es un lenguaje demasiado conocido en países occidentales
 Más pensado para Linux que Windows
 No tiene un buen soporte de Unicode todavía

3

Instalación Ruby

 Para Windows se puede bajar .exe de:

http://rubyinstaller.rubyforge.org/wiki/wiki.pl?Ru
byInstaller
 Utilizaremos la versión 1.8.2-14 de:

 http://rubyforge.org/frs/download.php/2407/ruby182-14.exe

 Instalación en Linux:

 Podemos bajarnos las fuentes y encontrar

instrucciones sobre cómo instalarlo en:
 http://www.ruby-lang.org/en/20020102.html

Características de Ruby

 Diseñado siguiendo la filosofía POLS (Principle of Least Surprise)



Las cosas funcionan del modo que esperas, “sin sorpresas”

 Dynamically typed/late binding, las decisiones en tiempo de ejecución ¡Peligro!

Integración con C
Convención de nombres: @instanceVar, @@classVar, $global,
CONSTANT, everythingElse
Portable, multiplataforma, open source
Seguridad
Internacionalización en progreso (1.9)

 Muchas librerías

4

Todo es un objeto o un método

 Herencia simple con módulos mixin

Bloques y cierres

 Rangos
 Metaclases

Introspección

 Manejo de excepciones

















Nuestros primeros pasos en
Ruby

 Modo interactivo

 Para trabajar en modo interactivo usamos irb

(Interactive Ruby Shell) escribiendo en consola:
irb --simple-prompt

 Escribir operaciones aritméticas para que IRB se

comporte como una calculadora
 Soporta los operadores típicos +, -, *, /, % y **
 2**3 = 8

 Para salir de Ruby escribimos exit

Tipos de Datos Primitivos

 Numéricos:

 Integers, una división entre enteros

devolverá un entero

 Floats, es un número con decimales
 Ruby puede utilizar números muy largos

 192,349,562,563,447 se puede expresar como

192_349_562_563_447

 Números aún más largos se pueden expresar

como:

 1.7e13 significa 1.7 x 1013

5

Tipos de Datos Primitivos

 Strings:

 Grupos de caracteres
 Algunos ejemplos:

 "Hello."
 "Ruby rocks."
 "5 is my favorite number... what's yours?"

'Two plus two is #{2+2}' # ¡¡¡no interpola!!!



 Operaciones:

 "hi " * 3  "hi hi hi "
 "hi".capitalize  Hi
 "hi".reverse  ih
 "hi".upcase  HI
 Probar: downcase y swapcase
 chomp devuelve un string quitando los saltos de línea al final de la

palabra ("hola\n".chomp  "hola")

 Booleanos: true y false.
 nil es el valor nulo en Ruby
 Observar que los nombres de clases empiezan por mayúscula

En Ruby Todo son Objetos

Tipo de datos

Clase Ruby

integer

decimals

text

Integer

Float

String

Clase Ruby

Algunos Métodos

Integer

Float

String

+ - / * % **

+ - / * % **

capitalize, reverse,length, upcase

Método

String#to_i

String#to_f

Float#to_i

Float#to_s

Integer#to_f

Integer#to_s

De

String

String

Float

Float

Integer

Integer

Conversores

A

Integer

Float

Integer

String

Float

String

6

Fechas en Ruby

# ejemploFechas.rb
require 'date'
d = Date.today
puts d << 2
t = Time.new
t.year
t.strftime("%d-%b-%y")

Constructores literales para
clases built-in

 String  "new string" o 'new

string'

 Symbol  :symbol o : "symbol with

spaces"

 Array  [1,2,3]
 Hash  {"New York" => "NY",

"Oregon" => "OR"}

 Range  0…10 o 0..9
 Regexp  /([a-z]+)/

7

Operaciones sobre strings

 capitalize, upcase, downcase, swapcase, strip,
lstrip, rstrip, chop, chomp, reverse, replace,
"abc"[2], "abc"[2].chr, "abc"[2,1], equal?

 Ejemplo:

>> str="Hello"
=> "Hello"
>> str.reverse
=> "olleH"
>> str
=> "Hello"
>> str.reverse! # ¡¡¡método bang!!! Cambian campo
=> "olleH"
>> str
=> "olleH"

Símbolos

 Símbolos y strings representan unidades de

texto
 Un objeto símbolo por cada texto

 :a.equal?(:a) # true
 "a".equal?("a") # false
 Los símbolos son inmutables

 Ejemplo:

 :a
 “a".to_sym
 :a.to_s

8

Variables y Constantes

 Las variables deben ser declaradas en minúsculas
 Las constantes empiezan por una letra mayúscula y

son seguidas por n caracteres en minúscula

 Si intentas cambiar el valor de una constante Ruby

dará un warning pero no lo impedirá (-:

Nuestro Primer Programa

 Modo script:

 Crea el fichero holamundo.rb
 Inserta la línea puts "Kaixo mundua"

 print hace lo mismo sin imprimir una nueva línea
 printf "Number: %5.2f, String: %s", 1.23, "hello"

 Ejecuta el programa como: ruby holamundo.rb

9

Nuestro Primer Programa

 Para leer datos en Ruby utilizamos gets:

puts "¿Cómo te llamas?"
name = gets
puts "Hola " + name + ". ¿Qué tal

estás?"

 Unicode en Ruby:

 Funciona en irb
 Pero no desde el intérprete
 I18n ¡verde!

Nuestro Primer Programa

 Sólo podemos añadir un string a otro

 Lo siguiente daría un error:

puts "The answer is " + num2 # --> Error

 Para corregirlo haríamos:

puts "The answer is " + num2.to_S

 Una característica interesante de Ruby es que

podemos concatenar las llamadas a funciones y no
es necesario usar paréntesis:
 name = gets.chomp

 En Linux podemos hacer que un programa sea

ejecutable:
 Cambiando los derechos del fichero chmod +x prog.rb'
 Insertando como primera lína #!/usr/bin/env ruby
 Creamos un fichero con extensión .rb
 Lo ejecutamos desde consola con ./nombre-fichero.rb

10

Estructuras de control: if

Igual a la de otros lenguajes de programación con el nemónico if
Los operadores lógicos son and, &&, or, ||, not y !
Python incorpora elif y Ruby elsif:
if age >= 60

puts "Senior fare"

elsif age >= 14

puts "Adult fare"

elsif age > 2

puts "Child fare"

else

puts "Free"

end
La forma negativa del if es unless:
unless aSong.duration > 180 then

cost = .25

else

cost = .35

end
También hay soporte para la expresión condicional en C:
cost = aSong.duration > 180 ? .35 : .25











Estructuras de control: case

 También existe la sentencia case
 En Ruby todo son expresiones, por lo tanto un
case o un if devuelven el valor de la última
expresión ejecutada
kind = case year

when 1850..1889 then "Blues"
when 1890..1909 then "Ragtime"
when 1910..1929 then "New Orleans Jazz"
when 1930..1939 then "Swing"
when 1940..1950 then "Bebop"
else "Jazz"

end

11

Estructuras de control: while

 Sigue el formato:

while cond

...

end

 Calcular potencias de 2 menor que 10000 (potencias2.rb):

#!/usr/bin/ruby
# Calcular la potencia de 2 menor que 10000
number=1
while number < 10_000

number *= 2

end
number /=2
puts number.to_s + " es la potencia de 2 mayor menor que

10.000“



La forma negativa del while es until:
until playList.duration > 60

playList.add(songList.pop)

end

Estructuras de control: loops

 Sentencia loop:

n=1
loop do

n = n+1
next
next unless n == 10
nextnext
break
break
break
break

end

 El método times hace que iteremos N veces:

4.times do

puts "hola"

end

 Contando:

count = 0
5.times do

count +=1
puts “count = “ + count.to_s

end

12

Arrays



La clase Array se utiliza para representar colecciones de objetos:

 Ejemplo:

$ irb --simple-prompt
>> nums = ["cero", "uno", "dos", "tres", "cuatro"]
=> ["cero", "uno", "dos", "tres", "cuatro"]
>> nums.class
=> Array
>> exit

 Observar que class devuelve el tipo de un objeto
 Podemos acceder a un elemento mediante nums[0]
 Podemos añadir nuevos elementos con: nums[5] = "cinco" o

nums.unshift(5) (al principio) o nums.push(5) (al final)

 Eliminar elementos con shift() y pop()
 Se pueden concatenar arrays con [1,2,3].concat([4,5,6])
 En un Array puedes colocar cualquier tipo de dato

Operaciones sobre Arrays

 Podemos ordenar elementos con el método

Array#sort

 Invertir su orden con Array#reverse
 Calcular su longitud con Array#length
 Reducir dimensiones con Array#flatten
 Eliminar duplicados con Array#uniq
 Se pueden realizar operaciones sobre arrays

con los operadores ari
  • Links de descarga
http://lwp-l.com/pdf8544

Comentarios de: Introducción a Ruby on Rails (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad