Ruby
-
Upload
jano-gonzalez -
Category
Technology
-
view
609 -
download
1
description
Transcript of Ruby
![Page 2: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/2.jpg)
@janogonzalez
![Page 3: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/3.jpg)
jano gonzález
![Page 4: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/4.jpg)
parte de
@7talks
![Page 5: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/5.jpg)
desarrolla apps en
continuum
![Page 6: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/6.jpg)
escribe el blog
gemaroja.com
![Page 7: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/7.jpg)
organiza el meetup
@dynlangchile
![Page 8: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/8.jpg)
QUÉ ES RUBY
![Page 9: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/9.jpg)
lenguaje
dinámico
![Page 10: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/10.jpg)
orientado a
objetos
![Page 11: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/11.jpg)
poderosa
metaprogramación
![Page 12: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/12.jpg)
sintaxis
concisa
![Page 13: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/13.jpg)
es como
perl+smalltalk
![Page 14: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/14.jpg)
historia
![Page 15: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/15.jpg)
まつもとゆきひろ
![Page 16: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/16.jpg)
Yukihiro Matsumoto
![Page 17: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/17.jpg)
Matz
![Page 18: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/18.jpg)
24/02/1993
idea
![Page 19: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/19.jpg)
optimizar la
felicidad del desarrollador
![Page 20: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/20.jpg)
21/12/1995
publicación
![Page 21: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/21.jpg)
25/12/1996
versión 1.0
![Page 22: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/22.jpg)
15/12/2001
pickaxe
![Page 23: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/23.jpg)
david heinemeier hansson
![Page 24: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/24.jpg)
DHH
![Page 25: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/25.jpg)
2005
RAILS 1.0
![Page 26: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/26.jpg)
ruby se hizo realmente
popular
![Page 27: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/27.jpg)
alguna implementaciones:
mri, jruby, rubinius
![Page 28: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/28.jpg)
el lenguaje
![Page 29: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/29.jpg)
todo es un
objeto
![Page 30: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/30.jpg)
objetos,
objetos en todos lados
![Page 31: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/31.jpg)
objetos
# El clásicaico string“Hola Mundo”.upcase
# No hay "tipos primitivos"!5.zero?
# Hasta el nulo es un objetonil.nil?
![Page 32: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/32.jpg)
objetos
# Arreglos[1, 2, 3, 4, 5]
# Hashes{:jano => "Alejandro", :cote => "José"}
# Rangos(1..10)
![Page 33: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/33.jpg)
objetos
# Expresiones regulares/^[a-z]+$/
# Lambdaslambda { |n| n * 2 }
![Page 34: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/34.jpg)
particularidades de los
métodos
![Page 35: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/35.jpg)
métodos
# En realidad + es un método, noun operador1.+(9)
# Con un poco de azucar sintáctico1 + 9
# En otros objetos"Hola " + "Mundo"
# Con una gran cantidad de objetos![1, 2, 3] + [4, 5]
![Page 36: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/36.jpg)
métodos
• Paréntesis opcionales
• ?
• !
![Page 37: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/37.jpg)
usando
arrays
![Page 38: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/38.jpg)
usando
hashes
![Page 39: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/39.jpg)
otros
objetos
![Page 40: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/40.jpg)
sentencias de
control
![Page 41: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/41.jpg)
creando
claseS
![Page 42: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/42.jpg)
CLASES
class Persona attr_reader :nombre, :apellido
def initialize(nombre, apellido) @nombre = nombre @apellido = apellido endend
jano = Persona.new("Jano", "González")jano.nombre
![Page 43: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/43.jpg)
clases
# Monkey patchingclass Range def even self.select { |n| n % 2 == 0 } endend
(1..100).even
![Page 44: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/44.jpg)
usando
bloques
![Page 45: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/45.jpg)
bloques
# Un método puede recibir un bloque de código5.times do |n| puts nend
# Para casos cortos como el anterior...5.times { |n| puts n }
![Page 46: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/46.jpg)
bloques
# El clásico map(1..100).map { |n| n * 2 }
# El clásico select(1..100).select { |n| n % 3 == 0 }
# El clásico reduce(1..100).reduce { |sum, n| sum + n }
# Incluso más corto(1..100).reduce(:+)
![Page 47: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/47.jpg)
gemas
![Page 48: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/48.jpg)
miles de
componentes
![Page 49: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/49.jpg)
gemas
$ gem list
$ gem install sinatra
![Page 50: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/50.jpg)
![Page 51: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/51.jpg)
para aprender
![Page 52: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/52.jpg)
ruby koans
rubykoans.com
![Page 53: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/53.jpg)
ruby monk
rubymonk.com
![Page 54: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/54.jpg)
![Page 55: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/55.jpg)
![Page 56: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/56.jpg)
![Page 57: Ruby](https://reader033.fdocuments.co/reader033/viewer/2022060117/558585b1d8b42ab2148b4e14/html5/thumbnails/57.jpg)
visita
gemaroja.com