class Dynflow::Flows::Abstract

Public Class Methods

decode(data) click to toggle source
# File lib/dynflow/flows/abstract.rb, line 41
def self.decode(data)
  if data.is_a? Integer
    Flows::Atom.new(data)
  else
    kind, *subflows = data
    Registry.decode(kind).new(subflows.map { |subflow| self.decode(subflow) })
  end
end
new() click to toggle source
# File lib/dynflow/flows/abstract.rb, line 8
def initialize
  raise 'cannot instantiate Flows::Abstract'
end
new_from_hash(hash) click to toggle source
# File lib/dynflow/flows/abstract.rb, line 36
def self.new_from_hash(hash)
  check_class_matching hash
  new(hash[:flows].map { |flow_hash| from_hash(flow_hash) })
end

Public Instance Methods

all_step_ids() click to toggle source
# File lib/dynflow/flows/abstract.rb, line 28
def all_step_ids
  raise NotImplementedError
end
empty?() click to toggle source
# File lib/dynflow/flows/abstract.rb, line 16
def empty?
  self.size == 0
end
flatten!() click to toggle source
# File lib/dynflow/flows/abstract.rb, line 32
def flatten!
  raise NotImplementedError
end
includes_step?(step_id) click to toggle source
# File lib/dynflow/flows/abstract.rb, line 24
def includes_step?(step_id)
  self.all_step_ids.any? { |s| s == step_id }
end
size() click to toggle source
# File lib/dynflow/flows/abstract.rb, line 20
def size
  raise NotImplementedError
end
to_hash() click to toggle source
# File lib/dynflow/flows/abstract.rb, line 12
def to_hash
  { :class => self.class.name }
end