Class: MPXJ::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/mpxj/project.rb

Overview

Represents a project plan

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_name, zone) ⇒ Project



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/mpxj/project.rb', line 13

def initialize(file_name, zone)
  @resources_by_unique_id = {}
  @tasks_by_unique_id = {}

  @resources_by_id = {}
  @tasks_by_id = {}

  @all_resources = []
  @all_tasks = []
  @all_assignments = []
  @child_tasks = []

  @zone = zone

  @field_by_alias = {}
  @alias_by_field = {}

  file = File.read(file_name)
  json_data = JSON.parse(file)
  process_custom_fields(json_data)
  process_properties(json_data)
  process_resources(json_data)
  process_tasks(json_data)
  process_assignments(json_data)
end

Instance Attribute Details

#all_assignmentsObject (readonly)

Returns the value of attribute all_assignments.



10
11
12
# File 'lib/mpxj/project.rb', line 10

def all_assignments
  @all_assignments
end

#all_resourcesObject (readonly)

Returns the value of attribute all_resources.



7
8
9
# File 'lib/mpxj/project.rb', line 7

def all_resources
  @all_resources
end

#all_tasksObject (readonly)

Returns the value of attribute all_tasks.



8
9
10
# File 'lib/mpxj/project.rb', line 8

def all_tasks
  @all_tasks
end

#child_tasksObject (readonly)

Returns the value of attribute child_tasks.



9
10
11
# File 'lib/mpxj/project.rb', line 9

def child_tasks
  @child_tasks
end

#propertiesObject (readonly)

Returns the value of attribute properties.



6
7
8
# File 'lib/mpxj/project.rb', line 6

def properties
  @properties
end

#zoneObject (readonly)

Returns the value of attribute zone.



11
12
13
# File 'lib/mpxj/project.rb', line 11

def zone
  @zone
end

Instance Method Details

#get_alias_by_field(field_type_class, field_type) ⇒ String?

For a particular entity type (task, resource, and so on), retrieve the alias used by the supplied field. For example this allows the caller to answer the question “does the task field Text1 have an alias?”



98
99
100
101
102
103
# File 'lib/mpxj/project.rb', line 98

def get_alias_by_field(field_type_class, field_type)
  hash = @alias_by_field[field_type_class]
  if hash
    hash[field_type]
  end
end

#get_field_by_alias(field_type_class, field_alias) ⇒ String?

For a particular entity type (task, resource, and so on), retrieve the field which has the supplied alias. For example this allows the caller to answer the question “which task field is using the alias ‘Activity ID`”



83
84
85
86
87
88
# File 'lib/mpxj/project.rb', line 83

def get_field_by_alias(field_type_class, field_alias)
  hash = @field_by_alias[field_type_class]
  if hash
    hash[field_alias]
  end
end

#get_resource_by_id(id) ⇒ Resource?

Retrieves the resource with the matching id attribute



62
63
64
# File 'lib/mpxj/project.rb', line 62

def get_resource_by_id(id)
  @resources_by_id[id]
end

#get_resource_by_unique_id(unique_id) ⇒ Resource?

Retrieves the resource with the matching unique_id attribute



44
45
46
# File 'lib/mpxj/project.rb', line 44

def get_resource_by_unique_id(unique_id)
  @resources_by_unique_id[unique_id]
end

#get_task_by_id(id) ⇒ Task?

Retrieves the task with the matching id attribute



71
72
73
# File 'lib/mpxj/project.rb', line 71

def get_task_by_id(id)
  @tasks_by_id[id]
end

#get_task_by_unique_id(unique_id) ⇒ Task?

Retrieves the task with the matching unique_id attribute



53
54
55
# File 'lib/mpxj/project.rb', line 53

def get_task_by_unique_id(unique_id)
  @tasks_by_unique_id[unique_id]
end