Remarkable 2.0.1 e Atualização do (Comovente) Guia de Ruby do Why

Remarkable 2.0.1 e Atualização do (Comovente) Guia de Ruby do Why

19 de dezembro de 2008  |  Destaques, Meus Livros, Open Source, Remarkable, Ruby  | 

Desde que lancei a primeira versão do Remarkable tenho visto cada vez mais pessoas aderindo ao projeto para criar seus testes com maior rapidez. E com uma quantidade maior de pessoas usando nas mais diversas aplicações é claro que os bugs começaram a aparecer.

A maior parte dos problemas ocorriam por uma falha na arquitetura inicial do Remarkable, o que tornou necessário um refactoring no projeto inteiro para estruturá-lo melhor. Na primeira versão, internamente havia uma separação muito clara entre as duas sintaxes que o projeto oferecia. Com a reestruturação não existe mais esta separação, não importa qual é o seu estilo, RSpec ou Shoulda, internamente você sempre usará o mesmo código para realizar os testes.

Desta forma, acabamos por ganhar muitas macros novas.

Enquanto na versão em RSpec isto já era algo comum:

describe Dog do
  it { should belong_to(:user) }
  it { should_not have_many(:fleas) }
end

Na sintaxe do Shoulda apenas possuíamos macros should_[alguma coisa] e quase nenhuma should_not_[alguma coisa]. Mas agora todas as macros possuem as duas opções, assim:

describe Dog do
  should_belong_to :user
  should_not_have_many :fleas
end

Além disso mais testes foram adicionados para garantir que problemas antigos não voltem para nos assombrar.

Para atualizar o Remarkable, execute no terminal (lembrando que no Windows não precisa usar o sudo):

gem sources -a http://gems.github.com
sudo gem install carlosbrando-remarkable

Ainda falta um logo e um site para o projeto. Alguém se habilita?

O (Comovente) Guia de Ruby do Why

wixl-9

Acabei de atualizar o livro com novas traduções e correções. Devido a minha falta de tempo, acabei demorando para aplicar alguns dos patches que me foram enviados.

Na maioria das vezes, os colaboradores são rápidos demais e várias pessoas corrigem o mesmo texto de formas diferentes, e isto complica um pouco na hora de aceitar uma atualização. Eu tenho de olhar arquivo por arquivo antes de decidir qual será aplicado. Mas isto é bom, porque garante uma maior qualidade à tradução, embora torne o processo um pouco mais lento.

O livro pode ser encontrado na url: http://why.nomedojogo.com. Também existe uma versão para impressão em http://why.nomedojogo.com/print.html.

A processo de tradução já foi finalizado, todo o livro já está em português. Ainda falta ajustar algumas imagens e formatações de texto, mas acredito que se conseguirmos mais colaboradores teremos o livro completo e finalizado até o fim do ano.

Quer ajudar? Comece lendo o livro e quando encontrar algo errado altere aqui.


8 Comentários


  1. Carlos, tem algumas tirinhas na versão para imprimir do livro que estão gigantes.

  2. Tem mesmo… precisamos corrigir.

  3. Carlos, usando o Remarkable, percebi algo aqui que não sei se é o comportamento esperado mesmo e eu que estou viajando ou se é um bug:

    Quando uso

    it {  should require_unique_attributes(:foo) }

    E rodo a spec, o teste falha com a mensagem

    Can’t find first MeuModel

    Isso significa que não consigo rodar minha spec se não houver nenhum objeto no banco de testes? Estranho isso!

  4. Cássio, isto é uma necessidade apenas para o require_unique_attributes.

    Não tem como o remarkable incluir automaticamente um registro no banco de dados, já que você tem uma série de validações. Então para ele conseguir se certificar que um registro é único, você já precisa ter pelo menos um no banco, para que ele pegue e tente gravar igual.

    Não sei se fui muito claro. Mas somente o require_unique_attributes depende de um registro já inserido no banco.

  5. Entendi. Nesse caso, acho que algo do tipo

    describe MeuModel do
      before do
        Factory(:meu_model)
      end
    
      it { should require_unique_attributes(:foo) }
    end

    deve resolver, né?

    Obrigado!

  6. Carlos,
    Comecei a ler o livro e percebi que está se usando travessão para underscore. Não seria melhor sublinhado!
    Parabéns a todos pela tradução.

  7. hmm… na verdade também não é sublinhado. Mas concordo que travessão também não é tão legal. Alguém tem outra sugestão?

Deixe um comentário