Por Carlos Brando em 16 de Fevereiro de 2008
Mais uma vez troquei o tema do blog. Eu estava tendo muitos problemas com o tema anterior para fazê-lo funcionar no IE6 e no Safari, de forma adequada. E como desenvolvedor web que sou, não posso correr o risco de alguém entrar no meu site e vê-lo todo quebrado.
Desta vez o tema escolhido é mais [...]
Por Carlos Brando em 16 de Fevereiro de 2008
Eu tinha me esquecido de comentar sobre isto, mas na próxima versão do Rails poderemos realizar testes com fusos-horários diferentes de um uma forma bem simples:
def test_local_offset
with_env_tz ‘US/Eastern’ do
assert_equal Rational(-5, 24), DateTime.local_offset
end
with_env_tz ‘US/Central’ do
assert_equal Rational(-6, 24), DateTime.local_offset
end
end
Este helper era [...]
Por Carlos Brando em 15 de Fevereiro de 2008
“When, a Rails plugin“, é um daqueles plugins que devem acabar sendo incorporados ao código do Rails. Assim como o das “Sexys Migrations”.
Com este plugin você pode fazer isto:
before_filter :authorize, :unless => logged_in?
E pelo visto, já era intenção do core team fazer algo assim.
Por Carlos Brando em 15 de Fevereiro de 2008
Faça o teste agora mesmo, se você executar o método Time.days_in_month para recuperar a quantidade de dias em fevereiro, sem informar o ano, ele retornará 28. Já que você não passou o ano, o Rails retorna isto como padrão. Mas este ano temos 29 dias em fevereiro… Este método foi alterado para a próxima versão [...]
Por Carlos Brando em 15 de Fevereiro de 2008
Você pensou que as alterações no TimeZone tinham acabado? Está enganado.
Prototype
Element#writeAttribute foi corrigido para trabalhar com cellspacing e cellpadding no Internet Explorer.
TimeZone
Os métodos in_current_time_zone e change_time_zone_to_current da classe Time foram alterados para retornarem self quando o Time.zone for nulo.
Além disso o método TimeZone#now também foi alterado para retornar um ActiveSupport::TimeWithZone representando a hora corrente no [...]
Por Carlos Brando em 14 de Fevereiro de 2008
Mais um episódio do meu, do seu, do nosso Rails Podcast Brasil está no ar. Para ouvir basta acessar a página do poscast e fazer o download do arquivo mp3.
Esta semana falamos sobre rubinius, mais um pouco sobre GIT, resource_controller, Heroku, Mac e os poderes da pasta de dente.
Neste episódio:
Yahoo! rejeita oficialmente proposta de compra [...]
Por Carlos Brando em 13 de Fevereiro de 2008
Pelo visto o formato atual de se trabalhar com TimeZones estava incomodando bastante gente, porque muita coisa está sendo alterada ou melhorada neste ponto no Rails.
O método formatted_offset foi incluído nas classes Time e DateTime para retornar no formato +HH:MM o desvio da hora UTC. Por exemplo, em nosso fuso-horário (hora de Brasília) o desvio [...]
Por Carlos Brando em 11 de Fevereiro de 2008
Criar um software para a internet não é fácil, principalmente quando seus usuários estão espalhados por todo o mundo. Um dos maiores desafios neste caso é manipular fusos-horário. Hoje no Rails isto não é um bicho de sete cabeças graças a plugins como o TZInfo. Mas pelo visto este não é um problema só seu, [...]
Por Carlos Brando em 09 de Fevereiro de 2008
Atualmente no Rails você pode atribuir ao request.format um mime type usando um símbolo. Por exemplo:
request.format = :iphone
Mas por outro lado, você não pode determinar o mime type atribuído ao request.format usando um símbolo. Duh… O código abaixo falharia:
request.format = :iphone
assert_equal :iphone, request.format
No Edge Rails este problema já foi resolvido, permitindo que você use tanto [...]
Por Carlos Brando em 08 de Fevereiro de 2008
Bom, o site novo do podcast ainda não está pronto, estou meio enrolado com algumas coisas aqui, e não consegui terminar. Mas para provar que a comunidade Rails é a comunidade mais unida e pró-ativa que existe, o Rodrigo Urubatan deu um jeitinho de descolar um RSS Feed para o podcast.
O endereço: http://feeds.feedburner.com/RailsPodcastBrasil
É um feed [...]
Por Carlos Brando em 08 de Fevereiro de 2008
Na versão atual do Rails associações belongs_to ignoram qualquer opção passada usando :dependent. Mas à partir da nova versão você poderá usar :dependent => :destroy e :delete em associações belongs_to.
Exemplos:
belongs_to :author_address
belongs_to :author_address, :dependent => :destroy
belongs_to :author_address_extra, :dependent => :delete, :class_name => “AuthorAddress”
E para aqueles que acham que isto não faz sentido, lembrem-se que o belongs_to [...]
Por Carlos Brando em 07 de Fevereiro de 2008
A implementação atual do reconhecimento de rotas percorre todas as rotas, uma-a-uma, e isto consome muito tempo. Uma nova implementação foi incluída no trunk do Rails (Edge Rails) e é mais inteligente, ela monta uma árvore de rotas e reconhece as rotas pelo prefixo, pulando rotas semelhantes. Só isto já diminui em aproximadamente 2.7 vezes [...]
Por Carlos Brando em 07 de Fevereiro de 2008
Mais um livro da The Pragmatic Programmers. O livro foi escrito por Derek DeVries e Mike Naberezny, dois experientes programadores PHP, Ruby e Rails. Em formato PDF custa 22 dólares.
Inclusive os autores tem um site bem interessante sobre o tema, cheio de comparações com exemplos de código e tabelas mostrando as diferenças entre as linguagens [...]
Por Carlos Brando em 07 de Fevereiro de 2008
http://www.rubyonrails.pro.br/podcasts
Mais um episódio do seu programa favorito sobre Rails…
Neste episódio comentamos sobre JRuby, Merb, Social Graph API, TextMate, mais uma vez sobre Zed Shaw e no final uma aula sobre Git.
Neste episódio:
rubybr.reddit.com
Microsoft oferece USD$ 44,6 bilhões pela Yahoo!
Dica De Sysadmin Para Quem Tem VPS
FastCGI E Authenticate_or_request_with_http_basic
Ruby 1.9 Presentation
Ruby 1.9 Comparison App
Rede Parede
Grails Goes 1.0
21 [...]
Por Carlos Brando em 05 de Fevereiro de 2008
Agora na hora de informar o map.root você pode ser um pouco mais DRY usando um alias para isto. Se antes você fazia assim:
map.new_session :controller => ’sessions’, :action => ‘new’
map.root :controller => ’sessions’, :action => ‘new’
Agora você pode fazer assim:
map.new_session :controller => ’sessions’, :action => ‘new’
map.root :new_session
Ou assim:
map.dashboard ‘/dashboard’, :controller=>’dashboard’
map.root :dashboard
Por Carlos Brando em 04 de Fevereiro de 2008
O método composed_of você já conhece. Veja este caso como exemplo:
class Account < ActiveRecord::Base
composed_of :balance, :class_name => “Money”, :mapping => %w(balance amount)
end
A partir de agora, você pode passar um objeto Money como parâmetro no método find da classe Account, assim:
amount = 500
currency = “USD”
Account.find(:all, :conditions => { :balance => Money.new(amount, currency) })
Por Carlos Brando em 02 de Fevereiro de 2008
Para explicar esta nova funcionalidade vou precisar mostrar na prática. Vamos pegar como exemplo o código abaixo:
Author.find(:all, :include => [:posts, :comments])
Estou fazendo uma pesquisa na tabela authors, mas incluindo na minha query as tabelas posts e comments, relacionado-as pela coluna author_id. Para entender melhor veja a query gerada pelo Rails:
SELECT
authors.”id” [...]