"Debugando" Aplicações Rails com Console do Firebug
Ae galera, tudo bom? Estou aqui hoje para compartilhar algo que aprendi essa semana, é uma dica simples mas que pode ajudar na hora de debugar aplicações Ruby on Rails 3.
Todo desenvolvedor provavelmente conhece o Firebug né? Se você não conhece está perdendo tempo, não deixe de testar. Ele é um complemento (extensão) para os principais navegadores (Firefox e Chrome) que poupa um tempo bacana no desenvolvimento de interfaces.
Ele tem uma aba chamada console onde podemos exibir informações via Javascript, mas a partir de agora também podemos exibir informações diretamente do servidor.
Instalando a Biblioteca
Precisamos executar alguns passos rápidos para termos acesso a essa funcionalidade, sem muita delongas vamos começar
1- Crie um arquivo chamadofirebug_logger.rb
na pasta lib
dentro de sua aplicação e cole o código desse gist (você pode criar um sub diretório dentro da lib
se precisar).
2- Carregue a classe acima no arquivo config/boot.rb
através da linha:
require File.expand_path('lib/firebug_logger')
config/environments/development.rb
(no caso, desenvolvimento) adicione:
config.middleware.use ::Rack::FirebugLogger
app/controllers/application_controller.rb
para que possamos chamar o código responsável por logar informações no console do Firebug.
helper_method :firebug
private
def firebug(message, type = :debug)
request.env['firebug.logs'] ||= []
request.env['firebug.logs'] << [type.to_sym, message.to_s]
end
"Debugando" no console do Firebug
Enviando mensagens através dos controllers:
class HomeController < ApplicationController
def index
firebug('Debug')
firebug('Warning', :warn)
firebug('Error', :error)
firebug('Info', :info)
end
end
E por views:
<% firebug('Debug') %>
<% firebug('Warning', :warn) %>
<% firebug('Error', :error) %>
<% firebug('Info', :info) %>
Resultado:

Essa foi a dica de hoje. O que acharam?
Até mais.