!SLIDE
!SLIDE
!SLIDE
!SLIDE
!SLIDE
##Agenda
- Características de Ruby
- Instalar Ruby
- Web Frameworks
- Ruby Ecosystem
- Recursos
- Eventos locales
!SLIDE
##Características de Ruby
!SLIDE
### *Windows*
### *Linux*
### *Mac OS*
!SLIDE
### MRI: C
### JRuby: Java
### IronRuby: .NET
### Rubinius: Ruby
!SLIDE
!SLIDE
@@@ ruby value = 42 puts value # => 42 value = "Hello, UP!" puts value # => Hello, UP! @@@
#####(Las variables son objetos y al definirse no se especifica el tipo)
!SLIDE
!SLIDE
@@@ ruby
>> "fnoCybuR".reverse
=> "RubyConf"
@@@
!SLIDE
!SLIDE
(No sólo el código fuente es abierto: https://github.com/ruby/ruby)
@@@ ruby
class String
def greet
"Hola #{self}!"
end
end
>> "UP".greet
=> "Hola UP!"
@@@
!SLIDE
!SLIDE code
@@@ ruby
10.times do
puts "<3"
end
puts "Hello, UP!" if Time.now.friday?
(1..5).each do |i|
puts "El cuadrado de #{i} es #{i * i}"
end
@@@
!SLIDE
matz
!SLIDE
!SLIDE
@@@ ruby
University.find_by_name("UP")
@@@
!SLIDE
@@@ ruby
user = "Foo Bar"
10.times do
puts user
end
# Donde *user* es una variable que fue creada
# fuera del bloque y el bloque puede acceder a ella
@@@
!SLIDE
@@@ ruby
reverse_string_order = -> x, y { y.to_s <=> x.to_s }
[1, 20, 3].sort &reverse_string_order
square = -> n { n * n }
[1, 2, 3, 4, 5].map &square
@@@
!SLIDE
!SLIDE
- Mac OS: Ya viene instalado
- Linux: Ya instalado, o "apt-get install ruby ..."
- Windows: rubyinstaller.org
!SLIDE
conf$ ruby -v
=> ruby 1.9.....
conf$ irb
@@@ ruby
"hola mundo".split
=> ["hola", "mundo"]
@@@
!SLIDE
!SLIDE
### Objetivo principal: Más productividad
!SLIDE
!SLIDE
## "Convention Over Configuration"
## "Don’t Repeat Yourself" (DRY)
## ORM -> ActiveRecord
## Database Migrations
## *Generadores*
!SLIDE
##### (Ejemplo)
!SLIDE
#Sinatra
## *Minimalista. Simple.*
@@@ ruby require 'sinatra'
get '/hi' do
"Hello World!"
end
@@@
!SLIDE
!SLIDE
## Cuba
## Padrino
### Otros más... (Sobre Rack)
!SLIDE
!SLIDE
!SLIDE
!SLIDE
## #Rakefile @@@ ruby task :default => [:test]
task :test do
ruby "test/unittest.rb"
end
@@@
@@@ bash
rake test
@@@
!SLIDE
##(Las cosas que no te da Ruby las podés obtener con RubyGems)
!SLIDE
## #bash @@@ bash gem install 'twitter' irb @@@
## #irb @@@ ruby
> require 'twitter'
=> true
> Twitter.user_timeline("_nesto").first.text
=> "cerrando detalles de la charla de #Ruby para la UP"
!SLIDE
## SCM (Como SVN, CVS pero mejor!)
### Proyectos en Git: Linux, Debian, Eclipse
!SLIDE
## Social Coding (Open Source Fun!)
### Proyectos en GitHub: jQuery, Symfony, DJAngo, Linux Kernel
!SLIDE
### Sass
### Capistrano
### Haml
### Capybara
### Cucumber
### Rails
!SLIDE
### Shoes
### FX Ruby
### Ruby QT
!SLIDE
### ruby-lang.org/es/ -> "Ruby en 20 minutos"
### Lista [email protected]
### ruby.com.ar - @rubyargentina
### Rails for Zombies -> http://railsforzombies.org
!SLIDE
!SLIDE
Se anuncian en www.ruby.com.ar
!SLIDE
Ciudad Cultural Konex
Parte del "Tour Ruby Sur"
!SLIDE
### Y muchos más.
!SLIDE
!SLIDE
Martin Aceto (@maceto)
Ernesto Tagwerker (@_nesto)
Leandro Lopez (@inkel)
Matias Owsianik (@matiasow)
Sebastian Rabuini (@sebasr)
Michel Martens (@soveran)
Lucas Florio (@lucasefe)
Chad DePue
Tom Henrik Aadland (@tomhenrik)
Nicolás Cerrini (@ceneon)
!SLIDE
!SLIDE