martes, 14 de octubre de 2008

Breve intro a Ruby y RoR

Como parte de nuestra exposición presentaremos una breve introducción a Ruby y RoR. A continuación un extarcto de dicha sección.

Ruby:
- Creado por Yukihiro "Matz" Matsumoto, liberado en 1995.
- Es gratis.
- Lenguaje orientado a objetos, interpretado, reflexivo.
- Gramática compleja pero muy expresiva.
- Las variables son de tipo dinámico.
- Posee una biblioteca “core” y un poderoso API.
- Case sensitive.

Se puede bajar Ruby de http://www.ruby-lang.org/es/
La instalación contiene ejecutables (interprete y otras herramientas), bibliotecas, Gems (el administrador de actualizaciones y nuevas herramientas), los fuentes de Ruby y ejemplos.
Con Ruby instalado creamos un ejemplo creando una clase en el archivo Test.rb

#Una clase
class Persona
#Constructor
def initialize (nombre, apellido)
#Con @ variables de instancia
@nombre = nombre
@apellido = apellido
end
#Metodo
def saludar
puts("Hola, yo soy #{@nombre} #{@apellido}")
end

end

#Herencia con '<'
class Juan < Persona
#Constantes en MAYUSCULA
SEXO = "Masculino"

def initialize (edad)
super("Juan", "Perez")
@edad = edad
end
#métodos de acceso
attr_reader :SEXO #get
attr_accessor :edad #get y set

end

juan = Juan.new(20)
juan.saludar()
puts("Tengo #{juan.edad} años y mi sexo es #{juan.SEXO}")


Se ejecuta el comando >Ruby Test.rb
Hola, yo soy Juan Perez
Tengo 20 años y mi sexo es Masculino


Un buen tutorial se encuentra en la página http://rubytutorial.wikidot.com/

Ruby on Rails (ROR):
- Framework para desarrollar aplicaciones web con base de datos en lenguaje Ruby (http://www.rubyonrails.org.es/).
- Es Gratis.
- Estructura las aplicaciones bajo el patrón Model-View-Controller.
- Herramientas como InstantRails ya traen un ambiente ROR integrado con un servidor web y un motor de base de datos
- La estructura runtime de aplicaciones de RoR es:

README #Información de la instalación y uso
Rakefile #Script para conrtruir
app/ #Archivos de model, view, and controller van acá.
app/controllers
app/helpers
app/models
app/views/layouts
components/ #Componentes reutilizables
config/ #Configuration and database connection parameters.
db/ #Schema and migration information.
doc/ #Documentacion autogenerada
lib/ #Bibliotecas compartidas
log/ #Log de la aplicación
public/ #La aplicación corre desde acá. Acceso público.
script/ #Scripts utilitarios.
test/ #Diferentes test
tmp/ #Archivos temporales de runtime.
vendor/ #Código importado.

No hay comentarios: