mpxj 8.3.1 → 8.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of mpxj might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d77c1ae8b63ed78f22ea63f741ddb611626f671cfcfb8e198ed48d9c2e221c1b
4
- data.tar.gz: 8208dac0b372395b424c2a8e5fdaaab2eb1da57b4e742a7292ba8a186b9a7b47
3
+ metadata.gz: b96d8b8871df9f9d1ebcba761a4443e795b8a79f92828ba1edc8a723373bff82
4
+ data.tar.gz: 154491b77109c5cb0b82e5da1e98650d4697340e2599d8246cd48be470a001cd
5
5
  SHA512:
6
- metadata.gz: 1ad6f843a9e3b8007644151e63dd30e32f75958266c90748a655c76c883bef91e5bc968778b2f0332f44955c1909ced3b45a2fea9cd5cc72d8154a4ba7ead47f
7
- data.tar.gz: 5aeb12dcdaf1a7ca42c5a8bd7717141ac419aba05e34eb98eca4f8a751fcbb7e8d14a1107b21652b4ef518026a490162ff9342c46277a7ad510e986a9d337b8d
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
+