Module: MeterCat::MetersHelper
- Defined in:
- app/helpers/meter_cat/meters_helper.rb
Instance Method Summary collapse
-
#meter_description(name) ⇒ Object
Constructs a single meter description.
-
#meter_descriptions(meters) ⇒ Object
Constructs a list of meter descriptions.
-
#meter_form(date, days, names, all_names) ⇒ Object
Renders the _form partial with locals.
-
#meter_header(range) ⇒ Object
Constructs an HTML table header.
-
#meter_row(meters, range, name) ⇒ Object
Constructs an HTML table row.
-
#meter_table(meters, range) ⇒ Object
Returns an HTML table.
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) content_tag(:p) do concat content_tag(: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) content_tag(:ul) do meters.keys.sort.each do |name| concat content_tag(: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) content_tag(:tr) do concat content_tag(:th) range.to_a.reverse.each { |date| concat content_tag(: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;') content_tag(:tr) do concat content_tag(:th, name, align: 'left', style: style) range.to_a.reverse.each do |date| value = meters[name][date] || 0 concat content_tag(: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) content_tag(:table, border: 1) do concat meter_header(range) meters.keys.sort.each do |name| concat meter_row(meters, range, name) end end end |