Module: MeterCat::MetersHelper

Defined in:
app/helpers/meter_cat/meters_helper.rb

Instance Method Summary collapse

Instance Method Details

#meter_description(name) ⇒ Object

Constructs a single meter description



6
7
8
9
10
11
12
# File 'app/helpers/meter_cat/meters_helper.rb', line 6

def meter_description(name)
  (:p) do
    concat (:b, name)
    concat ' - '
    concat t(name, scope: :meter_cat)
  end
end

#meter_descriptions(meters) ⇒ Object

Constructs a list of meter descriptions



16
17
18
19
20
21
22
# File 'app/helpers/meter_cat/meters_helper.rb', line 16

def meter_descriptions(meters)
  (:ul) do
    meters.keys.sort.each do |name|
      concat (:li, meter_description(name))
    end
  end
end

#meter_form(date, days, names, all_names) ⇒ Object

Renders the _form partial with locals



26
27
28
# File 'app/helpers/meter_cat/meters_helper.rb', line 26

def meter_form(date, days, names, all_names)
  render partial: 'form', locals: { date: date, days: days, names: names, all_names: all_names }
end

#meter_header(range) ⇒ Object

Constructs an HTML table header



32
33
34
35
36
37
# File 'app/helpers/meter_cat/meters_helper.rb', line 32

def meter_header(range)
  (:tr) do
    concat (:th)
    range.to_a.reverse.each { |date| concat (:th, date.strftime('%-m/%-d/%y')) }
  end
end

#meter_row(meters, range, name) ⇒ Object

Constructs an HTML table row



41
42
43
44
45
46
47
48
49
50
51
# File 'app/helpers/meter_cat/meters_helper.rb', line 41

def meter_row(meters, range, name)
  style = cycle('', 'background-color: #dddddd;')

  (:tr) do
    concat (:th, name, align: 'left', style: style)
    range.to_a.reverse.each do |date|
      value = meters[name][date] || 0
      concat (:td, value, align: 'right', style: style)
    end
  end
end

#meter_table(meters, range) ⇒ Object

Returns an HTML table



55
56
57
58
59
60
61
62
# File 'app/helpers/meter_cat/meters_helper.rb', line 55

def meter_table(meters, range)
  (:table, border: 1) do
    concat meter_header(range)
    meters.keys.sort.each do |name|
      concat meter_row(meters, range, name)
    end
  end
end