Skip to content

Instantly share code, notes, and snippets.

@bowsersenior
Created September 2, 2010 23:40
Show Gist options
  • Save bowsersenior/563153 to your computer and use it in GitHub Desktop.
Save bowsersenior/563153 to your computer and use it in GitHub Desktop.
module Workflow
module MongoidInstanceMethods
def load_workflow_state
self.workflow_state
end
def persist_workflow_state(new_value)
self.workflow_state = new_value
save!
end
end
def self.included(klass)
klass.send :include, WorkflowInstanceMethods
klass.extend WorkflowClassMethods
if Object.const_defined?(:ActiveRecord) && klass < ActiveRecord::Base
klass.send :include, ActiveRecordInstanceMethods
klass.before_validation :write_initial_state
elsif Object.const_defined?(:Remodel) && klass < Remodel::Entity
klass.send :include, RemodelInstanceMethods
elsif Object.const_defined?(:Mongoid) && klass < Mongoid::Document
klass.send :field, :workflow_state
klass.send :include, MongoidInstanceMethods
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment