Mi Día en el Ruby Fun Day (6) Rake y Bundler

Anterior Post
Siguiente Post


Una de las utilidades que viene con el Ruby Installer es el rake. Rake es un “make” para Ruby. Se basa en leer un Rakefile donde se definen las tareas. Notablemente, ese archivo es código Ruby. Rails nos dejó este archivo en el directorio de nuestra aplicación.


#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
MyRails::Application.load_tasks

El método load_tasks no está definido directamente en MyRails::Application (que está definida en config/application.rb) sino que se hereda de Rails::Application. Pero uno podría sobreescribir el método.


Si ejecutamos rake –T tenemos la lista de tareas que reconoce:



Vean que hay tareas para crear la base de datos, y para migrarla cuando tengamos nuevas tablas. Ya lo haremos cuando definamos algún modelo. Probemos ahora rake stats:



Nos muestra la cantidad de controladores, clases, líneas de código, métodos, etc.


Otro archivo (que apareción en Rails 3.x ver http://edgeguides.rubyonrails.org/3_0_release_notes.html) es el Gemfile:


source 'http://rubygems.org'
gem 'rails', '3.1.1'
# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.1.4'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with 

# gem '

'
# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

Es un archivo que define que gemas vamos a usar en nuestra aplicación. Este archivo es consumido por Bundler:


https://github.com/carlhuda/bundler
http://gembundler.com/


Si ejecutamos bundle:



Al final dice:



Así, con bundle show sqlite3 obtenemos:



Vean que deja un archivo Gemfile.lock con información de las gemas que termina usando.


Vayan notando la manera que trabaja el ecosistema de Ruby (con gemas) y Rails (adoptando algunas gemas para sus tareas). También noten que todo evoluciona: el Rails que estoy probando (versión 3.1.1) tiene bundler, cuando los anteriores (2.x) no lo tenían.


Próximos posts: armar un modelo sencillo, crear la base, probarlo, modificarlo, migrar la base, publicar.


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10747, 16397, 16509, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>