Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ruby PDF
Ruby PDF
Historia
Creado por Yukihiro “Matz” Matsumoto (1993,1995)
2006: Reconocimiento masivo grupos activos.
2007: versión 1.8.6 1.9.0
Rendimiento diferente diferentes maquinas virtuales:
- JRuby.
- Rubinius.
TIOBE posiciona a Ruby en la posición 13 del ranking
mundial.
RUBY
Viene de…
- Perl
- Python
…
Lo imitan…
- Groovy on Grails
Garbage
Collector
Dynamic Familiar
Typing Syntax
Features
of Ruby
Single
Inherita Open
nce Source
Object
Oriented
Breve descripción
Explicación de las principales características (II)
ADEMÁS…
manejo de excepciones
altamente portable
inyección de dependencias
class Numeric
def sumar(x)
self.+(x)
end
end
y = 5.sumar 6
# ahora ‘y’ vale 11
Breve descripción
Ventajas y puntos fuertes (I)
Flexibilidad
Productividad
Cambio de paradigma:
“Del humano al servicio de la máquina a la máquina al servicio del humano”
Breve descripción
Ventajas y puntos fuertes (II)
¿Cómo desarrollar?
Palabras clave (def, end, if, do…)
Módulos predefinidos:
módulo.método(parámetros) Math.sqrt(9).
Definición de variables y métodos: a = 3 ** 2
Delimitadores de instrucción (;).
#Comentario de una sola línea
=begin
Esto es un comentario de varias líneas
=end
Desarrollo
#!/usr/bin/env ruby
Class MegaAnfitrion
attr_accessor:nombres def decir_adios
if @nombres.nil?
def initialize(nombres = "Mundo") puts "..."
@nombres = nombres elsif @nombres.respond_to?("join")
end puts "Adiós #{@nombres.join(", ")}.
Vuelvan pronto."
def decir_hola else
if @nombres.nil? puts "Adiós #{@nombres}. Vuelva
puts "..." pronto."
elsif @nombres.respond_to?("each") end
end
@nombres.each do |nombre|
puts "Hola #{nombre}" end
end
else
puts "Hola #{@nombres}"
end
end
Desarrollo
if __FILE__ == $0
ma = MegaAnfitrion.new
ma.decir_hola Hola Mundo
ma.decir_adios Adiós Mundo. Vuelve pronto.
Principios
Modelo
o Clases que representan las bases de datos.
• Extender de ActiveRecord::Base
• No declarar propiedades
Ruby on Rails
Arquitectura MVC (II)
Vista
o Lógica de visualización
• Ruby Embebido: HTML+código Ruby
• HTML,XML
Controlador
o Control total de la aplicación.
o Proceso de respuesta a la interacción del usuario.
o Manejado por el ActionPack de Rails heredar
de ActionController::Base.
Ruby on Rails
Componentes de Rails
Action Controller
Active Resource
Action View
Railties
Active Record
Active Support
Action Mailer
Ruby on Rails
Soporte de Servidores Web
Para producción:
o Nginx, Mongrel, Apache, Lighttpd.
o Uso extendido de Passenger.
Ejemplo Aplicación
Se encuentra en el subdirectorio app $ rails direcciones
create
create app/apis
Directorios que la componen: create app/controllers
create app/helpers
apis - librerías
create app/models
controllers create app/views/layouts
helpers create config/environments
create components
models create db
views - archivos rhtml (como JSP o create doc
create lib
ASP). create log
views/layouts – diseños (cabeceras y create public/images
pies de página) create public/javascripts
create public/stylesheets
config create script
script create test/fixtures
create test/functional
public - raíz del directorio virtual create test/mocks/development
test - pruebas funcionales y de unidad create test/mocks/test
create test/unit
....
Ejemplo Aplicación
Ejemplo de código: controllers/principal_controller.rb
Resultado:
Hola a todos...
y a Pedro tambien
y a Pablo tambien
y a Juan tambien
http://www.hackerdude.com/courses/rails/PrimeraAplicacion.html
Uso de Ruby y on Rails
Se encuentra en un momento de gran éxito
Simulación: Redes:
NASA Langley Research Center, Motorola … Open Domain Server
En expansión.
¿Alguna duda?