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 [...]
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}
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 [...]
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| [...]
Por Carlos Brando em 28 de Julho de 2008
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 [...]
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 [...]
Por Carlos Brando em 24 de Julho de 2008
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 [...]
Por Carlos Brando em 23 de Julho de 2008
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.
Por Carlos Brando em 22 de Julho de 2008
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, [...]
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 [...]
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 [...]
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 [...]
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 [...]
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 [...]
Por Carlos Brando em 17 de Julho de 2008
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 [...]
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 [...]
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 [...]
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ê [...]
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 [...]
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
[...]
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 [...]
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 [...]
Por Carlos Brando em 10 de Julho de 2008
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 [...]
Por Carlos Brando em 09 de Julho de 2008
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 [...]
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 [...]