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