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

Returns a new instance of 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?”

Parameters:

  • field_type_class (String)

    field type (possible values: task, resource, assignment, constraint, project)

  • field_type (String)

    the field type we want to look up

Returns:

  • (String)

    if the field has an alias, return the alias

  • (nil)

    if the field does not 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`”

Parameters:

  • field_type_class (String)

    field type (possible values: task, resource, assignment, constraint, project)

  • field_alias (String)

    the alias we want to look up

Returns:

  • (String)

    if the alias has been found return the name of the underlying field

  • (nil)

    if the alias is not in use



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

Parameters:

  • id (Integer)

    resource ID

Returns:

  • (Resource)

    if the requested resource is found

  • (nil)

    if the requested resource is not found



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

Parameters:

  • unique_id (Integer)

    resource unique ID

Returns:

  • (Resource)

    if the requested resource is found

  • (nil)

    if the requested resource is not found



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

Parameters:

  • id (Integer)

    task ID

Returns:

  • (Task)

    if the requested task is found

  • (nil)

    if the requested task is not found



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

def get_task_by_id(id)
  @tasks_by_unique_id[id]
end

#get_task_by_unique_id(unique_id) ⇒ Task?

Retrieves the task with the matching unique_id attribute

Parameters:

  • unique_id (Integer)

    task unique ID

Returns:

  • (Task)

    if the requested task is found

  • (nil)

    if the requested task is not found



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