Conexión Ruby con PostgreSQL

Este el el código para realizar una conexión en ruby con el motor de base de datos PostgreSQL.

#!/usr/bin/env ruby
require 'postgres'
conn = PGconn.connect("localhost", 5432, '', '', "test", "myid", "mypass")
res  = conn.exec('select tablename, tableowner from pg_tables')
res.each do |row|
	row.each do |column|
		print column
		(20-column.length).times{print " "}
	end
	puts
end
0 Comments

Altas, bajas y cambios (ABC) en Ruby On Rails (RoR)

Para realizar este tutorial de ABC, debemos seguir los tutoriales pasados de ruby y Ruby on Rails para tener instalado lo necesario.

Vamos a realizar un ejercicio de altas, bajas y cambios utilizando RoR, primero vamos a crear nuestro proyecto con la siguiente instrucción e ingresamos a él:

$ rails proyecto_rails
create
      create  app/controllers
      create  app/helpers
      create  app/models
      create  app/views/layouts
      create  config/environments
      create  config/initializers
      create  db
      create  doc
      create  lib
      create  lib/tasks
      create  log
...
$ cd proyecto_rails

Esta nueva versión de rails, trabaja por default con SQLite3, por lo que no hay que meternos al archivo de configuración de base de datos, si queremos cambiar de gestor de base de datos podemos irnos al archivo config/database.yml:

development:
  adapter: sqlite3
  database: db/development.sqlite3
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  timeout: 5000

Rils trabaja con 3 bases de datos, las cuales son de desarrollo, pruebas y producción, como ven , viene configurado para trabajar con sqlite3, si queremos trabajar por ejemplo con mysql, modificaremos los siguiente:

development:
  adapter: mysql
  database: dbname
  host: localhost
  username: user
  password: pass

Si ustedes gustan pueden comentar el apartado de test y production y solo trabajar con development.

Después de tener configurado nuestra base de datos, en este caso como les comenté trabajaremos con sqlite3 como viene por default, ahora utilizaremos un método llamado scaffold, es un método para contruir aplicaciones basadas en bases de datos, esta técnica está soportada por algunos frameworks del tipo MVC en el cuál el programador escribe una especificación que describe cómo debe ser usada la base de datos.

$ ruby script/generate scaffold pelicula titulo:string descripcion:text email:string fecha:date
 exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/peliculas
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      exists  public/stylesheets/
      create  app/views/peliculas/index.html.erb
      create  app/views/peliculas/show.html.erb
      create  app/views/peliculas/new.html.erb
      create  app/views/peliculas/edit.html.erb
      create  app/views/layouts/peliculas.html.erb
      create  public/stylesheets/scaffold.css
...

Explico, pelicula es el nombre de la tabla, titulo, descripcion, email y fecha son los campos de la tabla con sus respectivos tipo de dato. Ahora utilizaremos un rake para migrar la bd:

$ rake db:migrate
== 20081117205817 CreatePeliculas: migrating ==================================
-- create_table(:peliculas)
   -> 0.0092s
== 20081117205817 CreatePeliculas: migrated (0.0096s) =========================

Y por último corremos el servidor WebRick:

$ ruby script/server
=> Booting WEBrick...
=> Rails 2.1.0 application started on http://127.0.0.1:3000
...

Abrimos un navegador y tecleamos localhost:3000/peliculas.

ror1 ror2

Como podemos observar, en tan solo unos minutos tenemos un ABC rápido y funcional, podemos jugar un poco con los css para darle diseño, se encuentra en el directorio public/stylesheets/scaffold.css y cambiar el aspecto a nuestra página.

Pantallazo-Peliculas: index - Iceweasel

1 Comment

Ruby On Rails (RoR)

Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye a través de RubyGems, que es el formato oficial de paquete y canal de distribución de librerías y aplicaciones Ruby.

Una vez realizado el Tutorial Ruby anterior, procedemos a instalar RoR:
Podemos instalarlo desde apt en debian ó desde el mismo Rubygems

# aptitude install rails

ó

# gem install rails

Ahora crearemos nuestro primer proyecto:

$ rails mi_proyecto
$ cd mi_proyecto

Esto creará una seria de archivos y directorios para nuestro proyecto. La estructura sería la siguiente:

  • app:Acá se almacenará los componentes de nuestra aplicación: vistas y ‘helpers’, controladores y modelos.
  • config:Contiene la configuración de nuestra aplicación: configuración de la base de datos (database.yml) , estructura del entorno de Rails (environment.rb) y el enrutador de peticiones web (routes.rb).
  • public:Esto es parecido al directorio public de un servidor web. Contiene los archivos JavaScript, images, hojas de estilo y HTML.
  • script:Este directorio contiene scripts que inician y administran las diversas herramientas que puedes usar en Rails. Ejemplo: estan los scripts que generan código (generate) e inician en servidor web (server).

Servidor Web:
RoR cuenta con su propio servidor para desarrollo, el cuál nos permite visualizar nuestro proyecto, para correrlo debemos de realizar lo siguiente:

$ ruby script/server

Ahora abrimos un navegador y tecleamos http://localhost:3000 Y nos aparecerá la pantalla principal de RoR:


1 Comment

Comenzando con Ruby

logo
Pues he decidido echarme un clavado en Ruby, mi primer post de ruby será sobre la instalación y módulo para que apache lo pueda interpretar.

Primeramente instalamos los paquetes necesarios:

# aptitude install ruby libapache2-mod-ruby eruby rubygems

Nota: Por alguna extraña razón, el paquete libapache2-mod-ruby no se encuentra para Debian/lenny, no lo tengo en mis repositorios, y buscando por la red, me encontre que solamente se encuentra para etch y sid. La instalación la realice instalando cada dependecia y despues el libapache2-mod-ruby con dpkg. Aquí la página del paquete con sus dependencias.

Una vez instalado los paquetes, hay que configurar apache, para ello editamos el archivo apache.conf:

# gedit /etc/apache2/apache2.conf

Y agregamos en cualquier parte lo siguiente:

AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /cgi-bin/eruby

Para que apache interprete el comanda Action es necesario hace un enlace:

# cd /etc/apache2/mods-enabled
# ln -s /etc/apache2/mods-available/actions.load actions.load

Ahora linkeamos el interprete eruby:

# cd /usr/lib/cgi-bin
# ln -s /usr/bin/eruby eruby

Y reseteamos apache:

# /etc/init.d/apache2 force-reload
# /etc/init.d/apache2 restart

Ahora si, ya podemos crear archivos .rb ó .rhtml, nuestra primera prueba sería crear un archivo llamado holamundo.rhtml y le agregamos lo siguiente:

*html*
<% print "hola mundo!" %>
*html*

*Agregar < >

Podemos crear también un script en ruby, este lo llamaremos holamundo.rb :

#!/usr/bin/env ruby
print "Hola mundo! \n"

Este lo corremos desde la consola con:

$ ruby holamundo.rb

En el siguiente post veremos algo de Ruby On Rails.

2 Comments