• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / 0fa44f37-9401-471e-84d4-efbabcf424ab

22 Oct 2025 02:10PM UTC coverage: 91.212% (+0.2%) from 91.051%
0fa44f37-9401-471e-84d4-efbabcf424ab

push

circleci

web-flow
Getting rid of the New Project Wizard flipper (#2072)

3 of 4 new or added lines in 1 file covered. (75.0%)

794 existing lines in 41 files now uncovered.

2740 of 3004 relevant lines covered (91.21%)

751.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/app/presenters/project_show_presenter.rb
1
# frozen_string_literal: true
2
class ProjectShowPresenter
6✔
3
  delegate "id", "in_mediaflux?", "mediaflux_id", "status", "title", to: :project
6✔
4
  delegate "description", "project_id", "storage_performance_expectations", "project_purpose", to: :project_metadata
6✔
5

6
  attr_reader :project, :project_metadata
6✔
7

8
  # @return [Class] The presenter class for building XML Documents from Projects
9
  def self.xml_presenter_class
6✔
10
    ProjectXmlPresenter
18✔
11
  end
12

13
  def initialize(project)
6✔
14
    @project = project
332✔
15
    @project_metadata = @project.metadata_model
332✔
16
  end
17

18
  # @return [String] the XML for the project Document 
19
  def to_xml
6✔
20
    xml_document.to_xml
16✔
21
  end
22

23
  # @return [Nokogiri::XML::Document] the XML Document for the Project
24
  def xml_document
6✔
25
    @xml_document ||= xml_presenter.document
18✔
26
  end
27

28
  def created
6✔
UNCOV
29
    @project.created_at.strftime("%b %e, %Y %l:%M %p")
70✔
30
  end
31

32
  def updated
6✔
UNCOV
33
    @project.updated_at.strftime("%b %e, %Y %l:%M %p")
70✔
34
  end
35

36
  def data_sponsor
6✔
UNCOV
37
    User.find_by(uid: @project.metadata["data_sponsor"]).uid
70✔
38
  end
39

40
  def data_manager
6✔
UNCOV
41
    User.find_by(uid: @project.metadata["data_manager"]).uid
70✔
42
  end
43

44
  # used to hide the project root that is not visible to the end user
45
  def project_directory
6✔
UNCOV
46
    project.project_directory.gsub(Mediaflux::Connection.hidden_root, "")
29✔
47
  end
48

49
  def storage_capacity(session_id: nil)
6✔
UNCOV
50
    return project_metadata.storage_capacity if session_id.nil?
74✔
51

UNCOV
52
    persisted = project.storage_capacity_raw(session_id: session_id)
70✔
UNCOV
53
    value = persisted.to_f
70✔
54

UNCOV
55
    value*default_capacity_divisor
70✔
56
  end
57

58
  def formatted_storage_capacity(session_id:)
6✔
UNCOV
59
    value = storage_capacity(session_id: session_id)
70✔
UNCOV
60
    format("%.3f", value)
70✔
61
  end
62

63
  def formatted_quota_percentage(session_id:)
6✔
UNCOV
64
    value = quota_percentage(session_id:)
70✔
UNCOV
65
    format("%.3f", value)
70✔
66
  end
67

68
  def quota_usage(session_id:)
6✔
UNCOV
69
    "#{project.storage_usage(session_id:)} out of #{project.storage_capacity(session_id:)} used"
422✔
70
  end
71

72
  def quota_percentage(session_id:)
6✔
UNCOV
73
    storage_capacity = project.storage_capacity_raw(session_id:)
316✔
UNCOV
74
    return 0 if storage_capacity.zero?
316✔
75

76
    storage_usage = project.storage_usage_raw(session_id:)
84✔
77
    (storage_usage.to_f / storage_capacity.to_f) * 100
84✔
78
  end
79

80
  private
6✔
81

82
    # Capacity is in bytes
83
    def default_capacity_divisor
6✔
UNCOV
84
      1.0/(1000.0**3)
70✔
85
    end
86

87
    def xml_presenter_args
6✔
88
      project
18✔
89
    end
90

91
    def xml_presenter
6✔
92
      @xml_presenter ||= self.class.xml_presenter_class.new(xml_presenter_args)
18✔
93
    end
94
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc