Peepcode sponsors akitaonrails.com Locaweb sponsors akitaonrails.com

Rails 1.2.2: SQLite3, gems e recursos no singular

AkitaOnRails / 07.Feb.2007 at 03:25am

Ontem pela manhã eu vi que o Rails 1.2.2 havia sido disponibilizado via gems e postei aqui. Fiz a atualização e coloquei os changelogs no blog porque procurei pela blogosfera e não achei nada a respeito. Até o Thiago notou que no repositório de desenvolvimento nem havia sido liberada a tag 1.2.2.

À tarde, saiu o post do DHH explicando do que se tratava. Segue a tradução (mais uma …) falando sobre isso. Mais abaixo Chad dá uma dica para quem tiver problemas com o novo RubyGems (que o Rails 1.2.2 precisa a partir de agora).

Tradução/Fonte: David/Riding Rails

É hora para outra pequena atualização ao Rails 1.2. Isso foi principalmente por uma mudança na API do SQLite entre as versões 3.3.7 e 3.3.8 que deixou o adaptador de banco de dados do Rails morto. Mas com este lançamento e o gem sqlite3-ruby do Jamis Buck na versão 1.2.1, estamos de volta aos negócios com todas as versões do SQLite3.

Segundo, agora estamos dependendo do RubyGems 0.9.0 e superiores. Isso vai corrigir as mensagens de obsolescência para require_gem (o novo método é apenas gem) e vai restaurar o funcionamento do rake rails:freeze:gems. Então certifique-se de atualizar para o último RubyGems antes de instalar. Isso é feito com “gem update—system”.

Finalmente, decidimos incluir alguns brindes junto com as correções descritas acimas e o resto dos reparos de bugs nesse lançamento. Recursos singulares, por exemplo, lhe permite modelar recursos singletons dentro do escopo de um domínio. O exemplo comum é user.application.com/account. Isso agora é modelado com:

map.resource :account

... e as rotas de acordo:

GET /account => AccountController#show GET /account/new => AccountController#new GET /account;edit => AccountController#edit POST /account => AccountController#create PUT /account => AccountController#update DELETE /account => AccountController#destroy

Note que o controller também é no singular, não plural como é normalmente o caso quando se usa map.resources.

Também trouxemos a melhoria à :conditions no Active Record que lhe permite passar ranges, convertendo-os automaticamente para cláusulas BETWEEN, assim:

Student.find(:all, :conditions => { :grade => 9..12 })

... que se torna:

"SELECT * FROM students WHERE grade BETWEEN 9 AND 12"

Essa é uma atualização recomendada para todos rodando 1.2.x (e um lembrete que se você não estiver ainda no Rails 1.2.x, não terá correções de bugs automaticamente e terá que fazer backport deles manualmente). É uma substituição sem contra-indicações que não exige nenhuma modificação às aplicações que já rodam em 1.2.x.

Aproveitem!

E caso vocês estejam tendo problemas instalando gems …

Tradução/Fonte: Chad/Riding Rails

Um número significativo de desenvolvedores Rails relataram problemas instalando gems com a versão atualizada do RubyGems. Se estiver passando por problemas que se parecem com isso:

$ gem update sqlite3-ruby Updating installed gems… ERROR: While executing gem … (NoMethodError) undefined method `refresh’ for #

... você deve remover se arquivo source_cache local. Esse é o arquivo que faz cache localmente de qualquer metadata de gem do servidor gem para evitar ter que baixar tudo de novo toda vez que executa o comando gem.

Para descobrir o local desse arquivo em seu sistema, rode o seguinte comando:

$ gem env RubyGems Environment: - VERSION: 0.9.2 (0.9.2) - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8 - GEM PATH: - /usr/local/lib/ruby/gems/1.8 - REMOTE SOURCES: - http://gems.rubyforge.org

O arquivo source_cache deve estar no caminho chamado “GEM PATH”. Removendo esse arquivo os problemas relacionados a ele devem desaparecer.

Essa solução é um pulo do gato por enquanto até a equipe do RubyGems sair com uma correção.

1 Comment

Sqlite3 eh muito bom para servidores com pouca memoria…

e melhor ainda para testes usando SQLITE3:Memory

a database.yml seria assim:

test: adapter: sqlite3 database: ”:memory:”

chaga a ser quase 3 vezes mais rapido que PostgreSQL

nao esqueca de fazer ”./script/plugin install memory_test_fix”
source: http://nubyonrails.topfunky.com/articles/2006/06/01/san-francisco-sqlite3-memory-tests-asteroids
Frederico

Leave a Comment