Artigos publicados em Julho de 2008

Edge Rails: Testando apenas arquivos uncommitteds no Git

Por Carlos Brando em 31 de Julho de 2008

Existe uma tarefa rake no Rails que pouca gente conhece mas que é muito útil:
rake test:uncommitted
Como o nome já diz esta tarefa roda os testes apenas dos arquivos que ainda não foram enviados (commit) para o subversion, ao invés de rodar todos os testes do projeto.
Eu costumava usar isto muito, mas quando mudei para Git [...]

Edge Rails: render :template agora aceita :locals

Por Carlos Brando em 30 de Julho de 2008

Os métodos render :action e render :partial permitem que passemos um hash através da opção :locals com dados para serem processados por eles, mas o render :template não permite.
Ou melhor, não permitia. Na próxima versão do Rails isto irá funcionar também:
render :template => “weblog/show”, :locals => {:customer => Customer.new}

Rails Podcast Brasil - Episódio 25

Por Carlos Brando em 29 de Julho de 2008

Foto de willieabrams
Depois de uma semana sem podcast temos noticias acumuladas das duas semanas que se passaram, então preparem-se para um episódio de uma hora e meia de duração.
Neste episódio falamos sobre o lançamento do Ruby 1.9.0-3 e o que tem de novo, explicamos o que é este tal de ActivePresenter, comentamos sobre o curso [...]

Edge Rails: Fazendo uso da opção accessible em formulários

Por Carlos Brando em 29 de Julho de 2008

No último artigo desta série comentei sobre a nova forma de atribuir valores à associações usando a opção :accessible.
Agora vou mostrar uma das grandes vantagens dessa novidade. Fazendo uso deste novo recurso podemos melhorar a forma como usamos o método fields_for. Vamos pegar um exemplo, baseado nos códigos do artigo anterior:
<% form_for @post do |f| [...]

Todos os métodos de associações do ActiveRecord (belongs_to, has_one, has_many e has_and_belongs_to_many) receberam um nova opção que permite a atribuição de valores para suas associações usando hashes aninhados.
Vamos pegar como exemplo um modelo chamado Post:
class Post < ActiveRecord::Base
belongs_to :author, :accessible => true
has_many :comments, :accessible => true
end

Note que logo após associar este [...]

Edge Rails: Suporte a expressões regulares no time_zone_select

Por Carlos Brando em 25 de Julho de 2008

Na classe TimeZone do ActiveSupport existe o método us_zones que convenientemente retorna uma lista dinâmica com todos os fusos-horários americanos.
O problema é que não moramos nos Estados Unidos e muito provavelmente vamos desenvolver software para pessoas em nosso país, mas não existe um método tão conveniente assim que liste os fusos-horários brasileiros ou de outros [...]

Conforme expliquei no artigo anterior, teremos suporte a I18n no Ruby on Rails a partir da próxima versão. E eu prometi escrever um artigo mostrando como funcionaria esta nova implementação, o problema é que demorei e já teve gente se adiantando…
Então só vou mostrar o caminho das pedras.
Antes de começar
Preciso deixar claro uma coisa. Quando [...]

Railties

Corrigido bug ao usar script/about em produção.

ActionPack

No Rails 2.2 o método ActionView::Base#render_file passa a ser privado.
O método auto_link agora também suporta o caracter ‘ (aspas simples) no meio da url.

Foto de chrys
Algumas pessoas estão comentando que o Ruby on Rails 2.2 deve ser lançado até setembro, a tempo do RailsConf Europe, e acredito que esta é uma das novidades que mais nos interessa.
Tudo começou em setembro de 2007 quando um grupo de desenvolvedores começaram a construção de um plugin para o Rails chamado rails-I18n, [...]

Edge Rails: Tratando a opção :limit como bytes (atualizado)

Por Carlos Brando em 22 de Julho de 2008

À partir da próxima versão do Rails quando usarmos a opção :limit para colunas com números inteiros, em nossas migrations, estaremos nos referindo ao número de bytes, no MySQL e no PostgreSQL (no sqlite sempre foi assim).
O tipo da coluna no banco de dados dependerá da quantidade de bytes espeficida. Veja o trecho de código [...]

Free Book: Ruby on Rails 2.1 - What’s New (7 translations)

Por Carlos Brando em 21 de Julho de 2008

Mais uma tradução terminada do livro “Ruby on Rails 2.1 - O que há de novo?“, desta vez para chinês tradicional.
A tradução foi feita por meus dois novos amigos chineses, Zero e CFC. A tradução se encontra no site Scribd.
Com esta tradução este livro já se encontra disponível em português, inglês, japonês, chinês simplificado e [...]

Edge Rails: Algumas correções de bugs

Por Carlos Brando em 21 de Julho de 2008

Algumas correções de bugs que sairão na próxima versão do Ruby on Rails:
ActiveRecord

Correção de uma colisão entre named_scope e :joins.
Quando se usava with_scope junto com :joins todos os atributos da tabelas secundárias eram adicionados ao modelo da tabela principal.

Partial updates não atualizavam o lock_version se nada foi alterado.
Quando usávamos optimistic locking com partial updates, tinhamos [...]

Minha palestra no RejectConf’07 - agora com slides!

Por Carlos Brando em 19 de Julho de 2008

Em novembro do ano passado (2007) tivemos o RejectConf’07 em São Paulo, onde eu tive o privilégio de fechar o evento com uma palestra motivacional. Depois deste evento, tivemos muitos outros em vários estados do Brasil e online.
Nem faz tanto tempo assim, mas muita coisa aconteceu desde então. A comunidade brasileira de Ruby on Rails [...]

Edge Rails: Introduzindo Memoizable para cache de atributos

Por Carlos Brando em 18 de Julho de 2008

Performance é coisa séria, e um dos métodos mais usados para aumentar a velocidade de execução em códigos é o uso de cache. Quem nunca fez algo assim?
class Person < ActiveRecord::Base
def age
@age ||= um_calculo_muito_complexo
end
end

Na próxima versão do Rails teremos uma forma mais elegante de fazer isto usando [...]

Agora que todos já sabem o que é uma rota singular, posso comentar uma novidade no Edge Rails.
Atualmente o helper polymorphic_url não está tratando singleton resources corretamente.
Um novo patch foi incluído no Rails para permitir que especifiquemos um singular resource usando símbolos, assim como fazemos com namespaces. Exemplo:
# este código
polymorphic_url([:admin, @user, :blog, @post])

# é a [...]

O que é uma Rota Singular?

Por Carlos Brando em 17 de Julho de 2008

Foto de GeorgieR
Além do map.resources, há também uma forma singular (ou “singleton“) de rotear recursos: map.resource. Esta forma é usada para representar um recurso que só aparece uma vez no contexto.
Faz muito sentido usar uma rota singular quando temos um recurso que será único dentro da aplicação ou da sessão do usuário corrente.
Por exemplo, em [...]

Rails Podcast Brasil - Episódio 24

Por Carlos Brando em 16 de Julho de 2008

Com vocês mais um Rails Podcast Brasil!
Este episódio é curto, tem pouco mais de 30 minutos, afinal a vida está meio corrida ultimamente. Projetos… projetos…
Neste episódio comentamos sobre os 15 milhões que a Engine Yard recebeu e como eles pretendem gastar esta grana, mostramos um meio alternativo de usar o logo do Rails (?), explicamos [...]

Edge Rails: Suporte ao Thin melhorado no Rails

Por Carlos Brando em 15 de Julho de 2008

Traduzido do post “Living on the Edge (or what’s new in Edge Rails) #3“, porque não percebi esta alteração e não quero deixar de documentar.
O script/server agora verifica a disponibilidade do Thin e o usa. Muito conveniente se vocês estiver usando Thin no seu ambiente de produção (e quiser rodar o mesmo em desenvolvimento). Você [...]

Edge Rails: Uma nova forma de especificar conditions usando Hash

Por Carlos Brando em 15 de Julho de 2008

Ao realizar buscas no banco de dados, por vezes temos de fazer uso da opção :joins afim de melhorar a performance de nosso aplicativo, em outros casos precisamos simplesmente recuperar algum tipo de informação que depende do resultado de duas tabelas.
Por exemplo, se desejássemos recuperar todos os usuários do sistema que compraram itens da cor [...]

HTTP Status Code no Rails

Por Carlos Brando em 14 de Julho de 2008

No arquivo status_codes.rb do Rails temos um mapeamento de cada HTTP status code com uma mensagem padrão correspondente. Além disso ali também há um trecho de código que mapeia cada status em um símbolo, o que facilita seu uso durante nosso desenvolvimento:
SYMBOL_TO_STATUS_CODE = STATUS_CODES.inject({}) do |hash, (code, message)|
hash[message.gsub(/ /, "").underscore.to_sym] = code
[...]

500 Posts

Por Carlos Brando em 11 de Julho de 2008

Em fevereiro de 2007 eu tive a idéia de criar um blog, naquela época eu nem sabia ao certo sobre o que escrever, então comecei com pequenas dicas que eu ia pescando pela internet e convidei um amigo para escrever também. Só para vocês terem uma idéia, até sobre educação financeira eu já escrevi por [...]

Idéias são apenas multiplicadores de execuções

Por Carlos Brando em 11 de Julho de 2008

Eu já tinha visto isto em algum lugar mas não me lembro mais onde, de qualquer forma Derek Sivers me relembrou no seu mini-artigo no site ONLamp.com:
É tão engraçado quando escuto as pessoas defendendo suas idéias. Para mim idéias não valem nada sem execução. Elas são apenas um multiplicador.
Execuções valem milhões.
Explicação:
Uma péssima idéia = -1
Uma [...]

No código abaixo estamos usando uma partial com uma coleção de dados:
render :partial => “admin_person”, :collection => @winners
Dentro da partial podemos usar então a variável admin_person para acessar os itens da coleção. Mas temos de concordar que este nome de variável é meio ruim.
Na próxima versão do Rails teremos a opção de personalizar o nome [...]

O método validates_length_of faz parte dos muitos métodos de validação contidos no ActiveRecord. Este método em particular serve para garantir que o valor gravado em uma determinada coluna no banco de dados terá um tamanho máximo, mínimo, exato, ou até mesmo se está em um intervalo de valores.
Mas o termo “tamanho” é relativo. Hoje quando [...]

Rails Podcast Brasil - Episódio 23

Por Carlos Brando em 08 de Julho de 2008

Foto de duncandavidson
Depois de uma semana sem podcast, aqui estamos nós outra vez!
Neste episódio falamos das novidades do Rails-doc, do novo livro de Git da Pragmatic Programmers, Screencasts, JRuby, Sproutcore, Passenger e outros assuntos. E para fechar o podcast, comentamos sobre as novas certificações para programadores Ruby e sobre o evento Rails Summit Brazil 2008!
Para [...]

Propaganda:

Últimos Artigos

Não abrace a sua ignorância 21/08/2008
Carlos Brando

Não abrace a sua ignorância

Este post é uma tradução deste artigo escrito por David Hansson. Eu nunca gostei da idéia de livros com títulos como “for Dummies” ou “comp[...] Leia Mais »