Por Carlos Brando em 19 de Novembro de 2008
Já faz um tempo que existe uma dicussão sobre o nome do arquivo application.rb. O motivo é que como ele corresponde à classe ApplicationController, deveria chamar-se application_controller.rb.
Bom, depois de muita discussão isto foi alterado. Particularmente eu gostei, mas muitos não gostaram do fato de isto sair já para o Rails 2.2 sem um aviso prévio. [...]
Por Carlos Brando em 03 de Novembro de 2008
A tarefa rake db:migrate:redo tem se mostrado muito útil quando precisamos voltar e executar novamente a última migration criada. Agora esta tarefa ficou ainda mais útil, porque podemos utilizar a opção VERSION e informar qual migration queremos que seja reexecutada.
rake db:migrate:redo VERSION=20080725004631
Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.2 ou superior. [...]
Por Carlos Brando em 27 de Outubro de 2008
Da mesma forma como temos o script/server –debugger, agora também temos o script/console –debugger. Esta opção basicamente carrega a biblioteca ruby-debug ao iniciar o console.
É mais fácil usar esta opção do que executar um require ‘ruby-debug’ no console toda vez que precisar deste recurso.
Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.2 [...]
Por Carlos Brando em 26 de Setembro de 2008
A classe Rails::SecretKeyGenerator, usada para gerar chaves secretas aleatórias como as usadas para armazenar a sessão do usuário em cookies, está sendo marcada para ser removida do Rails (Deprecate).
Em seu lugar o Rails passará a usar a classe ActiveSupport::SecureRandom que foi feita para o Ruby 1.9. A biblioteca SecureRandom faz a mesma coisa que a [...]
Por Carlos Brando em 17 de Setembro de 2008
Se você estiver usando o Edge Rails em seu projeto, tente executar o seguinte comando para criar um novo modelo:
./script/generate scaffold comment author:string body:text post:references
Note que estou informando que meus comentários terão uma referência a tabela posts. Ou em outras palavras que meus comentários pertencem (belongs_to) a um post. Agora veja o arquivo app/models/comment.rb gerado [...]
Por Carlos Brando em 05 de Setembro de 2008
As tarefas rake db:fixtures:load e rake db:fixtures:identify receberam um novo parâmetro opcional: FIXTURES_PATH.
rake db:fixtures:load FIXTURES_PATH=spec/fixtures
Desta forma você pode especificar um caminho alternativo para suas fixtures (por exemplo: spec/fixtures).
Por Carlos Brando em 04 de Setembro de 2008
Foi incluído no Rails um novo método de configuração para ligar o threaded mode.
config.threadsafe!
Ao executar este método em seu arquivo de configuração (normalmente no environments/production.rb), você estará fazendo com que as actions de um controller aceitem requisições concorrentes e múltiplas conexões com o banco de dados.
Ele também desliga o carregamento de dependencias após a inicialização. [...]
Por Carlos Brando em 03 de Setembro de 2008
Se você desejar permitir ou restringir a carga de dependências durante o ciclo de um requisição, pode fazer uso de um novo parâmetro de configuração.
config.dependency_loading = true
# ou
config.dependency_loading = false
Se dependency_loading for alterado para true (verdadeiro) ele permitirá que novas classes sejam carregadas durante uma requisição. Alterando para false (falso) este comportamento será desativado.
Se você [...]
Por Carlos Brando em 02 de Setembro de 2008
Uma das novidades introduzidas no Rails 2.1 foi o config.gem, que nos permitia configurar de quais gems nosso projeto era dependente.
Com isto ganhamos diversas tarefas que facilitaram nosso trabalho, como o rake gems:install que instala todas as dependências automaticamente.
Mas tínhamos de tomar alguns cuidados ao configurar as dependências, porque em alguns casos o nome da [...]
Por Carlos Brando em 01 de Setembro de 2008
Nos arquivos de configuração do seu projeto provavelmente deve haver uma linha assim:
config.cache_classes = false
Esta linha informa ao Rails que ele não deve fazer cache do código de seu projeto, ou seja, para cada requisição feita ele carregará o código novamente. Embora isto torne a execução de seu código mais lenta, é ótimo para o [...]
Por Carlos Brando em 01 de Agosto de 2008
Novo método adicionado ao Rails:
Rails.initialized?
Ele informa se todos os processos de inicialização já foram finalizados. Sinceramente? Não sei onde eu usaria isto.
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 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 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 30 de Junho de 2008
Eu ainda não consegui testar direito esta nova funcionalidade, mas para a próxima versão do Rails teremos um novo generator para testes de performace.
Ao executar no terminal o seguinte comando:
[carlosbrando:edge]$ ./script/generate performance_test Login
exists test/performance/
create test/performance/login_test.rb
Será criado um arquivo chamado test/performance/login_test.rb. Veja [...]
Por Carlos Brando em 12 de Junho de 2008
No Rails 2.1, gems passaram a poder ser usadas como plugins em nossos projetos. Para isto bastava criar uma pasta chamada rails dentro do projeto do gem e incluir um arquivo init.rb.
Isto acrescentou um leque de novidades como config.gem e rake:gems. Mas isto nos faz pensar, já que agora eu posso carregar gems dentro da [...]
Por Carlos Brando em 06 de Junho de 2008
Hoje de manhã eu falei desta nova classe no Rails, e comentei que estavam querendo mudar o seu nome. Pois bem, isto aconteceu mesmo!
Agora a classe se chama StringInquirer. Além disso ela também foi incluída no namespace ActiveSupport.
Vejam o mesmo exemplo usado no artigo anterior, mas adaptado para funcionar com estas alterações:
class Cliente
def [...]
Por Carlos Brando em 06 de Junho de 2008
David acabou de incluir uma novidade interessante no Rails, a classe StringQuestioneer (alguns estão tentando mudar este nome para StringInquirer, mas por enquanto é StringQuestioneer mesmo).
Para entender como funciona, vou ter de explicar usando alguns exemplos. Vamos criar uma classe chamada Cliente que contém um método que retorna o status do cliente:
class Cliente
def [...]
Por Carlos Brando em 30 de Maio de 2008
Ouve uma pequena alteração na mensagem de inicio do Rails, agora ela mostra também qual é a versão do Rails que está sendo carregada:
Rails 2.0.991 application starting on http://0.0.0.0:3000
Para quem trabalha em vários projetos ao mesmo tempo como eu, isto é muito útil.
Por Carlos Brando em 29 de Maio de 2008
Até agora se você desejasse descobrir durante a execução do seu código qual é a versão do Rails que está no ar, bastava usar:
Rails::VERSION::STRING
Mas temos de concordar que isto não parece muito legal. Por isto no Rails 2.1 não usaremos mais este código, mas sim:
Rails.version
Melhor!
Por Carlos Brando em 23 de Maio de 2008
Patch de brasileiro e não é de qualquer brasileiro, é do meu colega de trabalho na Surgeworks, Rodrigo Kochenburger.
Neste patch o Rodrigo resolveu um problema que tínhamos ao usar models com namespace e STI. Nas suas próprias palavras:
Quando usamos models com namespace e STI, o ActiveRecord armazena apenas o nome da classe, sem o namespace [...]
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 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 01 de Maio de 2008
Ufa… finalmente terminei de analisar todas as alterações quer foram realizadas no Rails através do Trac. Agora estou indo para as que estão no GitHub e LightHouse, e já estou beeemm atrasado, já que tem quase 100 alterações que preciso conferir.
Talvez a alteração que precisava sair mais rápido é a do rails:freeze:edge, que precisava agora [...]
Por Carlos Brando em 01 de Maio de 2008
Hoje no Rails não é possível congelar o Rails em seu projeto pela versão, mas somente podemos fazer isto pela revisão. Claro que podemos verificar qual foi a última revisão antes do lançamento da versão, mas isto é trabalho extra.
No Rails 2.1, poderemos congelar um release específico com o comando abaixo:
rake rails:freeze:edge RELEASE=1.2.0