Este documento presenta una introducción a Ruby, incluyendo sus características principales como lenguaje orientado a objetos, dinámico e interpretado. Explica conceptos como la falta de necesidad de usar paréntesis, la orientación a objetos, estructuras condicionales como if/unless, asignaciones, clases y métodos. También proporciona ejemplos prácticos de uso de arrays y cálculos con ellos. El objetivo es mostrar la expresividad de Ruby y cómo escribir código de manera idiomática.
24. Return o no return
●
Cualquier expresión retorna un valor
●
Rara vez usas return*
* Es una opinión personal
25. Return o no return
class UserKarma
def reset
# Do stuff
total = 0
end
end
26. Estructuras
condicionales
@user = nil
if params[:id]
@user = User.find(params[:id])
else
@user = User.new
end
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
27. Estructuras
condicionales
@user = if params[:id]
User.find(params[:id])
else
User.new
end
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
33. Asignaciones
@post = Post.find(params[:id])
if @post
@post.destroy
end
if @post = Post.find(params[:id])
@post.destroy
end
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
34. Asignaciones
En paralelo:
first, last, street = "Pi", "Filemon", "13 rue del percebe"
# => ["Pi", "Filemon", "13 rue del percebe"]
first, last = last, first
# => ["Filemon", "Pi"]
44. Otros métodos
[1, 2, 3, 4].find {|n| n % 3 == 0}
# => 3
[1, 2, 3, 4].find_all {|n| n % 2 == 0}
# => [2, 4]
45. Ejemplos prácticos
De “Ruby mola y por qué” de Sergio Gil - http://www.slideshare.net/sergio.gil/ruby-mola-y-por-qu
46. Ejemplo 1
●
Calcular el precio con IVA de la lista de precios:
precios = [10, 12, 20, 50]
pvp
= []
precios.each do |precio|
pvp << precio * 0.21
end
pvp
# => [2.1, 2.52, 4.2, 10.5]
47. Ejemplo 1
●
Calcular el precio con IVA de la lista de
precios:
precios = [10, 12, 20, 50]
pvp = precios.map {|precio| precio * 0.21 }
48. Ejemplo 2
●
Calcula la suma total de una lista de precios:
precios = [2.1, 2.52, 4.2, 10.5]
total
= 0
precios.each do |precio|
total += precio
end
total
# => 19.32
49. Ejemplo 2
●
Calcula la suma total de una lista de
precios:
precios = [2.1, 2.52, 4.2, 10.5]
total
= precios.inject{|sum, precio| sum + precio}
52. Clases y métodos
class Car
def initialize(brand=nil, model=nil)
@brand = brand
@model = model
end
def brand
@brand
end
def model
@model
end
def color
@color
end
def color=(new_color)
@color = new_color
end
def brand=(new_brand)
@brand = new_brand
end
def model=(new_model)
@model= new_model
end
end
53. Clases y métodos
class Car
def initialize(brand=nil, model=nil)
@brand = brand
@model = model
end
...
end