class Bumbleworks::Process
Attributes
id[R]
wfid[R]
Public Class Methods
all(options = {})
click to toggle source
# File lib/bumbleworks/process.rb, line 14 def all(options = {}) ids(options).map do |wfid| new(wfid) end end
count()
click to toggle source
# File lib/bumbleworks/process.rb, line 28 def count ids.count end
ids(options = {})
click to toggle source
# File lib/bumbleworks/process.rb, line 20 def ids(options = {}) wfids = Bumbleworks.dashboard.process_wfids wfids.reverse! if options[:reverse] limit = options[:limit] || wfids.count offset = options[:offset] || 0 wfids[offset, limit] end
new(wfid)
click to toggle source
# File lib/bumbleworks/process.rb, line 33 def initialize(wfid) @id = wfid end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/bumbleworks/process.rb, line 50 def <=>(other) unless other.is_a?(self.class) raise ArgumentError, "comparison of Bumbleworks::Process with #{other.class} failed" end wfid <=> other.wfid end
cancel!(options = {})
click to toggle source
# File lib/bumbleworks/process.rb, line 140 def cancel!(options = {}) Bumbleworks.cancel_process!(wfid, options) end
definition_name()
click to toggle source
# File lib/bumbleworks/process.rb, line 148 def definition_name root_ruote_expression.attribute('name') || root_ruote_expression.attribute_text end
entity_storage_workitem()
click to toggle source
Calls superclass method
Bumbleworks::WorkitemEntityStorage#entity_storage_workitem
# File lib/bumbleworks/process.rb, line 65 def entity_storage_workitem super(entity_workitem) end
entity_workitem()
click to toggle source
# File lib/bumbleworks/process.rb, line 57 def entity_workitem @entity_workitem ||= if workitems.map(&:entity_fields).uniq.length <= 1 workitems.first else raise EntityConflict end end
errors()
click to toggle source
# File lib/bumbleworks/process.rb, line 79 def errors @errors ||= Bumbleworks.dashboard.context.storage.get_many('errors', [wfid]).map { |err| Bumbleworks::Process::ErrorRecord.new( ::Ruote::ProcessError.new(err) ) } end
expression_at_position(position)
click to toggle source
# File lib/bumbleworks/process.rb, line 75 def expression_at_position(position) expressions.detect { |exp| exp.expid == position } end
expressions()
click to toggle source
# File lib/bumbleworks/process.rb, line 69 def expressions @expressions ||= ruote_expressions.map { |rexp| Bumbleworks::Expression.new(rexp) } end
is_waiting_for?(event)
click to toggle source
# File lib/bumbleworks/process.rb, line 132 def is_waiting_for?(event) subscribed_events.include? event.to_s end
kill!(options = {})
click to toggle source
# File lib/bumbleworks/process.rb, line 136 def kill!(options = {}) Bumbleworks.kill_process!(wfid, options) end
leaves()
click to toggle source
# File lib/bumbleworks/process.rb, line 87 def leaves @leaves ||= ruote_expressions.inject([]) { |a, exp| a.select { |e| ! exp.ancestor?(e.fei) } + [ exp ] }.map { |leaf| Bumbleworks::Expression.new(leaf) } end
method_missing(method, *args)
click to toggle source
Calls superclass method
# File lib/bumbleworks/process.rb, line 153 def method_missing(method, *args) ps = process_status if ps.respond_to?(method) return ps.send(method, *args) end super end
process_status()
click to toggle source
# File lib/bumbleworks/process.rb, line 144 def process_status @process_status ||= Bumbleworks.dashboard.process(id) end
reload()
click to toggle source
# File lib/bumbleworks/process.rb, line 37 def reload (instance_variables - [:@id]).each do |memo| instance_variable_set(memo, nil) end self end
running?()
click to toggle source
# File lib/bumbleworks/process.rb, line 44 def running? !process_status.nil? end
schedules()
click to toggle source
# File lib/bumbleworks/process.rb, line 111 def schedules @schedules ||= Bumbleworks.dashboard.schedules(id).map { |schedule_hash| Bumbleworks::Schedule.new(schedule_hash) } end
subscribed_events()
click to toggle source
# File lib/bumbleworks/process.rb, line 128 def subscribed_events all_subscribed_tags[:global] end
tasks()
click to toggle source
# File lib/bumbleworks/process.rb, line 99 def tasks @tasks ||= Bumbleworks::Task.for_process(wfid) end
trackers()
click to toggle source
# File lib/bumbleworks/process.rb, line 103 def trackers @trackers ||= Bumbleworks.dashboard.get_trackers.select { |tid, attrs| attrs['msg']['fei'] && attrs['msg']['fei']['wfid'] == id }.map { |tid, original_hash| Bumbleworks::Tracker.new(tid, original_hash) } end
workitems()
click to toggle source
# File lib/bumbleworks/process.rb, line 95 def workitems @workitems ||= leaves.map(&:workitem) end
Private Instance Methods
root_ruote_expression()
click to toggle source
# File lib/bumbleworks/process.rb, line 163 def root_ruote_expression @root_ruote_expression ||= ruote_expressions.first end
ruote_expressions()
click to toggle source
# File lib/bumbleworks/process.rb, line 167 def ruote_expressions @ruote_expressions ||= begin context = Bumbleworks.dashboard.context raw_expressions = context.storage.get_many('expressions', [wfid]) raw_expressions.collect { |e| ::Ruote::Exp::FlowExpression.from_h(context, e) }.sort_by { |e| e.fei.expid } end end