class Teneo::DataModel::StageWorkflow
noinspection ALL
Constants
- STAGE_LIST
Public Class Methods
from_hash(hash, id_tags = [:name])
click to toggle source
Calls superclass method
Teneo::DataModel::Base::from_hash
# File lib/teneo/data_model/stage_workflow.rb, line 38 def self.from_hash(hash, id_tags = [:name]) params = hash.delete(:parameters) tasks = hash.delete(:tasks) item = super(hash, id_tags) if params item.parameter_refs.clear params.each do |name, definition| item.parameter_refs << Teneo::DataModel::ParameterRef.from_hash(definition.merge(name: name, with_param_refs_id: item.id, with_param_refs_type: item.class.name)) end item.save! end if tasks item.stage_tasks.clear tasks.each_with_index do |task, index| task[:stage_workflow_id] = item.id task[:position] = index + 1 item.stage_tasks << Teneo::DataModel::StageTask.from_hash(task) end item.save! end item end
Public Instance Methods
parameter_def(param_name)
click to toggle source
# File lib/teneo/data_model/stage_workflow.rb, line 22 def parameter_def(param_name) ref = parameter_refs.find_by(name: param_name) return nil unless ref delegation = ref.delegation target, name = delegation.split(/[,\s]+/).first.split('#') task = tasks.find_by(name: target) stage_task = stage_tasks.find_by(task_id: task.id) result = task.parameter_defs.find_by(name: name)&.to_hash result.delete(:with_parameters_type) result.delete(:with_parameters_id) if (param_value = stage_task.parameter_values.find_by(name: name)) result[:default] = param_value.value end result.merge(ref.to_hash.select {|k,_| [:description, :help, :default].include?(k)}) end