mpxj 8.3.5 → 8.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51aecd6f5f81c0804f6e2e44d46427761f79406f1f9c8a3189d02c3685ae9190
4
- data.tar.gz: 134469ea93c301e00f0c83e3f3bf1956c4eb6e59cb1baec33c37636817fa9a21
3
+ metadata.gz: b96d8b8871df9f9d1ebcba761a4443e795b8a79f92828ba1edc8a723373bff82
4
+ data.tar.gz: 154491b77109c5cb0b82e5da1e98650d4697340e2599d8246cd48be470a001cd
5
5
  SHA512:
6
- metadata.gz: 04c15e93465b770001354dafe4db51d9d8ff4fcd90b07689b96e5db5fc93c7f9376234ca79332a53000806f59cbd77c528a7b7e60cbd84632b20c397cc9c7e81
7
- data.tar.gz: 33d056b138fbceeab60ba58eecdc34fbc9956a5d52f17f7788fb0649a9046f744e2e152ebc9362ce7b45b0385f53e855f05742d929b22a3bcfc6e1ef45665912
6
+ metadata.gz: 864590f421defe62ec8444cfd977445e3a031c746f2cc23d86445d0ffb528e8c99c2a3432b50fb0bab1744a211441917e361e82af5120a225928f4fc5ccb7268
7
+ data.tar.gz: fd0b8f4eaf25061b2ff8ba1c788d3e9325b13c67c708cc48ed059d44cb16f1ffc9412424b32ba6400acf0f98c72705831cf95f7d225ab7f84555e67a270099ba
data/README.md CHANGED
@@ -1,125 +1,125 @@
1
- # MPXJ
2
-
3
- This gem allows a Ruby developer to work with a read-only view of project plans saved by a number of popular project planning applications.
4
- The work required to read data from these files is actually carried out by a [Java library](http://mpxj.sf.net), hence you will need Java installed
5
- and available on your path in order to work with this gem. Once the project data has been read from a file, a set of Ruby objects provides access to the
6
- structure of the project plan and its attributes.
7
-
8
- This gem only came about through the interest and support of Procore, who would love to [hear from you](https://www.procore.com/jobs/)
9
- if you're excited about working with Ruby and Rails.
10
-
11
- ## Installation
12
-
13
- Add this line to your application's Gemfile:
14
-
15
- gem 'mpxj'
16
-
17
- And then execute:
18
-
19
- $ bundle
20
-
21
- Or install it yourself as:
22
-
23
- $ gem install mpxj
24
-
25
- ## Changelog
26
- You'll find details of what has changed in this version [here](http://mpxj.sourceforge.net/changes-report.html).
27
-
28
- ## Supported File Types
29
-
30
- This gem uses the file name extension to determine what kind of project data it is reading. The list below shows the supported file extensions:
31
-
32
- * **MPP** - Microsoft Project MPP file
33
- * **MPT** - Microsoft Project template file
34
- * **MPX** - Microsoft Project MPX file
35
- * **XML** - Microsoft Project MSPDI (XML) file
36
- * **MPD** - Microsoft Project database (only when the gem is used on Microsoft Windows)
37
- * **PLANNER** - Gnome Planner
38
- * **XER** - Primavera XER file
39
- * **PMXML** - Primavera PMXML file
40
- * **PP** - Asta Powerproject file
41
-
42
- ## Example Code
43
-
44
- The following is a trivial example showing some basic task and resource details being queried from a project:
45
-
46
-
47
- project = MPXJ::Reader.read("project1.mpp")
48
-
49
- puts "There are #{project.all_tasks.size} tasks in this project"
50
- puts "There are #{project.all_resources.size} resources in this project"
51
-
52
- puts "The resources are:"
53
- project.all_resources.each do |resource|
54
- puts resource.name
55
- end
56
-
57
- puts "The tasks are:"
58
- project.all_tasks.each do |task|
59
- puts "#{task.name}: starts on #{task.start}, finishes on #{task.finish}, it's duration is #{task.duration}"
60
- end
61
-
62
- ## Entities
63
-
64
- The gem represents the project plan using the following classes, all of which reside in the MPXJ module.
65
-
66
- * Project
67
- * Resource
68
- * Task
69
- * Assignment
70
- * Relation
71
-
72
- A **Project** contains **Resource**s and **Task**s. Each **Resource** can be **Assigned** to one or more **Task**s.
73
- **Task**s can have dependencies between them which are represented as **Relation**s.
74
-
75
-
76
- ## Methods, Attributes and Data Types
77
-
78
- There are very few explicit methods implemented by the classes noted above. Access to the attributes of each class is provided via a `method_missing` handler which checks to see if the requested method name matches a known attribute name. If it does match, the attribute value is returned, otherwise the normal method missing exception is raised.
79
-
80
- The methods defined explicitly by these classes are:
81
-
82
- Project#all_resources
83
- Project#all_tasks
84
- Project#child_tasks
85
- Project#all_assignments
86
- Project#get_resource_by_unique_id(unique_id)
87
- Project#get_task_by_unique_id(unique_id)
88
- Project#get_resource_by_id(id)
89
- Project#get_task_by_id(id)
90
-
91
- Resource#parent_project
92
- Resource#assignments
93
-
94
- Task#parent_project
95
- Task#assignments
96
- Task#predecessors
97
- Task#successors
98
- Task#child_tasks
99
- Task#parent_task
100
-
101
- Assignment#parent_project
102
- Assignment#task
103
- Assignment#resource
104
-
105
- Each attribute supported by these classes is represented by appropriate data types:
106
-
107
- * String
108
- * Duration [https://rubygems.org/gems/duration](https://rubygems.org/gems/duration)
109
- * Time
110
- * Integer
111
- * Float
112
-
113
- The attributes supported by each class are listed here:
114
-
115
- * [Properties Attributes](docs/PropertiesAttributes.md)
116
- * [Task Attributes](docs/TaskAttributes.md)
117
- * [Resource Attributes](docs/ResourceAttributes.md)
118
- * [Assignment Attributes](docs/AssignmentAttributes.md)
119
- * [Relation Attributes](docs/RelationAttributes.md)
120
-
121
- ## Acknowledgements
122
- This gem includes functionality provided by POI [http://poi.apache.org](http://poi.apache.org/)
123
-
124
- This gem includes functionality provided by RTF Parser Kit [https://github.com/joniles/rtfparserkit](https://github.com/joniles/rtfparserkit/)
125
-
1
+ # MPXJ
2
+
3
+ This gem allows a Ruby developer to work with a read-only view of project plans saved by a number of popular project planning applications.
4
+ The work required to read data from these files is actually carried out by a [Java library](http://mpxj.sf.net), hence you will need Java installed
5
+ and available on your path in order to work with this gem. Once the project data has been read from a file, a set of Ruby objects provides access to the
6
+ structure of the project plan and its attributes.
7
+
8
+ This gem only came about through the interest and support of Procore, who would love to [hear from you](https://www.procore.com/jobs/)
9
+ if you're excited about working with Ruby and Rails.
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ gem 'mpxj'
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install mpxj
24
+
25
+ ## Changelog
26
+ You'll find details of what has changed in this version [here](http://mpxj.sourceforge.net/changes-report.html).
27
+
28
+ ## Supported File Types
29
+
30
+ This gem uses the file name extension to determine what kind of project data it is reading. The list below shows the supported file extensions:
31
+
32
+ * **MPP** - Microsoft Project MPP file
33
+ * **MPT** - Microsoft Project template file
34
+ * **MPX** - Microsoft Project MPX file
35
+ * **XML** - Microsoft Project MSPDI (XML) file
36
+ * **MPD** - Microsoft Project database (only when the gem is used on Microsoft Windows)
37
+ * **PLANNER** - Gnome Planner
38
+ * **XER** - Primavera XER file
39
+ * **PMXML** - Primavera PMXML file
40
+ * **PP** - Asta Powerproject file
41
+
42
+ ## Example Code
43
+
44
+ The following is a trivial example showing some basic task and resource details being queried from a project:
45
+
46
+
47
+ project = MPXJ::Reader.read("project1.mpp")
48
+
49
+ puts "There are #{project.all_tasks.size} tasks in this project"
50
+ puts "There are #{project.all_resources.size} resources in this project"
51
+
52
+ puts "The resources are:"
53
+ project.all_resources.each do |resource|
54
+ puts resource.name
55
+ end
56
+
57
+ puts "The tasks are:"
58
+ project.all_tasks.each do |task|
59
+ puts "#{task.name}: starts on #{task.start}, finishes on #{task.finish}, it's duration is #{task.duration}"
60
+ end
61
+
62
+ ## Entities
63
+
64
+ The gem represents the project plan using the following classes, all of which reside in the MPXJ module.
65
+
66
+ * Project
67
+ * Resource
68
+ * Task
69
+ * Assignment
70
+ * Relation
71
+
72
+ A **Project** contains **Resource**s and **Task**s. Each **Resource** can be **Assigned** to one or more **Task**s.
73
+ **Task**s can have dependencies between them which are represented as **Relation**s.
74
+
75
+
76
+ ## Methods, Attributes and Data Types
77
+
78
+ There are very few explicit methods implemented by the classes noted above. Access to the attributes of each class is provided via a `method_missing` handler which checks to see if the requested method name matches a known attribute name. If it does match, the attribute value is returned, otherwise the normal method missing exception is raised.
79
+
80
+ The methods defined explicitly by these classes are:
81
+
82
+ Project#all_resources
83
+ Project#all_tasks
84
+ Project#child_tasks
85
+ Project#all_assignments
86
+ Project#get_resource_by_unique_id(unique_id)
87
+ Project#get_task_by_unique_id(unique_id)
88
+ Project#get_resource_by_id(id)
89
+ Project#get_task_by_id(id)
90
+
91
+ Resource#parent_project
92
+ Resource#assignments
93
+
94
+ Task#parent_project
95
+ Task#assignments
96
+ Task#predecessors
97
+ Task#successors
98
+ Task#child_tasks
99
+ Task#parent_task
100
+
101
+ Assignment#parent_project
102
+ Assignment#task
103
+ Assignment#resource
104
+
105
+ Each attribute supported by these classes is represented by appropriate data types:
106
+
107
+ * String
108
+ * Duration [https://rubygems.org/gems/duration](https://rubygems.org/gems/duration)
109
+ * Time
110
+ * Integer
111
+ * Float
112
+
113
+ The attributes supported by each class are listed here:
114
+
115
+ * [Properties Attributes](docs/PropertiesAttributes.md)
116
+ * [Task Attributes](docs/TaskAttributes.md)
117
+ * [Resource Attributes](docs/ResourceAttributes.md)
118
+ * [Assignment Attributes](docs/AssignmentAttributes.md)
119
+ * [Relation Attributes](docs/RelationAttributes.md)
120
+
121
+ ## Acknowledgements
122
+ This gem includes functionality provided by POI [http://poi.apache.org](http://poi.apache.org/)
123
+
124
+ This gem includes functionality provided by RTF Parser Kit [https://github.com/joniles/rtfparserkit](https://github.com/joniles/rtfparserkit/)
125
+
@@ -1,162 +1,162 @@
1
- # Assignment Attributes
2
-
3
- Assignment#actual_cost
4
- Assignment#actual_finish
5
- Assignment#actual_overtime_cost
6
- Assignment#actual_overtime_work
7
- Assignment#actual_overtime_work_protected
8
- Assignment#actual_start
9
- Assignment#actual_work
10
- Assignment#actual_work_protected
11
- Assignment#acwp
12
- Assignment#assignment_delay
13
- Assignment#assignment_resource_guid
14
- Assignment#assignment_task_guid
15
- Assignment#assignment_units
16
- Assignment#baseline1_budget_cost
17
- Assignment#baseline1_budget_work
18
- Assignment#baseline1_cost
19
- Assignment#baseline1_finish
20
- Assignment#baseline1_start
21
- Assignment#baseline1_work
22
- ...
23
- Assignment#baseline10_budget_cost
24
- Assignment#baseline10_budget_work
25
- Assignment#baseline10_cost
26
- Assignment#baseline10_finish
27
- Assignment#baseline10_start
28
- Assignment#baseline10_work
29
- Assignment#baseline_budget_cost
30
- Assignment#baseline_budget_work
31
- Assignment#baseline_cost
32
- Assignment#baseline_finish
33
- Assignment#baseline_start
34
- Assignment#baseline_work
35
- Assignment#bcwp
36
- Assignment#bcws
37
- Assignment#budget_cost
38
- Assignment#budget_work
39
- Assignment#confirmed
40
- Assignment#cost
41
- Assignment#cost1
42
- ...
43
- Assignment#cost10
44
- Assignment#cost_rate_table
45
- Assignment#cost_variance
46
- Assignment#created
47
- Assignment#cv
48
- Assignment#date1
49
- ...
50
- Assignment#date10
51
- Assignment#duration1
52
- ...
53
- Assignment#duration10
54
- Assignment#duration1_units
55
- ...
56
- Assignment#duration10_units
57
- Assignment#enterprise_cost1
58
- ...
59
- Assignment#enterprise_cost10
60
- Assignment#enterprise_custom_field1
61
- ...
62
- Assignment#enterprise_custom_field50
63
- Assignment#enterprise_date1
64
- ...
65
- Assignment#enterprise_date30
66
- Assignment#enterprise_duration1
67
- ...
68
- Assignment#enterprise_duration10
69
- Assignment#enterprise_flag1
70
- ...
71
- Assignment#enterprise_flag20
72
- Assignment#enterprise_number1
73
- ...
74
- Assignment#enterprise_number40
75
- Assignment#enterprise_resource_multi_value20
76
- ...
77
- Assignment#enterprise_resource_multi_value29
78
- Assignment#enterprise_resource_outline_code1
79
- ...
80
- Assignment#enterprise_resource_outline_code29
81
- Assignment#enterprise_resource_rbs
82
- Assignment#enterprise_team_member
83
- Assignment#enterprise_text1
84
- ...
85
- Assignment#enterprise_text40
86
- Assignment#finish
87
- Assignment#finish1
88
- ...
89
- Assignment#finish10
90
- Assignment#finish_variance
91
- Assignment#fixed_material_assignment
92
- Assignment#flag1
93
- ...
94
- Assignment#flag20
95
- Assignment#guid
96
- Assignment#hyperlink
97
- Assignment#hyperlink_address
98
- Assignment#hyperlink_data
99
- Assignment#hyperlink_href
100
- Assignment#hyperlink_screen_tip
101
- Assignment#hyperlink_subaddress
102
- Assignment#index
103
- Assignment#leveling_delay
104
- Assignment#leveling_delay_units
105
- Assignment#linked_fields
106
- Assignment#notes
107
- Assignment#number1
108
- ...
109
- Assignment#number20
110
- Assignment#overallocated
111
- Assignment#overtime_cost
112
- Assignment#overtime_work
113
- Assignment#owner
114
- Assignment#peak
115
- Assignment#percent_work_complete
116
- Assignment#project
117
- Assignment#regular_work
118
- Assignment#remaining_cost
119
- Assignment#remaining_overtime_cost
120
- Assignment#remaining_overtime_work
121
- Assignment#remaining_work
122
- Assignment#resource_id
123
- Assignment#resource_name
124
- Assignment#resource_request_type
125
- Assignment#resource_type
126
- Assignment#resource_unique_id
127
- Assignment#response_pending
128
- Assignment#start
129
- Assignment#start1
130
- ...
131
- Assignment#start10
132
- Assignment#start_variance
133
- Assignment#summary
134
- Assignment#sv
135
- Assignment#task_id
136
- Assignment#task_name
137
- Assignment#task_outline_number
138
- Assignment#task_summary_name
139
- Assignment#task_unique_id
140
- Assignment#team_status_pending
141
- Assignment#text1
142
- ...
143
- Assignment#text30
144
- Assignment#timephased_actual_overtime_work
145
- Assignment#timephased_actual_work
146
- Assignment#timephased_baseline1_cost
147
- ...
148
- Assignment#timephased_baseline10_cost
149
- Assignment#timephased_baseline1_work
150
- ...
151
- Assignment#timephased_baseline10_work
152
- Assignment#timephased_work
153
- Assignment#unavailable
154
- Assignment#unique_id
155
- Assignment#update_needed
156
- Assignment#vac
157
- Assignment#variable_rate_units
158
- Assignment#wbs
159
- Assignment#work
160
- Assignment#work_contour
161
- Assignment#work_variance
162
-
1
+ # Assignment Attributes
2
+
3
+ Assignment#actual_cost
4
+ Assignment#actual_finish
5
+ Assignment#actual_overtime_cost
6
+ Assignment#actual_overtime_work
7
+ Assignment#actual_overtime_work_protected
8
+ Assignment#actual_start
9
+ Assignment#actual_work
10
+ Assignment#actual_work_protected
11
+ Assignment#acwp
12
+ Assignment#assignment_delay
13
+ Assignment#assignment_resource_guid
14
+ Assignment#assignment_task_guid
15
+ Assignment#assignment_units
16
+ Assignment#baseline1_budget_cost
17
+ Assignment#baseline1_budget_work
18
+ Assignment#baseline1_cost
19
+ Assignment#baseline1_finish
20
+ Assignment#baseline1_start
21
+ Assignment#baseline1_work
22
+ ...
23
+ Assignment#baseline10_budget_cost
24
+ Assignment#baseline10_budget_work
25
+ Assignment#baseline10_cost
26
+ Assignment#baseline10_finish
27
+ Assignment#baseline10_start
28
+ Assignment#baseline10_work
29
+ Assignment#baseline_budget_cost
30
+ Assignment#baseline_budget_work
31
+ Assignment#baseline_cost
32
+ Assignment#baseline_finish
33
+ Assignment#baseline_start
34
+ Assignment#baseline_work
35
+ Assignment#bcwp
36
+ Assignment#bcws
37
+ Assignment#budget_cost
38
+ Assignment#budget_work
39
+ Assignment#confirmed
40
+ Assignment#cost
41
+ Assignment#cost1
42
+ ...
43
+ Assignment#cost10
44
+ Assignment#cost_rate_table
45
+ Assignment#cost_variance
46
+ Assignment#created
47
+ Assignment#cv
48
+ Assignment#date1
49
+ ...
50
+ Assignment#date10
51
+ Assignment#duration1
52
+ ...
53
+ Assignment#duration10
54
+ Assignment#duration1_units
55
+ ...
56
+ Assignment#duration10_units
57
+ Assignment#enterprise_cost1
58
+ ...
59
+ Assignment#enterprise_cost10
60
+ Assignment#enterprise_custom_field1
61
+ ...
62
+ Assignment#enterprise_custom_field50
63
+ Assignment#enterprise_date1
64
+ ...
65
+ Assignment#enterprise_date30
66
+ Assignment#enterprise_duration1
67
+ ...
68
+ Assignment#enterprise_duration10
69
+ Assignment#enterprise_flag1
70
+ ...
71
+ Assignment#enterprise_flag20
72
+ Assignment#enterprise_number1
73
+ ...
74
+ Assignment#enterprise_number40
75
+ Assignment#enterprise_resource_multi_value20
76
+ ...
77
+ Assignment#enterprise_resource_multi_value29
78
+ Assignment#enterprise_resource_outline_code1
79
+ ...
80
+ Assignment#enterprise_resource_outline_code29
81
+ Assignment#enterprise_resource_rbs
82
+ Assignment#enterprise_team_member
83
+ Assignment#enterprise_text1
84
+ ...
85
+ Assignment#enterprise_text40
86
+ Assignment#finish
87
+ Assignment#finish1
88
+ ...
89
+ Assignment#finish10
90
+ Assignment#finish_variance
91
+ Assignment#fixed_material_assignment
92
+ Assignment#flag1
93
+ ...
94
+ Assignment#flag20
95
+ Assignment#guid
96
+ Assignment#hyperlink
97
+ Assignment#hyperlink_address
98
+ Assignment#hyperlink_data
99
+ Assignment#hyperlink_href
100
+ Assignment#hyperlink_screen_tip
101
+ Assignment#hyperlink_subaddress
102
+ Assignment#index
103
+ Assignment#leveling_delay
104
+ Assignment#leveling_delay_units
105
+ Assignment#linked_fields
106
+ Assignment#notes
107
+ Assignment#number1
108
+ ...
109
+ Assignment#number20
110
+ Assignment#overallocated
111
+ Assignment#overtime_cost
112
+ Assignment#overtime_work
113
+ Assignment#owner
114
+ Assignment#peak
115
+ Assignment#percent_work_complete
116
+ Assignment#project
117
+ Assignment#regular_work
118
+ Assignment#remaining_cost
119
+ Assignment#remaining_overtime_cost
120
+ Assignment#remaining_overtime_work
121
+ Assignment#remaining_work
122
+ Assignment#resource_id
123
+ Assignment#resource_name
124
+ Assignment#resource_request_type
125
+ Assignment#resource_type
126
+ Assignment#resource_unique_id
127
+ Assignment#response_pending
128
+ Assignment#start
129
+ Assignment#start1
130
+ ...
131
+ Assignment#start10
132
+ Assignment#start_variance
133
+ Assignment#summary
134
+ Assignment#sv
135
+ Assignment#task_id
136
+ Assignment#task_name
137
+ Assignment#task_outline_number
138
+ Assignment#task_summary_name
139
+ Assignment#task_unique_id
140
+ Assignment#team_status_pending
141
+ Assignment#text1
142
+ ...
143
+ Assignment#text30
144
+ Assignment#timephased_actual_overtime_work
145
+ Assignment#timephased_actual_work
146
+ Assignment#timephased_baseline1_cost
147
+ ...
148
+ Assignment#timephased_baseline10_cost
149
+ Assignment#timephased_baseline1_work
150
+ ...
151
+ Assignment#timephased_baseline10_work
152
+ Assignment#timephased_work
153
+ Assignment#unavailable
154
+ Assignment#unique_id
155
+ Assignment#update_needed
156
+ Assignment#vac
157
+ Assignment#variable_rate_units
158
+ Assignment#wbs
159
+ Assignment#work
160
+ Assignment#work_contour
161
+ Assignment#work_variance
162
+