Module: Metricdeck::Helpers::CardHelpers

Defined in:
lib/metricdeck/helpers/card_helpers.rb

Instance Method Summary collapse

Instance Method Details

#calculate_percentage_change(current, previous) ⇒ Object



6
7
8
9
10
# File 'lib/metricdeck/helpers/card_helpers.rb', line 6

def calculate_percentage_change(current, previous)
  return 0 if previous.to_f.zero?

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

#create_metric_card(id, value:, current:, previous:, title_key: nil, unit_key: nil, comparison_key: nil, comparison_text: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/metricdeck/helpers/card_helpers.rb', line 18

def create_metric_card(id, value:, current:, previous:, title_key: nil, unit_key: nil,
                       comparison_key: nil, comparison_text: nil)
  card_key = id.to_s

  title = resolve_title(card_key, title_key)
  unit = resolve_unit(card_key, unit_key)
  comparison_text ||= resolve_comparison_text(card_key, comparison_key)

  percentage_change = calculate_percentage_change(current, previous)
  trend = determine_trend(current, previous)

  Metricdeck::MetricCard.new(
    id: id,
    title: title,
    value: value.to_s,
    unit: unit,
    comparison_percentage: percentage_change,
    trend: trend,
    comparison_text: comparison_text
  )
end

#determine_trend(current, previous) ⇒ Object



12
13
14
15
16
# File 'lib/metricdeck/helpers/card_helpers.rb', line 12

def determine_trend(current, previous)
  return 'neutral' if previous.to_f.zero? || current == previous

  current > previous ? 'up' : 'down'
end