Class: ProjectXmlPresenter
- Inherits:
-
Object
- Object
- ProjectXmlPresenter
- Defined in:
- app/presenters/project_xml_presenter.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Attribute Summary collapse
-
#project ⇒ Object
readonly
Returns the value of attribute project.
-
#project_metadata ⇒ Object
readonly
Returns the value of attribute project_metadata.
Instance Method Summary collapse
-
#approval_date_time ⇒ String
The date and time of the approval.
-
#approved_by ⇒ String
The user ID of the user who approved the project.
-
#data_use_agreement? ⇒ String
Whether or not the project data use agreement.
-
#department(index) ⇒ String
The department code for departments associated with the project.
-
#department_code(index) ⇒ String
The department code for the project.
-
#document ⇒ Nokogiri::XML::Document
The XML document.
-
#globus_enable_approved ⇒ String
Whether the request for a Globus mount is approved.
-
#globus_enable_approved? ⇒ Boolean
Whether the request for a Globus mount is approved.
-
#globus_enable_requested ⇒ String
Whether the request for a Globus mount is requested.
-
#globus_enable_requested? ⇒ Boolean
Whether there is a request for a Globus mount.
-
#hpc ⇒ String
Whether or not the project is associated with HPC.
-
#initialize(project) ⇒ ProjectXmlPresenter
constructor
A new instance of ProjectXmlPresenter.
-
#project_directory ⇒ Array<String>
The project directory paths.
-
#project_directory_approved? ⇒ Boolean
Whether the project directory request is approved.
-
#project_directory_path(index) ⇒ String
The project directory path.
-
#project_directory_protocol(index) ⇒ String
The protocol for the project directory.
-
#project_resource_type ⇒ String
The project resource type.
-
#project_visibility ⇒ String
The project visibility.
-
#provisional_project? ⇒ Boolean
Whether the project is provisional.
-
#request_date_time ⇒ String
The date and time of the request.
-
#requested_by ⇒ String
The user ID of the user who requested the project.
-
#requested_storage ⇒ String
The requested project storage capacity.
-
#smb_enable_approved ⇒ String
Whether the request for the SMB mount is approved.
-
#smb_enable_approved? ⇒ Boolean
Whether the request for the SMB mount is approved.
-
#smb_enable_requested ⇒ String
Whether the request for the SMB mount is requested.
-
#smb_enable_requested? ⇒ Boolean
Whether there is a request for SMB mount.
-
#status ⇒ String
NOTE: Valid values are one of: ‘AdminReview’, ‘Approved’, ‘Active’, ‘Retired’, ‘Published’.
-
#storage_capacity_approved? ⇒ Boolean
Whether the project storage capacity request is approved.
-
#storage_performance_requested? ⇒ Boolean
Whether the project storage request is approved.
-
#submission ⇒ ProvenanceEvent
The first project submission event.
-
#submissions ⇒ Array<ProvenanceEvent>
The project submission events.
Constructor Details
#initialize(project) ⇒ ProjectXmlPresenter
Returns a new instance of ProjectXmlPresenter.
37 38 39 40 |
# File 'app/presenters/project_xml_presenter.rb', line 37 def initialize(project) @project = project @project_metadata = @project. end |
Instance Attribute Details
#project ⇒ Object (readonly)
Returns the value of attribute project.
5 6 7 |
# File 'app/presenters/project_xml_presenter.rb', line 5 def project @project end |
#project_metadata ⇒ Object (readonly)
Returns the value of attribute project_metadata.
5 6 7 |
# File 'app/presenters/project_xml_presenter.rb', line 5 def @project_metadata end |
Instance Method Details
#approval_date_time ⇒ String
Returns The date and time of the approval.
143 144 145 146 147 |
# File 'app/presenters/project_xml_presenter.rb', line 143 def approval_date_time return nil if approval_note.nil? approval_note[:note_date_time] end |
#approved_by ⇒ String
Returns The user ID of the user who approved the project.
136 137 138 139 140 |
# File 'app/presenters/project_xml_presenter.rb', line 136 def approved_by return if approval_note.nil? approval_note[:note_by] end |
#data_use_agreement? ⇒ String
Returns Whether or not the project data use agreement.
150 151 152 |
# File 'app/presenters/project_xml_presenter.rb', line 150 def data_use_agreement? .data_use_agreement.present? end |
#department(index) ⇒ String
Returns The department code for departments associated with the project.
219 220 221 222 223 224 225 |
# File 'app/presenters/project_xml_presenter.rb', line 219 def department(index) value = departments[index] if value.length < 6 value = value.rjust(6, "0") end value end |
#department_code(index) ⇒ String
Returns The department code for the project.
228 229 230 |
# File 'app/presenters/project_xml_presenter.rb', line 228 def department_code(index) departments[index] end |
#document ⇒ Nokogiri::XML::Document
Returns The XML document.
43 |
# File 'app/presenters/project_xml_presenter.rb', line 43 delegate :document, to: :build |
#globus_enable_approved ⇒ String
Returns Whether the request for a Globus mount is approved.
51 52 53 54 55 56 57 |
# File 'app/presenters/project_xml_presenter.rb', line 51 def globus_enable_approved if globus_enable_approved? "true" else "false" end end |
#globus_enable_approved? ⇒ Boolean
Returns Whether the request for a Globus mount is approved.
46 47 48 |
# File 'app/presenters/project_xml_presenter.rb', line 46 def globus_enable_approved? .globus_request == "Yes" end |
#globus_enable_requested ⇒ String
Returns Whether the request for a Globus mount is requested.
65 66 67 68 69 70 71 |
# File 'app/presenters/project_xml_presenter.rb', line 65 def globus_enable_requested if globus_enable_requested? "true" else "false" end end |
#globus_enable_requested? ⇒ Boolean
Returns Whether there is a request for a Globus mount.
60 61 62 |
# File 'app/presenters/project_xml_presenter.rb', line 60 def globus_enable_requested? .globus_request == "Yes" end |
#hpc ⇒ String
Returns Whether or not the project is associated with HPC.
165 |
# File 'app/presenters/project_xml_presenter.rb', line 165 delegate :hpc, to: :project_metadata |
#project_directory ⇒ Array<String>
Returns The project directory paths.
192 193 194 |
# File 'app/presenters/project_xml_presenter.rb', line 192 def project_directory [project.project_directory] end |
#project_directory_approved? ⇒ Boolean
Returns Whether the project directory request is approved.
171 172 173 174 |
# File 'app/presenters/project_xml_presenter.rb', line 171 def project_directory_approved? expectations = storage_performance_expectations expectations[:approved] || false end |
#project_directory_path(index) ⇒ String
Returns The project directory path.
198 199 200 201 |
# File 'app/presenters/project_xml_presenter.rb', line 198 def project_directory_path(index) entry = project_directory[index] entry end |
#project_directory_protocol(index) ⇒ String
Returns The protocol for the project directory.
205 206 207 208 209 210 211 212 213 214 215 |
# File 'app/presenters/project_xml_presenter.rb', line 205 def project_directory_protocol(index) entry = project_directory[index] segments = entry.split("://") if segments.length > 1 value = segments[0] value.upcase else ProjectMetadata.default_directory_protocol end end |
#project_resource_type ⇒ String
Returns The project resource type.
155 156 157 |
# File 'app/presenters/project_xml_presenter.rb', line 155 def project_resource_type .resource_type end |
#project_visibility ⇒ String
Returns The project visibility.
168 |
# File 'app/presenters/project_xml_presenter.rb', line 168 delegate :project_visibility, to: :project_metadata |
#provisional_project? ⇒ Boolean
Returns Whether the project is provisional.
160 161 162 |
# File 'app/presenters/project_xml_presenter.rb', line 160 def provisional_project? .provisional end |
#request_date_time ⇒ String
Returns The date and time of the request.
128 129 130 131 132 133 |
# File 'app/presenters/project_xml_presenter.rb', line 128 def request_date_time return if submission.nil? value = submission.created_at value.strftime("%Y-%m-%dT%H:%M:%S%:z") end |
#requested_by ⇒ String
Returns The user ID of the user who requested the project.
121 122 123 124 125 |
# File 'app/presenters/project_xml_presenter.rb', line 121 def requested_by return if submission.nil? submission.event_person end |
#requested_storage ⇒ String
Returns The requested project storage capacity.
233 234 235 |
# File 'app/presenters/project_xml_presenter.rb', line 233 def requested_storage storage_performance_expectations[:requested] || nil end |
#smb_enable_approved ⇒ String
Returns Whether the request for the SMB mount is approved.
79 80 81 82 83 84 85 |
# File 'app/presenters/project_xml_presenter.rb', line 79 def smb_enable_approved if smb_enable_approved? "true" else "false" end end |
#smb_enable_approved? ⇒ Boolean
Returns Whether the request for the SMB mount is approved.
74 75 76 |
# File 'app/presenters/project_xml_presenter.rb', line 74 def smb_enable_approved? .smb_request == "Yes" end |
#smb_enable_requested ⇒ String
Returns Whether the request for the SMB mount is requested.
93 94 95 96 97 98 99 |
# File 'app/presenters/project_xml_presenter.rb', line 93 def smb_enable_requested if smb_enable_requested? "true" else "false" end end |
#smb_enable_requested? ⇒ Boolean
Returns Whether there is a request for SMB mount.
88 89 90 |
# File 'app/presenters/project_xml_presenter.rb', line 88 def smb_enable_requested? .smb_request == "Yes" end |
#status ⇒ String
NOTE: Valid values are one of: ‘AdminReview’, ‘Approved’, ‘Active’, ‘Retired’, ‘Published’
103 104 105 106 107 108 |
# File 'app/presenters/project_xml_presenter.rb', line 103 def status project_status = project.status return if project_status.nil? project_status.capitalize end |
#storage_capacity_approved? ⇒ Boolean
Returns Whether the project storage capacity request is approved.
177 178 179 180 181 182 183 |
# File 'app/presenters/project_xml_presenter.rb', line 177 def storage_capacity_approved? storage_capacity_size = storage_capacity["size"] || {} return false unless storage_capacity_size.key?(:approved) approved_size = storage_capacity_size[:approved] || 0 approved_size > 0 end |
#storage_performance_requested? ⇒ Boolean
Returns Whether the project storage request is approved.
186 187 188 189 |
# File 'app/presenters/project_xml_presenter.rb', line 186 def storage_performance_requested? requested = storage_performance_expectations[:requested] requested.present? end |
#submission ⇒ ProvenanceEvent
Returns The first project submission event.
111 112 113 |
# File 'app/presenters/project_xml_presenter.rb', line 111 def submission @submission ||= project.provenance_events.find_by(event_type: ProvenanceEvent::SUBMISSION_EVENT_TYPE) end |
#submissions ⇒ Array<ProvenanceEvent>
Returns The project submission events.
116 117 118 |
# File 'app/presenters/project_xml_presenter.rb', line 116 def submissions [submission] end |