module OscMacheteRails::Workflow

A plugin to maintain a workflow for Jobs.

Public Instance Methods

has_machete_workflow_of(jobs_active_record_relation_symbol) click to toggle source

Registers a workflow relationship and sets up a hook to additional builder methods.

@param [Symbol] jobs_active_record_relation_symbol The Job Identifier

# File lib/osc_machete_rails/workflow.rb, line 8
def has_machete_workflow_of(jobs_active_record_relation_symbol)
  # yes, this is magic mimicked from http://guides.rubyonrails.org/plugins.html
  #  and http://yehudakatz.com/2009/11/12/better-ruby-idioms/
  cattr_accessor :jobs_active_record_relation_symbol
  self.jobs_active_record_relation_symbol = jobs_active_record_relation_symbol

  # separate modules to group common methods for readability purposes
  # both builder methods and status methods need the jobs relation so
  # we include that first
  self.send :include, OscMacheteRails::Workflow::JobsRelation
  self.send :include, OscMacheteRails::Workflow::BuilderMethods
  self.send :include, OscMacheteRails::Workflow::StatusMethods
end