Module: SolidLog::UI::DashboardHelper

Defined in:
app/helpers/solid_log/ui/dashboard_helper.rb

Instance Method Summary collapse

Instance Method Details

#format_count(count) ⇒ Object



4
5
6
# File 'app/helpers/solid_log/ui/dashboard_helper.rb', line 4

def format_count(count)
  number_with_delimiter(count || 0)
end

#format_percentage(numerator, denominator) ⇒ Object



8
9
10
11
12
13
# File 'app/helpers/solid_log/ui/dashboard_helper.rb', line 8

def format_percentage(numerator, denominator)
  return "0%" if denominator.nil? || denominator.zero?

  percentage = (numerator.to_f / denominator * 100).round(1)
  "#{percentage}%"
end

#health_status_badge(unparsed_count) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'app/helpers/solid_log/ui/dashboard_helper.rb', line 33

def health_status_badge(unparsed_count)
  if unparsed_count == 0
    (:span, "Healthy", class: "badge badge-success")
  elsif unparsed_count < 100
    (:span, "OK", class: "badge badge-info")
  elsif unparsed_count < 1000
    (:span, "Warning", class: "badge badge-warning")
  else
    (:span, "Backlog", class: "badge badge-danger")
  end
end

#time_ago_or_never(time) ⇒ Object



29
30
31
# File 'app/helpers/solid_log/ui/dashboard_helper.rb', line 29

def time_ago_or_never(time)
  time ? time_ago_in_words(time) + " ago" : "Never"
end

#trend_indicator(current, previous) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/helpers/solid_log/ui/dashboard_helper.rb', line 15

def trend_indicator(current, previous)
  return "" if previous.nil? || previous.zero?

  change = ((current - previous).to_f / previous * 100).round(1)

  if change > 0
    (:span, "+#{change}%", class: "trend-up")
  elsif change < 0
    (:span, "#{change}%", class: "trend-down")
  else
    (:span, "0%", class: "trend-neutral")
  end
end