Class: ProjectShowPresenter
- Inherits:
-
Object
- Object
- ProjectShowPresenter
show all
- Defined in:
- app/presenters/project_show_presenter.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of ProjectShowPresenter.
13
14
15
16
|
# File 'app/presenters/project_show_presenter.rb', line 13
def initialize(project)
@project = project
@project_metadata = @project.metadata_model
end
|
Instance Attribute Details
#project ⇒ Object
Returns the value of attribute project.
6
7
8
|
# File 'app/presenters/project_show_presenter.rb', line 6
def project
@project
end
|
Returns the value of attribute project_metadata.
6
7
8
|
# File 'app/presenters/project_show_presenter.rb', line 6
def project_metadata
@project_metadata
end
|
Class Method Details
.xml_presenter_class ⇒ Class
Returns The presenter class for building XML Documents from Projects.
9
10
11
|
# File 'app/presenters/project_show_presenter.rb', line 9
def self.xml_presenter_class
ProjectXmlPresenter
end
|
Instance Method Details
#created ⇒ Object
28
29
30
|
# File 'app/presenters/project_show_presenter.rb', line 28
def created
@project.created_at.strftime("%b %e, %Y %l:%M %p")
end
|
#data_manager ⇒ Object
40
41
42
|
# File 'app/presenters/project_show_presenter.rb', line 40
def data_manager
User.find_by(uid: @project.metadata["data_manager"]).uid
end
|
36
37
38
|
# File 'app/presenters/project_show_presenter.rb', line 36
def
User.find_by(uid: @project.metadata["data_sponsor"]).uid
end
|
71
72
73
74
|
# File 'app/presenters/project_show_presenter.rb', line 71
def formatted_quota_percentage(session_id:)
value = quota_percentage(session_id:)
format("%.3f", value)
end
|
66
67
68
69
|
# File 'app/presenters/project_show_presenter.rb', line 66
def formatted_storage_capacity(session_id:)
value = storage_capacity(session_id: session_id)
format("%.3f", value)
end
|
#project_directory ⇒ Object
used to hide the project root that is not visible to the end user
45
46
47
|
# File 'app/presenters/project_show_presenter.rb', line 45
def project_directory
project.project_directory.gsub(Mediaflux::Connection.hidden_root, "")
end
|
#quota_percentage(session_id:) ⇒ Object
84
85
86
87
88
89
90
91
92
|
# File 'app/presenters/project_show_presenter.rb', line 84
def quota_percentage(session_id:)
return 0 if project.pending?
storage_capacity = project.storage_capacity_raw(session_id:)
return 0 if storage_capacity.zero?
storage_usage = project.storage_usage_raw(session_id:)
(storage_usage.to_f / storage_capacity.to_f) * 100
end
|
#quota_usage(session_id:) ⇒ Object
76
77
78
79
80
81
82
|
# File 'app/presenters/project_show_presenter.rb', line 76
def quota_usage(session_id:)
if project.pending?
"0 KB out of 0 GB used"
else
"#{project.storage_usage(session_id:)} out of #{project.storage_capacity(session_id:)} used"
end
end
|
#storage_capacity(session_id: nil) ⇒ Object
57
58
59
60
61
62
63
64
|
# File 'app/presenters/project_show_presenter.rb', line 57
def storage_capacity(session_id: nil)
return project_metadata.storage_capacity if session_id.nil?
persisted = project.storage_capacity_raw(session_id: session_id)
value = persisted.to_f
value*default_capacity_divisor
end
|
#storage_usage(session_id:) ⇒ Object
This assumed that the storage usage is recorded in the same units as the units specified in the StorageCapacity metadata
50
51
52
53
54
55
|
# File 'app/presenters/project_show_presenter.rb', line 50
def storage_usage(session_id:)
persisted = project.storage_usage_raw(session_id: session_id)
value = persisted.to_f
value*default_usage_divisor
end
|
#to_xml ⇒ String
Returns the XML for the project Document.
19
20
21
|
# File 'app/presenters/project_show_presenter.rb', line 19
def to_xml
xml_document.to_xml
end
|
#updated ⇒ Object
32
33
34
|
# File 'app/presenters/project_show_presenter.rb', line 32
def updated
@project.updated_at.strftime("%b %e, %Y %l:%M %p")
end
|
#xml_document ⇒ Nokogiri::XML::Document
Returns the XML Document for the Project.
24
25
26
|
# File 'app/presenters/project_show_presenter.rb', line 24
def xml_document
@xml_document ||= xml_presenter.document
end
|