Module: Analytic::ApplicationHelper

Defined in:
app/helpers/analytic/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#delta_icon_tag(delta) ⇒ String

Parameters:

  • delta (Float)

Returns:

  • (String)


18
19
20
21
22
23
24
25
26
# File 'app/helpers/analytic/application_helper.rb', line 18

def delta_icon_tag(delta)
  if delta.zero?
    fa_icon_tag('fa-solid fa-xmark')
  elsif delta.positive?
    fa_icon_tag('fa-solid fa-arrow-up')
  elsif delta.negative?
    fa_icon_tag('fa-solid fa-arrow-down')
  end
end

#delta_percentage_tag(delta) ⇒ String

Parameters:

  • delta (Float)

Returns:

  • (String)


30
31
32
# File 'app/helpers/analytic/application_helper.rb', line 30

def delta_percentage_tag(delta)
  tag.span(number_to_percentage(delta.abs * 100.0, precision: 2), class: 'delta__value')
end

#delta_tag(delta) ⇒ Object

Parameters:

  • delta (Float, nil)


35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/helpers/analytic/application_helper.rb', line 35

def delta_tag(delta)
  return if delta.nil?

  modifier =
    if delta.zero? then 'delta--neutral'
    elsif delta.positive? then 'delta--positive'
    elsif delta.negative? then 'delta--negative'
    end

  tag.div(class: "delta #{modifier}") do
    concat(delta_icon_tag(delta))
    concat(delta_percentage_tag(delta))
  end
end

#fa_icon_tag(icon) ⇒ Object

Parameters:

  • icon (String)

    e.g. fa fa-user



12
13
14
# File 'app/helpers/analytic/application_helper.rb', line 12

def fa_icon_tag(icon)
  tag.i(class: icon)
end

#react(component:, props:) ⇒ Object

Parameters:

  • component (String)
  • props (Hash)


7
8
9
# File 'app/helpers/analytic/application_helper.rb', line 7

def react(component:, props:)
  tag.div(data: { react: component, props: JSON.generate(props) })
end