domingo, 11 de janeiro de 2009

ActsAsPoll – meu primeiro plugin para Rails

1

Galera é com muita felicidade que comunico a todos que acabei de publicar no github, meu primeiro plugin, o ActsAsPoll, ele está bem simples, e provavelmente não está bem escrito, por isso ele esta disponivel para quem quiser ajudar no desenvolvimento do mesmo.

O que ele faz?
Esse plugin cria enquetes para um site em Rails, contendo a votação, e uma tela de resultado usando AJAX.

Como se usa?

Para utiliza-lo faça o download do github usando o comando


script/plugin install git://github.com/fellix/acts_as_poll.git


assim está instalado o plugin na sua aplicação, para utilizado você precisará gerar os arquivos principais utilizando o gerador poll, bem simples de se criar basta utilizar o comando:


script/generate poll poll


o primerio parametro e o generator poll que vem junto com o plugin, e o segundo argumento e o nome que será utilizado por migrações, models, controllers, etc. Executando esse comando serão criados alguns arquivos:


  • 2 migrações, uma para a classe Poll, e outra para a classe PollOption

  • 2 models, cada um correspondente a cada migração

  • 1 controller, que vai gerenciar a votação via AJAX

  • 2 partials, na pasta shared, que se não existir será criada. Uma delas monta o formulário de votação, e o outro mostra o resultado na tela.

  • E por ultimo 1 helper na pasta app/helpers, PollHelper, que conterá um metodo de ajuda que renderizará o partial que monta o formulário de votação.


Por enquanto o plugin não contem a parte de administração e cadastro de enquetes, mas está nos planos, caso alguém queira ajudar, essa é a hora :).
Com esse material você já pode usar a enquete, como citei anteriormente ele usa AJAX, certifique-se que no seu application.html.erb possui a tag


javascript_include_tag :defaults


e em alguma view que você queira mostrar a enquete pasta chamar o metodo helper poller e passar como parametro o argumento uma variavel do tipo Poll, e ele montará um formulário para votação.
Também é possível utilizar os metodos do ActiveRecord como por exemplo:


poller(Poll.find(1))


assim teria montada a enquete com o ID 1 no sua página. Inicialmente está bem simples, pretendo melhorar mais tarde, a ideia principal é deixa-lo simples, ainda há diversas ideias a serem colocadas no projeto, como por exemplo um gerador randomico, que pegaria uma enquete randomica a cada request, essa pode ser para um futuro update.

1 comentários:

Patrick Espake disse...

Legal, ótima iniciativa. Vou tentar usar aqui.

Abraço.

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting