miércoles, 20 de abril de 2011

Como instalar Ruby 1.9.2 usando rvm en Ubuntu 10.10

Este post será bastante consiso, las instrucciones son las siguientes: 1. Necesitas tener instaladas ciertas librerias:
sudo apt-get install build-essential git-core curl
2. Descargas y ejecutas la instalación de RVM
bash < <(curl -s https://rvm.beginrescueend.com/releases/rvm-install-head)
3. Agregas en ru archivo .bashrc la configuración de RVM
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc
4. En un nuevo terminal (se necesita para que cargar la configuración de RVM) ejecutas lo siguiente:
rvm notes
5. Instalas los paquetes que te recomienda RVM
sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev
6. Instalas la versión de ruby que necesitas (en mi caso la 1.9.2)
rvm install 1.9.2
7. Para usar una versión en particular ejecuta lo siguiente:
rvm use 1.9.2
8. Para hacerla la versión por defecto ejecuta lo siguiente:
rvm --default use 1.9.2
Eso es todo

viernes, 1 de abril de 2011

Creando un Rails 3 Engine - Parte 2

Creando el proyecto

La forma más facil de comenzar con la creación de la gema es utilizando Jeweler. En el caso de no tener la gema instalada ejecutamos lo siguiente:
gem install jeweler
Luego de lo cual procedemos a crear el proyecto con el siguiente comando:
jeweler nombre_de_nuestra_gema
Nota: Jeweler está muy atado a git por lo que te pedirá algunos datos de git para crear el proyecto.

Como apenas estoy comenzando en esto de la creación de "Engines" algunas cosas que pone Jeweler en el proyecto por defecto no me sirven o me "estorban". Lo mínimo que se necesita para el proyecto es la siguiente estructura:
proyecto
  lib
    proyecto.rb
  Rakefile
proyecto se refiere al nombre de tu gema.

El archivo Rakefile es utilizado por jeweler para generar la gema, tiene una estructura muy parecida a la de .gemspec Un ejemplo:
begin
  require "jeweler"
  Jeweler::Tasks.new do |gem|
    gem.name = "project name"
    gem.summary = "Is just a test"

    gem.files = Dir["{lib}/**/*", "{app}/**/*", "{config}/**/*"]

  end
rescue
  puts "Jeweler or one of its dependencies is not installed."
end
Para empaquetar e instalar nuestra gema utilizamos el siguiente comando:
rake install
Bueno eso es todo por el momento. Esperen la siguiente entrega

Creando un Rails 3 Engine - Parte 1

En estos momentos ando dedicado a crear un "Rails 3 Engine". Y qué es esa vaina? pues es crear una aplicación que se pueda usar dentro de otra aplicación, sería como crear un .dll para una aplicación windows o un .jar para una aplicación java. En este caso es crear una gema ya que estamos trabajando en Ruby. El proceso es relativamente fácil, en esta serie de posts pues iré dando el paso a paso de como hacerlo.

Requerimientos
  • Rails 3. - Se puede hacer en rails 2 pero tengo entendido que Rails 3 tiene algunas facilidades en la creación y utilizacion de "Engines".
  • Jeweler. - Es una gema que facilita la creación de gemas.
  • Haml. - El futuro en lenguajes declarativos para la creación de interfaces???
  • Git. - Sistema para control de versiones (Jeweler está muy atado a git)
Bueno eso es todo por ahora, en futuras entregas iré poniendo el paso a paso como tal.