Novo membro na Familia
Janeiro 4, 2008
Ontem fui com a minha esposa ateh o Mercado Central daquih de BH, e encontramos com uma *pequena* e lindinha criatura, que resolvemos adotar!
Ainda nao tenho um nome para chama-la, mas por enquanto, (ateh que minha esposa decida o nome dela), tenho me contentado em chama-la de “Pretinha”…
BH Coding Dojo: Nossa primeira reuniao!
Janeiro 4, 2008
Entao, conforme jah anunciado pelo Ronaldo, tah marcado pra dia 19/01/2008, (das 10:00 as 13:00hs), a primeira reuniao do Dojo-BH!
Se voce eh programador e, alem de trabalhar, se diverte programando, venha participar da nossa primeira reuniao!
Nos encontramos lah!
acts_as_state_machine: Gerenciando estados de um Model Rails
Dezembro 11, 2007
Acts as State Machine eh um plugin do Rails que visa facilitar o gerenciamento de estados de um dado model ActiveRecord, implementando assim uma Maquina de Estado Finito. O acts_as_state_machine carrega o conceito de eventos. Que sao blocos de codigo responsaveis pelas transicoes de um estado do Model para o outro. Suponhamos, por exemplo, que voce queira controlar os estados das tarefas que voce irah realizar durante um dia. Com o acts_as_state_machine voce poderia ter algo parecido com o seguinte:
class Tarefa < ActiveRecord::Base
# Inicialmente a Tarefa estarah no estado 'Pendente'
acts_as_state_machine :initial => :pendente
state :pendente
state :iniciada, :enter => Proc.new {|o| Mailer.send_notice(o)}
state :concluida
state :cancelada
# No evento 'iniciar' eh realizada a transicao do estado 'pendente' para 'iniciada'
event :iniciar do
transitions :from => :pendente, :to => :iniciada
end
event :concluir do
transitions :from => :iniciada, :to => :concluida
end
event :cancelar do
transitions :from => :pendente, :to => :cancelada
end
end
Para cada estado, um metodo “<nomedoestado>?” serah criado, e para cada evento, um metodo “<nomedoevento>!” serah criado:
t = Tarefa.create # Cria a tarefa com seu estado inicial... t.state # => "pendente" t.iniciar! # Envia notificacao por email, e muda estado da Tarefa para "iniciada" t.iniciada? # => true # ... t.concluir! # Muda o estado da tarefa para "Concluida"
Como voce pode ver no codigo de exemplo, quando a nossa Tarefa mudar para o estado ‘iniciada’, (em consequencia da chamada ao metodo do evento ‘iniciar’), serah enviada uma notificacao por email. Isso eh feito por meio daquela Proc que foi passada como uma funcao de callback do estado :iniciada. Nos mostrando que temos a flexibilidade de fazer qualquer coisa na mudanca de um estado para o outro. Alih, no lugar de um bloco de codigo, pode ser passado um simbolo, com o nome de um metodo de instancia do model.
Instalacao
Para quem jah instalou um plugin Rails, instalar o acts_as_state_machine nao tem segredo algum! Na raiz da tua aplicacao Rails, digite:
./script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk/
Daih em diante eh soh usar!
Minas on Rails ‘07: So’ mais um Post Mortem
Dezembro 4, 2007
O nosso primeiro Minas on Rails passou, mas muitas coisas boas ficaram!
Primeiro a lembranca do que rolou por aquelas bandas…Segundo aquele gostinho de “Quero mais!”…
Outra coisa boa que ficou foi a vontade insana de contribuir mais e aumentar minha participacao na comunidade…Espero que essa vontade continue e que esse blog ajude a satisfaze-la!