Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdución a Ruby, Rails, y un poco de Sinatra

Introdución a Ruby, Rails, y un poco de Sinatra

Charla presentada en @laofico el día Lunes 15/12/2014.

Código fuente de la demo de Sinatra: https://gist.github.com/ceneon/c037ca756806724e66f1

Nicolás Cerrini

December 15, 2014
Tweet

More Decks by Nicolás Cerrini

Other Decks in Programming

Transcript

  1. Agenda • ¿Por qué Ruby? • Características y ejemplos de

    código • Sinatra => DEMO • Rails => DEMO • Comunidad
  2. ¿Por qué Ruby? • Moderno ~1993 • Open Source •

    Cómodo para el programador • Productividad • Comunidad
  3. Características • Multiplataforma • Open Source • Interpretado • Tipos

    dinámicos • Totalmente orientado a objetos • Infinidad de ‘Gemas’
  4. Sintaxis básica • Instrucciones terminan con “enter” • Los métodos/funciones

    se llaman con o sin paréntesis • # Comentarios • “hola" o ‘chau’ # Strings • [ a, b, c ] # Array/Vector • { nombre: "Juan", Edad: "21" } # Hash (desde 1.9) • { ... sentencias ... } # Bloque • :cosa # Símbolo
  5. Opciones p/ hacer lo mismo • if not nombre.empty? …


    if nombre.present? …
 unless nombre.empty?
 … if nombre != “” • [1,2,3,4].each{ |n| … }
 4.times{ |n| …}
 for i in 1..4 do …
 until n > 4
  6. • "Ruby".reverse
 # => "ybuR" • a = ""
 4.times

    { |i| a+= i.to_s }
 # => 0123 • 4.8.round
 # => 5
  7. • class Person
 attr_accessor :name
 end • ceneon = Person.new


    ceneon.name = "Nicolás" • puts ceneon.name 
 # => "Nicolás"
  8. • nums = [1, 2, 3, 4, 5] • names

    = [ "ruby", "python", “php”, “java” ]
 names[0] # => “ruby”
 names[-1] # => “java”
 names[1..2] # => [“python”, “php”] • meses = %w{ enero febrero marzo abril ... } • meses = { enero: 31, febrero: 28 … } • meses[:enero] 
 # => 31
  9. • class String
 def greet
 "Hola #{self}!”
 end
 end •

    ‘Club de programación’.greet
 # => "Hola Club de programación!” • puts "Hoy es la charla!" if Time.now.saturday?
  10. Recursos • http://tryruby.org • http://rubyinstaller.org => irb • IDE: No

    necesario • Editores: Sublime Text, TextMate […] • http://rubygems.org
  11. Sinatra • http://www.sinatrarb.com/ • require ‘sinatra'
 get '/hi' do
 “Hola

    Mundo!"
 end • ruby app.rb • http://localhost…/hi
  12. Rails • http://rubyonrails.org • MVC (Model - View - Controller)

    • "Convention Over Configuration" • "Don’t Repeat Yourself" (DRY) • ORM -> ActiveRecord : Database-agnostic • Database Migrations • Generadores • “Rails For Zombies” / “Railscasts” / “Agile web dev. with Rails”