Ruby on Rails: hash binario sin formato

Usando la función hash_hmac de PHP, tenemos:

<?php
    $string = hash_hmac('sha256', 'message', 'secret', true);
    echo $string;

En este caso el ultimo valor true, establece que los datos de salida serán binarios y sin formato, teniendo la salida:

�t|P*�����!�Ɓ6����z�p�����U�

Ahora el equivalente en RoR seria:

require 'digest'

string = OpenSSL::HMAC.digest('sha256', 'secret', 'message')
puts string

Ruby: operador ||=

Este es un operador no tan conocido pero muy útil. Un par de ejemplos para aclarar como funciona:

 > a ||= 2
 => 2
 > a ||= 4
 => 2
 > b = 5
 => 5
 > a ||= b
 => 2
 > a ||= c
 => 2
 > c ||= b
 => 5

Tenemos esto:

variable ||= valor
Es decir se asigna el valor a la variable siempre y cuando el valor inicial de la variable sea nulo o vacio.

Ruby on Rails: preparando el campo de trabajo

Debido al trabajo es que ahora tengo que aprender empezar a usar Ruby on Rails (RoR, un framework MVC) y por tanto Ruby, después de leer un par de artículos voy a intentar ser lo más claro en la instalación:

1. Primero instalar los siguientes paquetes: ruby, rubygems y rails

sudo apt-get install ruby rubygems rails

ruby: es el paquete contenedor de ruby y se enlaza al paquete de la versión de ruby, en este momento 1.8.7

rubygems: es el manejador de paquetes de ruby (algo como el apt-get).

rails: el paquete que contiene al framwork RoR que se usa para generar la estructura básica de los proyectos.

2. instalar las gemas (que pueden ser programas o librerías):

sudo gem install rails

También se pueden actualizar las gemas:

sudo gem update

3. Crear la estructura básica de la aplicación, en consola (suponiendo que se encuentra en el home):

rails primerejemplo

Notaremos que se habrá creado una carpeta denominada primerejemplo con toda la estructura para comenzar a trabajar.

4. Iniciar el servicio, es necesario invocar al archivo server que se encuentra dentro del directorio script:

ruby ~/primerejemplo/script/server

Si todo salio bien tendremos este mensaje en consola:

ruby ~/primerjemplo/script/server
=> Booting WEBrick
=> Rails 2.3.5 application starting on http://127.0.0.1:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-06-14 17:22:04] INFO  WEBrick 1.3.1
[2011-06-14 17:22:04] INFO  ruby 1.8.7 (2010-08-16) [i686-linux]
[2011-06-14 17:22:04] INFO  WEBrick::HTTPServer#start: pid=23197 port=3000

Ahora en el navegador en la dirección: http://localhost:3000 tendremos: