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  |