Sha256: c80a05d81f5fc30bcc101d9d279c17239ae66f4cd56ea90aa7f06e6cb303f5d1
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
module MPXJ # Represents a task in a project plan class Task < Container include MPXJ::TaskMethods attr_reader :assignments attr_reader :predecessors attr_reader :successors attr_reader :child_tasks def initialize(parent_project, attribute_values) super(parent_project, attribute_values) @assignments = [] @child_tasks = [] process_relations process_hierarchy end # Retrieve the parent task of this task # # @return [Task] if this task is the child of another task # @return [nil] if this is the root task def parent_task parent_project.get_task_by_unique_id(attribute_values['parent_task_unique_id']&.to_i) end # Retrieve the calendar used by this task # # @return [Calendar] task calendar # @return [nil] if this task does not have a calendar assigned def calendar parent_project.get_calendar_by_unique_id(attribute_values['calendar_unique_id']&.to_i) end private def process_relations @predecessors = process_relation_list(attribute_values["predecessors"]) @successors = process_relation_list(attribute_values["successors"]) end def process_relation_list(list) result = [] if list list.each do |attribute_values| result << Relation.new(self, attribute_values) end end result end def process_hierarchy if parent_task parent_task.child_tasks << self else parent_project.child_tasks << self end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mpxj-13.7.0 | lib/mpxj/task.rb |