Removendo plugins instalados como svn:externals no Rails
24/01/08
Se você utiliza plugins no Rails em um projeto versionado com Subversion, provavelmente já deve ter visto que é possível fazer tal instalação utilizando o svn:externals, através do argumento -x.
script/plugin install -x http://code.bitsweat.net/svn/object_transactions/
A diferença é que toda vez que você fizer o checkout de seu projeto, o Subversion irá buscar a última versão disponível no repositório que você adicionou. Isso é uma excelente maneira de deixar o plugin sempre atualizado. Mas e se por algum motivo você não precisa mais do plugin e quer removê-lo?
Você terá que fazer isso através de um comando do Subversion. Vá ao diretório de plugins e execute as linhas abaixo. Isso irá abrir o arquivo com a lista de repositórios externos do seu projeto. Neste exemplo editaremos tal arquivo usando o Vi.
$ cd vendor/plugins
$ svn propedit svn:externals . --editor-cmd vi

Vá até a linha do repositório e pressione CTRL + → para removê-lo. Para salvar o arquivo, pressione ESC, digite :wq! e, então, pressione Enter. Remova o diretório do plugin com o comando rm -rf object_transactions.

Agora, basta fazer o commit de seu projeto!
- Permalink
- Trackback
- Comentários (6)
- Ao som de: The Offspring – (Can't Get My) Head Around You / Next to You
Recebendo dados do usuário: attr_accessible e attr_protected
26/12/07
O Ruby on Rails permite que você defina os valores dos atributos de um objeto ActiveRecord através dos métodos new e attributes. A esse tipo de atribuição é dado o nome mass assignment. Tal tipo de atribuição facilita muito na hora de instanciar um novo objeto, pois você não precisa fazer a atribuição individualmente. Veja um exemplo.
# the old way
user = User.new
user.login = "rox"
user.email = "rox@example.com"
user.admin = true
# the ruby way
user = User.new(:login => "rox", :email => "rox@example.com", :admin => true)
Os mais atentos acabaram de identificar uma enorme falha de segurança, pois posso definir o tipo de um usuário — admin, neste caso — por enviar o atributo admin no método params.
# the "do whatever you want" way
user = User.new(params[:user])
Se você teve um mínimo de preocupação com a segurança de seu aplicativo, deve ter chegado aos métodos attr_protected ou, melhor ainda, attr_accessible. Ambos estipulam quais atributos podem ser definidos através do mass assignment. A grande diferença entre eles é que o método attr_protected informa quais atributos são protegidos (não podem ser definidos), e o segundo trabalha no caminho contrário: você deve informar quais atributos podem ser definidos por mass assignment. Veja exemplos de como utilizar ambos os métodos.
class User < ActiveRecord::Base
# inform the attributes you want
# to protect
attr_protected :admin
end
class User < ActiveRecord::Base
# inform the attributes you want
# to allow mass assignment
attr_accessible :name, :login, :email
end
Apesar de ser mais trabalhoso, o método attr_accessible, por ser restritivo, é mais seguro. Eu fico com ele, e você?
Test-driven Development no Rails - Começando seu projeto com o pé direito
02/11/07
Estou para fazer isto a muito tempo, mas tinha esquecido. A apresentação que fiz no Treina Tom em setembro está disponível para download. Se preferir, pode assistir através do Slideshare.
- Permalink
- Trackback
- Comentários (1)
- Ao som de: No Use for a Name – Count Down
