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.
147 148 149 150 151 |
# File 'app/presenters/project_xml_presenter.rb', line 147 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.
140 141 142 143 144 |
# File 'app/presenters/project_xml_presenter.rb', line 140 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.
154 155 156 |
# File 'app/presenters/project_xml_presenter.rb', line 154 def data_use_agreement? .data_use_agreement.present? end |
#department(index) ⇒ String
Returns The department code for departments associated with the project.
223 224 225 226 227 228 229 |
# File 'app/presenters/project_xml_presenter.rb', line 223 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.
232 233 234 |
# File 'app/presenters/project_xml_presenter.rb', line 232 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.
52 53 54 55 56 57 58 |
# File 'app/presenters/project_xml_presenter.rb', line 52 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 49 |
# File 'app/presenters/project_xml_presenter.rb', line 46 def globus_enable_approved? globus_request = .globus_request globus_request[:approved] || false end |
#globus_enable_requested ⇒ String
Returns Whether the request for a Globus mount is requested.
67 68 69 70 71 72 73 |
# File 'app/presenters/project_xml_presenter.rb', line 67 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.
61 62 63 64 |
# File 'app/presenters/project_xml_presenter.rb', line 61 def globus_enable_requested? globus_request = .globus_request globus_request.present? end |
#hpc ⇒ String
Returns Whether or not the project is associated with HPC.
169 |
# File 'app/presenters/project_xml_presenter.rb', line 169 delegate :hpc, to: :project_metadata |
#project_directory ⇒ Array<String>
Returns The project directory paths.
196 197 198 |
# File 'app/presenters/project_xml_presenter.rb', line 196 def project_directory [project.project_directory] end |
#project_directory_approved? ⇒ Boolean
Returns Whether the project directory request is approved.
175 176 177 178 |
# File 'app/presenters/project_xml_presenter.rb', line 175 def project_directory_approved? expectations = storage_performance_expectations expectations[:approved] || false end |
#project_directory_path(index) ⇒ String
Returns The project directory path.
202 203 204 205 |
# File 'app/presenters/project_xml_presenter.rb', line 202 def project_directory_path(index) entry = project_directory[index] entry end |
#project_directory_protocol(index) ⇒ String
Returns The protocol for the project directory.
209 210 211 212 213 214 215 216 217 218 219 |
# File 'app/presenters/project_xml_presenter.rb', line 209 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.
159 160 161 |
# File 'app/presenters/project_xml_presenter.rb', line 159 def project_resource_type .resource_type end |
#project_visibility ⇒ String
Returns The project visibility.
172 |
# File 'app/presenters/project_xml_presenter.rb', line 172 delegate :project_visibility, to: :project_metadata |
#provisional_project? ⇒ Boolean
Returns Whether the project is provisional.
164 165 166 |
# File 'app/presenters/project_xml_presenter.rb', line 164 def provisional_project? .provisional end |
#request_date_time ⇒ String
Returns The date and time of the request.
132 133 134 135 136 137 |
# File 'app/presenters/project_xml_presenter.rb', line 132 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.
125 126 127 128 129 |
# File 'app/presenters/project_xml_presenter.rb', line 125 def requested_by return if submission.nil? submission.event_person end |
#requested_storage ⇒ String
Returns The requested project storage capacity.
237 238 239 |
# File 'app/presenters/project_xml_presenter.rb', line 237 def requested_storage storage_performance_expectations[:requested] || nil end |
#smb_enable_approved ⇒ String
Returns Whether the request for the SMB mount is approved.
82 83 84 85 86 87 88 |
# File 'app/presenters/project_xml_presenter.rb', line 82 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.
76 77 78 79 |
# File 'app/presenters/project_xml_presenter.rb', line 76 def smb_enable_approved? smb_request = .smb_request smb_request[:approved] || false end |
#smb_enable_requested ⇒ String
Returns Whether the request for the SMB mount is requested.
97 98 99 100 101 102 103 |
# File 'app/presenters/project_xml_presenter.rb', line 97 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.
91 92 93 94 |
# File 'app/presenters/project_xml_presenter.rb', line 91 def smb_enable_requested? smb_request = .smb_request smb_request.present? end |
#status ⇒ String
NOTE: Valid values are one of: ‘AdminReview’, ‘Approved’, ‘Active’, ‘Retired’, ‘Published’
107 108 109 110 111 112 |
# File 'app/presenters/project_xml_presenter.rb', line 107 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.
181 182 183 184 185 186 187 |
# File 'app/presenters/project_xml_presenter.rb', line 181 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.
190 191 192 193 |
# File 'app/presenters/project_xml_presenter.rb', line 190 def storage_performance_requested? requested = storage_performance_expectations[:requested] requested.present? end |
#submission ⇒ ProvenanceEvent
Returns The first project submission event.
115 116 117 |
# File 'app/presenters/project_xml_presenter.rb', line 115 def submission @submission ||= project.provenance_events.find_by(event_type: ProvenanceEvent::SUBMISSION_EVENT_TYPE) end |
#submissions ⇒ Array<ProvenanceEvent>
Returns The project submission events.
120 121 122 |
# File 'app/presenters/project_xml_presenter.rb', line 120 def submissions [submission] end |