Por Carlos Brando em 15 de Maio de 2008
Agora para saber qual action foi chamada durante a execução de sua view ficou mais fácil, basta usar o método action_name:
<%= action_name %>
O retorno será o mesmo que pegar o params[:action], mas de uma forma mais elegante.
Por Carlos Brando em 14 de Maio de 2008
Acompanhe a tradução do livro Why’s (Poignant) Guide to Ruby pelo Twitter!
Clique aqui.
Por Carlos Brando em 14 de Maio de 2008
This gem set the autotest (ZenTest) to send messages to software as Growl, LibNotify, and Snarl, displaying a window with the results.
http://github.com/carlosbrando/autotest-notification/
Requirements
Independent of operating system you are using, you must install the ZenTest.
gem install ZenTest
If youÂre using a Mac
You need to have Growl and growlnotify installed on your machine.
Download the Growl and install it like [...]
Por Carlos Brando em 14 de Maio de 2008
Se me perguntarem quais são os melhores livros sobre Ruby, o livro Why’s (Poignant) Guide to Ruby com certeza estará na minha lista.
Este post é uma convocação. Vamos traduzir o livro. O Akita já explicou como isto vai funcionar no blog dele, então não vou repetir. Vamos usar o GitHub para isto, então crie uma [...]
Por Carlos Brando em 13 de Maio de 2008
Interessante como uma coisa simples pode mobilizar as pessoas. Tudo começou com um simples script para exibir uma janela com o retorno dos testes no Mac usando o Growl.
Depois o Alexandre adaptou o script para também funcionar no Linux usando o LibNotify.
Resolvemos então que seria legal ter este script em algum lugar mais acessível, onde [...]
Por Carlos Brando em 13 de Maio de 2008
No Rails 2.1 você poderá definir em que arquivo estão suas rotas incluindo a seguinte linha no seu arquivo environment.rb:
config.routes_configuration_file
Isto pode ser útil em um cenário onde você tem dois front-ends separados que usam os mesmos módulos, bibliotecas e plugins.
Por exemplo, getsatisfaction.com e api.getsatisfaction.com compartilham os mesmos modelos, mas não os controllers, helpers e views. [...]
Por Carlos Brando em 13 de Maio de 2008
Também já quebrei a cabeça por causa disto. O problema é que durante os testes você nunca podia confirmar se uma mensagem foi armazenada no flash, porque ela era limpa pelo Rails antes de cair no seu script de teste.
No Rails 2.1 este problema foi resolvido. Agora você pode incluir linhas como esta em seus [...]
Por Carlos Brando em 13 de Maio de 2008
Lembra do método label_tag?
Agora ele aceita a opção :for, veja um exemplo:
label(:post, :title, nil, :for => “my_for”)
Isto vai retornar algo assim:
<label for=”my_for”>Title</label>
Hmm… não entendi para que isto…
Por Carlos Brando em 12 de Maio de 2008
Já estamos acostumados com o método ActiveRecord::Base.new que aceita o uso de blocos na criação de um novo registro. Agora podemos fazer o mesmo com o método create:
# Criando um objeto, usando um bloco para informar seus atributos.
User.create(:first_name => ‘Jamie’) do |u|
u.is_admin = false
end
Também podemos usar o mesmo método para criar vários objetos [...]
Por Carlos Brando em 12 de Maio de 2008
Criar migrations ficou muito mais sexy depois do lançamento do Rails 2.0, mas alterar uma tabela usando migrations continuou sendo da forma antiga, nada sexy.
No Rails 2.1 (que já está para sair) alterar uma tabela também será sexy, com o novo método change_table. Veja um exemplo:
change_table :videos do |t|
t.timestamps # adiciona as colunas [...]
Por Carlos Brando em 12 de Maio de 2008
Vocês já acompanharam aqui no blog a dificuldade que tive para fazer o Autotest funcionar com o Growl. Acho que testei todos os scripts prontos que encontrei pela internet e até alguns gems como o test_notifier do Nando Vieira, mas não sei porque nada funcionou aqui.
Então resolvi botar a mõe na massa e criar o [...]
Por Carlos Brando em 09 de Maio de 2008
E com vocês mais um episódio do Rails Podcast Brasil, o podcast mais completo da internet sobre Ruby on Rails e assuntos relacionados. Neste episódio falamos durante uma hora sobre Edge Rails, Capistrano, Phusion, acts_as_state_machine, a polêmica Twitter (de novo) e mais…
Para ouvir faça o download aqui.
Neste episódio
Rails gets more mature
Living on the edge (of [...]
Por Carlos Brando em 09 de Maio de 2008
Segurança é tudo! Mas como você faz para lembrar as senhas (diferentes, afinal segurança é tudo) de cada site na internet que você já se cadastrou? A solução está aqui.
Use principalmente para anotar as suas senhas do banco. E para não correr o risco de perder o papel e esquecer suas senhas, tire uma cópia [...]
Por Carlos Brando em 09 de Maio de 2008
Para os que estão usando Autotest + Growl, eu fiz mais uma alteração no script de exibição de alertas. Para os interessados, é só clicar aqui.
Dei uma melhorada nele e incluí suporte ao Test::Unit, além do RSpec.
Por Carlos Brando em 09 de Maio de 2008
A inclusão do Memcache-Client no ActiveSupport::Cache facilitou muito as coisas, mas também removeu a flexibilidade, não deixando personalizar mais nada além do IP do servidor do memcached.
Jonathan Weiss criou um patch, que foi incluído no Rails, incluindo opções extras, como estas:
ActiveSupport::Cache.lookup_store :mem_cache_store, “localhost”
ActiveSupport::Cache.lookup_store :mem_cache_store, “localhost”, ‘192.168.1.1′, :namespace => ‘foo’
ou
config.action_controller.fragment_cache_store = :mem_cache_store, ‘localhost’, {:compression => true, [...]
Por Carlos Brando em 09 de Maio de 2008
Hoje se você tentar usar o método change_column com :null => true em uma coluna que foi criada usando :null => false, simplesmente sua coluna não vai sofrer nenhuma alteração. BUG.
No Rails 2.1 isto já estará corrigido.
Por Carlos Brando em 08 de Maio de 2008
Na semana passada o Dr. Nic Williams lançou um widget/badge que pode ser colocado em nossos sites para exibir os projetos em que estamos trabalhando no GitHub. Para saber como usar, clique aqui.
Como sou um grande fõ do GitHub, já fui coloando aqui no meu blog. Mas o bendito é todo em inglês, o que [...]
Por Carlos Brando em 08 de Maio de 2008
Esta é quentinha. Acabou de sair…
No Rails 2.1 teremos mais um script para facilitar nossa vida:
script/dbconsole
Ele faz a mesma coisa que o script/console mas para o banco de dados. Em outras palavras ele entra no cliente de linha de comandos do banco de dados. Veja o resultado do meu teste:
Como você pode ver estou usando [...]
Por Carlos Brando em 07 de Maio de 2008
Uma coisa muito chata de se fazer hoje no Rails é testar helpers. Eu mesmo já sofri um bocado para garantir 100% de cobertura, criando testes para alguns helpers.
Isto deve ficar mais simples no Rails 2.1 com a nova classe ActionView::TestCase. Vamos pegar o código abaixo como exemplo:
module PeopleHelper
def title(text)
[...]
Por Carlos Brando em 06 de Maio de 2008
Eu sempre tenho falado por aqui e no podcast sobre o GitHub, é não por menos que este projeto tem me chamado tanto à atenção. Um dos recursos mais legais que vi é a possibilidade de incluir comentários sobre o código de terceiros.
Nos grandes projetos, comentar o código está virando mania. Veja por exemplo [...]
Por Carlos Brando em 06 de Maio de 2008
O Active Resource usa HTTP para acessar APIs RESTful e por isto está suscetível a problemas de lentidão ou servidores fora do ar. Em alguns casos, suas chamadas ao Active Resource podem expirar (timeout). Agora você pode controlar o tempo de expiração com a propriedade timeout.
class Person < ActiveResource::Base
self.site = “http://api.people.com:3000/”
self.timeout [...]
Por Carlos Brando em 05 de Maio de 2008
O adaptador de MySQL do ActiveRecord ficou um pouco mais esperto na hora de criar ou alterar colunas no banco de dados usando inteiros. De acordo com a opção :limit, ele define se a coluna será um smallint, int ou bigint. Veja um trecho do código que faz isto:
case limit
when 0..3
“smallint(#{limit})”
when 4..8
[...]
Por Carlos Brando em 03 de Maio de 2008
foto de luisdrk
Ok, até agora eu ainda não entendi qual é a do twitter… mas vamos tentar.
Para quem quiser me seguir: http://twitter.com/carlosbrando
Por Carlos Brando em 03 de Maio de 2008
Novo método para a classe Time. O retorno do método current depende do config.time_zone, se ele foi especificado antes, o método retornará um Time.zone.now, caso contrário será um Time.now.
# o retorno depende do config.time_zone
Time.current
Os métodos since e ago também terão seus retornos alterados, devolvendo um TimeWithZone caso o config.time_zone tiver sido especificado.
Isto torna o método [...]