Your SlideShare is downloading. ×
0
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Workshop Camp México 09 - Introducción a Ruby
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Workshop Camp México 09 - Introducción a Ruby

586

Published on

Introducción a Ruby en el WorkshopCamp México 09

Introducción a Ruby en el WorkshopCamp México 09

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Está dañado el archivo, no se puede ver al descargarlo.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
586
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. Ruby Edgar J. Suárez e@dgar.org México on Rails http://MexicoOnRails.com.mx
    • 2. Historia
    • 3. Historia • Yukihiro “Matz” Matsumoto http://en.wikipedia.org/wiki/ Yukihiro_Matsumoto
    • 4. Historia • Yukihiro “Matz” Matsumoto • 1995 http://en.wikipedia.org/wiki/ Yukihiro_Matsumoto
    • 5. Historia • Yukihiro “Matz” Matsumoto • 1995 • 1.8, 1.9 http://en.wikipedia.org/wiki/ Yukihiro_Matsumoto
    • 6. Inspiraciones
    • 7. Inspiraciones • Perl
    • 8. Inspiraciones • Perl • Smalltalk
    • 9. Inspiraciones • Perl • Smalltalk • Eiffel
    • 10. Inspiraciones • Perl • Smalltalk • Eiffel • Ada
    • 11. Inspiraciones • Perl • Smalltalk • Eiffel • Ada • Lisp
    • 12. Implementaciones
    • 13. Implementaciones • YARV
    • 14. Implementaciones • YARV • JRuby
    • 15. Implementaciones • YARV • JRuby • Rubinius
    • 16. Implementaciones • YARV • JRuby • Rubinius • IronRuby
    • 17. Implementaciones
    • 18. Implementaciones • MacRuby
    • 19. Implementaciones • MacRuby • HotRuby
    • 20. Filosofía
    • 21. Filosofía “We need to focus on humans, on how humans care about doing programming or operating the aplication of the machine.
    • 22. Filosofía “We need to focus on humans, on how humans care about doing programming or operating the aplication of the machine. We are the masters.They are the slaves”
    • 23. Iteraciones
    • 24. Iteraciones [“uno”, “dos”, “tres”].each do |item|
    • 25. Iteraciones [“uno”, “dos”, “tres”].each do |item| puts “#{item}...”
    • 26. Iteraciones [“uno”, “dos”, “tres”].each do |item| puts “#{item}...” end
    • 27. Iteraciones # => “uno...” # => “dos...” # => “tres...”
    • 28. Todo tiene un valor
    • 29. Todo tiene un valor x = if 1 > 2 “no es cierto” else “correcto” end
    • 30. Todo tiene un valor x = if 1 > 2 “no es cierto” else “correcto” end x # => “correcto”
    • 31. Todo tiene un valor
    • 32. Todo tiene un valor x = “uno NO es mayor” unless 2 > 1
    • 33. Todo tiene un valor x = “uno NO es mayor” unless 2 > 1 x # => nil
    • 34. Hashes • Colección de pares llave-valor
    • 35. Hashes • Colección de pares llave-valor h = {:x => 3, :y => 3.4, :name => “coords”}
    • 36. Hashes • Colección de pares llave-valor h = {:x => 3, :y => 3.4, :name => “coords”} h.keys # => [:x, :name, :y]
    • 37. Hashes • Colección de pares llave-valor h = {:x => 3, :y => 3.4, :name => “coords”} h.keys # => [:x, :name, :y] h.values # => [3, "coords", 3.4]
    • 38. Símbolos
    • 39. Símbolos • Quién y no qué
    • 40. Símbolos • Quién y no qué “nombre”.object_id == “nombre”.object_id # => false
    • 41. Símbolos • Quién y no qué “nombre”.object_id == “nombre”.object_id # => false :nombre.object_id == :nombre.object_id # => true
    • 42. Rangos
    • 43. Rangos (1..2) # => 1..2
    • 44. Rangos (1..2) # => 1..2 (1..3).each { |i| puts i } # => 1 2 3
    • 45. Rangos (1..2) # => 1..2 (1..3).each { |i| puts i } # => 1 2 3 (1...3).each { |i| puts i } # => 1 2
    • 46. Rangos (1..2) # => 1..2 (1..3).each { |i| puts i } # => 1 2 3 (1...3).each { |i| puts i } # => 1 2
    • 47. Todo es un objeto
    • 48. Todo es un objeto persona = Persona.new persona.class # => Persona arreglo = Array.new arreglo.class # => Array
    • 49. Todo es un objeto persona = Persona.new persona.class # => Persona arreglo = Array.new arreglo.class # => Array arreglo = [] arreglo.class # => Array obj = Object.new obj.class # => Object
    • 50. Todo es un objeto
    • 51. Todo es un objeto 1.class # => Fixnum 3.2.class # => Float
    • 52. Todo es un objeto 1.class # => Fixnum 3.2.class # => Float nil.class # => NilClass true.class # => TrueClass false.class # => FalseClass Class.class # => Class
    • 53. La verdad • Todo lo que no sea nil o false, es verdadero.
    • 54. La verdad • Todo lo que no sea nil o false, es verdadero. “hola” ? true : false # => true 0 ? true : false # => true
    • 55. La verdad • Todo lo que no sea nil o false, es verdadero. “hola” ? true : false # => true 0 ? true : false # => true nil ? true : false # => false false ? true : false # => false
    • 56. Clases class Persona def nombre puts “Edgar” end end
    • 57. Constructor
    • 58. Constructor class Persona def initialize(nombre) end end
    • 59. Constructor class Persona def initialize(nombre) @nombre = nombre end end
    • 60. Variables
    • 61. Variables • mi_variable = “Hola mundo”
    • 62. Variables • mi_variable = “Hola mundo” • @edad = 76
    • 63. Variables • mi_variable = “Hola mundo” • @edad = 76 • @@contador = 3
    • 64. Métodos class Persona end
    • 65. Métodos class Persona def metodo_de_instancia end end
    • 66. Métodos class Persona def metodo_de_instancia end def self.metodo_de_clase end end
    • 67. Métodos descriptivos
    • 68. Métodos descriptivos def es_administrador? true end
    • 69. Métodos descriptivos def es_administrador? true end def destruir_mundo! Gente.destroy_all end
    • 70. Modificadores de acceso class Persona def metodo_publico end protected def metodo_protegido end def otro_metodo_protegido end private def metodo_privado end end
    • 71. Modificadores de acceso class Persona def metodo_publico end def metodo_protegido end def metodo_privado end protected :metodo_protegido private :metodo_privado end
    • 72. Clases abiertas
    • 73. Clases abiertas class Persona def pedro puts “Pedro” end end p = Persona.new p.pedro # => Pedro
    • 74. Clases abiertas class Persona def pedro puts “Pedro” end end p = Persona.new p.pedro # => Pedro class Persona def paco puts “Paco” end end p.paco # => Paco
    • 75. Bloques
    • 76. Bloques 3.times do |i| puts i end
    • 77. Bloques 3.times do |i| puts i end b = Proc.new { puts “Hey” }
    • 78. Bloques 3.times do |i| puts i end b = Proc.new { puts “Hey” } b = lambda { puts “Hey” }
    • 79. Bloques 3.times do |i| puts i end b = Proc.new { puts “Hey” } b = lambda { puts “Hey” } b.call # => “Hey”
    • 80. Bloques
    • 81. Bloques def saludo yield end
    • 82. Bloques def saludo yield end saludo { puts “Hola Ruby” } # => “Hola Ruby”
    • 83. Bloques def saludo yield end saludo { puts “Hola Ruby” } # => “Hola Ruby” saludo { 1 + 3 } # => 4
    • 84. Bloques
    • 85. Bloques def saludo world = “Mundo” yield(world) end
    • 86. Bloques def saludo world = “Mundo” yield(world) end saludo { |w| puts “Hola #{w}” } # => “Hola Mundo”
    • 87. Bloques
    • 88. Bloques def por_dos(x) yield(x * 2) end
    • 89. Bloques def por_dos(x) yield(x * 2) end por_dos(2) { |i| i + 1 } # => 5
    • 90. Operadores
    • 91. Operadores 3 + 1 # => 4
    • 92. Operadores 3 + 1 # => 4 3.+(1) # => 4
    • 93. Operadores 3 + 1 # => 4 3.+(1) # => 4 x = [1, 2, 3] x[0] # => 1 x.[](0) # => 1
    • 94. Operadores 3 + 1 # => 4 3.+(1) # => 4 x = [1, 2, 3] x[0] # => 1 x.[](0) # => 1 x[1] = ‘dos’ x.[]=(1, ‘dos’)
    • 95. Operadores
    • 96. Operadores class Fixnum def +(i) self - i end def ==(otro) self == otro.to_i end end
    • 97. Metaprogramación
    • 98. Metaprogramación eval <<-eof def meta puts “No existo” end eof
    • 99. Metaprogramación eval <<-eof def meta puts “No existo” end eof meta # => “No existo”
    • 100. Metaprogramación
    • 101. Metaprogramación 3.times do |i| eval <<-eof def metodo_#{i} #{i} end eof end
    • 102. Metaprogramación 3.times do |i| eval <<-eof def metodo_#{i} #{i} end eof end metodo_0 # => 0 metodo_1 # => 1 metodo_2 # => 2
    • 103. Ruby Edgar J. Suárez e@dgar.org México on Rails http://MexicoOnRails.com.mx

    ×