Module: Metricdeck::Helpers::CardHelpers
- Defined in:
- lib/metricdeck/helpers/card_helpers.rb
Instance Method Summary collapse
- #calculate_percentage_change(current, previous) ⇒ Object
- #create_metric_card(id, value:, current:, previous:, title_key: nil, unit_key: nil, comparison_key: nil, comparison_text: nil) ⇒ Object
- #determine_trend(current, previous) ⇒ Object
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 |