Module: Libis::Workflow::Status
- Included in:
- Base::WorkItem
- Defined in:
- lib/libis/workflow/status.rb
Constant Summary collapse
- STATUS =
{ NOT_STARTED: 0, STARTED: 1, DONE: 2, ASYNC_WAIT: 3, ASYNC_HALT: 4, FAILED: 5 }
Instance Method Summary collapse
-
#check_status(state, task = nil) ⇒ Boolean
Check status of the object.
-
#compare_status(state, task = nil) ⇒ Integer
Compare status with current status of the object.
-
#status(task = nil) ⇒ Symbol
Get last known status symbol for a given task.
-
#status=(x) ⇒ Object
Changes the status of the object.
-
#status_label(task = nil) ⇒ String
Gets the last known status label of the object.
Instance Method Details
#check_status(state, task = nil) ⇒ Boolean
Check status of the object.
46 47 48 |
# File 'lib/libis/workflow/status.rb', line 46 def check_status(state, task = nil) self.status(task) == state end |
#compare_status(state, task = nil) ⇒ Integer
Compare status with current status of the object.
54 55 56 |
# File 'lib/libis/workflow/status.rb', line 54 def compare_status(state, task = nil) STATUS[self.status(task)] <=> STATUS[state] end |
#status(task = nil) ⇒ Symbol
Get last known status symbol for a given task
27 28 29 30 |
# File 'lib/libis/workflow/status.rb', line 27 def status(task = nil) entry = status_entry(task) status_symbol(entry[:status]) rescue :NOT_STARTED end |
#status=(x) ⇒ Object
Changes the status of the object. The status changed is logged in the status_log with the current timestamp.
17 18 19 20 21 |
# File 'lib/libis/workflow/status.rb', line 17 def status=(x) s, task = x self.add_status_log(task: task, status: s) self.save end |
#status_label(task = nil) ⇒ String
Gets the last known status label of the object.
36 37 38 39 |
# File 'lib/libis/workflow/status.rb', line 36 def status_label(task = nil) entry = self.status_entry(task) "#{entry[:task] rescue nil}#{entry[:status].capitalize rescue nil}" end |