module FlowChart::ClassMethods

Attributes

flowprocessor[R]
workprocessor[R]

Public Instance Methods

flowchart(&block) click to toggle source
# File lib/flow_chart.rb, line 14
def flowchart(&block)
  @flowprocessor = FlowChart::FlowProcessor.new(&block)
  @flowprocessor.flowstates.values.each do |flowstate|
    flowstate_name = flowstate.flowstatename
    # Helper Methods to verify is this is the current_state, example object.uploaded? , object.closed? etc
    define_method "#{flowstate_name}?" do
      flowstate_name == current_state.flowstatename
    end
  end
  
  #Driver Instance Methods for each evet for triggering the action action!
  @flowprocessor.actions.keys.each do |key|
    define_method "#{key}" do
      process_action(key,:save_object=>false)
    end
    
    define_method "#{key}!" do
      process_action(key,:save_object=>true)
    end
  end
end
workchart(&block) click to toggle source
# File lib/flow_chart.rb, line 36
def workchart(&block)
  @workprocessor = FlowChart::WorkProcessor.new(&block)

  #Driver Instance Methods for each evet for triggering the delegation action!
  @workprocessor.delegate_actions.keys.each do |key|
    define_method "#{key}" do |assigned_to,assigned_by|
      process_delegate_action(key,assigned_to,assigned_by,:save_object=>false)
    end
    
    define_method "#{key}!" do |assigned_to,assigned_by|
      process_delegate_action(key,assigned_to,assigned_by,:save_object=>true)
    end
  end
end