Edge Rails: Bug no script/about, e alterações no render_file e auto_link

Publicado por Carlos Brando em 23 de Julho de 2008

Railties

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

ActionPack

Edge Rails: Suporte ao Thin melhorado no Rails

Publicado 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ê deve acrescentar a linha config.gem ‘thin’ no seu arquivo environment.rb para que isto funcione.

Edge Rails: Criando testes de performace 3

Publicado 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 o código gerado:

require 'performance/test_helper'

class LoginTest < ActionController::PerformanceTest
  # Replace this with your real tests.
  def test_homepage
    get '/'
  end
end

Neste arquivo podemos colocar todos os testes que desejarmos e ao executá-lo teremos informações sobre cada um dos testes como tempo de processamento, uso de memória e outros. Para realizar o teste executamos no terminal:

[carlosbrando:edge]$ ruby test/performance/login_test.rb
Loaded suite test/performance/login_test
Started
LoginTest#test_homepage (32 ms warmup)
        process_time: 11 ms
              memory: unsupported
             objects: unsupported
.
Finished in 0.870842 seconds.

Acredito que esta implementação ainda não está 100%, tanto que não consegui testar corretamente. Mas vou continuar de olho e aviso quando tivermos novidades sobre isto.

Edge Rails: Está chegando o fim dos plugins? 6

Publicado 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 minha aplicação Rails, seria apenas uma questão de tempo até que plugins deixassem de existir.

E parece que isto realmente pode acontecer. No edge rails, por exemplo, foi incluída uma alteração que permite inicializar plugins tanto pelo arquivo init.rb na raiz do plugin, como em um arquivo em um diretório rails/init.rb (da mesma forma como fazemos com os gems), sendo esta segunda opção a prioritária.

Assim, eu poderia por exemplo criar um gem (que funcionaria como um plugin) e instalar de duas maneiras:

./script/plugin install git://github.com/user/plugin.git

sudo gem install user-plugin --source=http://gems.github.com

Isto sem precisar manter dois arquivos init.rb (um na raiz e outro no diretório rails).

Edge Rails: StringQuestioneer renomeado para StringInquirer

Publicado 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 status
    ActiveSupport::StringInquirer.new("ativo")
  end
end

c = Cliente.new
c.status
# => “ativo”

# Agora vem a grande diferença:
c.status.ativo?
# => true

c.status.inativo?
# => false