Class: RailsWorkflow::Operation

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
OperationStatus, RailsWorkflow::Operations::Assignments, RailsWorkflow::Operations::DefaultRunner, RailsWorkflow::Operations::Dependencies
Defined in:
app/models/rails_workflow/operation.rb

Overview

Operation is a key building block for a Rails Workflow. This model is used to save operation meta data, describe relation with operation context etc.

Direct Known Subclasses

UserOperation

Constant Summary

Constants included from Status

Status::CANCELED, Status::DONE, Status::ERROR, Status::IN_PROGRESS, Status::NOT_STARTED, Status::ROLLBACK, Status::SKIPPED, Status::WAITING

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#managerObject



29
30
31
# File 'app/models/rails_workflow/operation.rb', line 29

def manager
  @manager ||= process.manager
end

Instance Method Details

#assigned_to?(user) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'app/models/rails_workflow/operation.rb', line 43

def assigned_to?(user)
  assignment && assignment == user
end

#can_be_continued_by?(user, current_operation) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
50
51
# File 'app/models/rails_workflow/operation.rb', line 47

def can_be_continued_by?(user, current_operation)
  waiting? &&
    assigned_to?(user) &&
    (current_operation.nil? || current_operation != self)
end

#can_be_started_by?(user) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
# File 'app/models/rails_workflow/operation.rb', line 39

def can_be_started_by?(user)
  waiting? && can_be_assigned?(user) && assignment.nil?
end

#instructionObject



25
26
27
# File 'app/models/rails_workflow/operation.rb', line 25

def instruction
  template.instruction
end

#waiting?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'app/models/rails_workflow/operation.rb', line 35

def waiting?
  status.in? Operation.user_ready_statuses
end