Class: DiningTable::Presenters::HTMLPresenter

Inherits:
Presenter
  • Object
show all
Defined in:
lib/dining-table/presenters/html_presenter.rb

Instance Attribute Summary collapse

Attributes inherited from Presenter

#options, #table, #view_context

Instance Method Summary collapse

Methods inherited from Presenter

#connect_to, #type?

Constructor Details

#initialize(*args) ⇒ HTMLPresenter

Returns a new instance of HTMLPresenter.



7
8
9
10
# File 'lib/dining-table/presenters/html_presenter.rb', line 7

def initialize( *args )
  super
  self.output  = ''
end

Instance Attribute Details

#outputObject



72
73
74
# File 'lib/dining-table/presenters/html_presenter.rb', line 72

def output
  @output.respond_to?(:html_safe) ? @output.html_safe : @output
end

Instance Method Details

#end_bodyObject



34
35
36
# File 'lib/dining-table/presenters/html_presenter.rb', line 34

def end_body
  add_tag(:end, :tbody)
end

#end_tableObject



23
24
25
26
27
28
# File 'lib/dining-table/presenters/html_presenter.rb', line 23

def end_table
  add_tag(:end, :table)
  if options[:wrap]
    add_tag(:end, wrap_tag )
  end
end

#identifierObject



12
13
14
# File 'lib/dining-table/presenters/html_presenter.rb', line 12

def identifier
  :html
end


58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/dining-table/presenters/html_presenter.rb', line 58

def render_footer
  footers = columns.each.map(&:footer)
  if footers.map { |s| blank?(s) }.uniq != [ true ]
    add_tag(:start, :tfoot)
    add_tag(:start, :tr)
    columns.each_with_index do |column, index|
      value = footers[index]
      render_footer_cell( value, column.options_for( identifier )  )
    end
    add_tag(:end,   :tr)
    add_tag(:end,   :tfoot)
  end
end

#render_headerObject



47
48
49
50
51
52
53
54
55
56
# File 'lib/dining-table/presenters/html_presenter.rb', line 47

def render_header
  add_tag(:start, :thead)
  add_tag(:start, :tr)
  columns.each do |column|
    value = column.header
    render_header_cell( value, column.options_for( identifier )  )
  end
  add_tag(:end,   :tr)
  add_tag(:end,   :thead)
end

#render_row(object) ⇒ Object



38
39
40
41
42
43
44
45
# File 'lib/dining-table/presenters/html_presenter.rb', line 38

def render_row( object )
  add_tag(:start, :tr)
  columns.each do |column|
    value = column.value( object )
    render_cell( value, column.options_for( identifier ) )
  end
  add_tag(:end,   :tr)
end

#start_bodyObject



30
31
32
# File 'lib/dining-table/presenters/html_presenter.rb', line 30

def start_body
  add_tag(:start, :tbody)
end

#start_tableObject



16
17
18
19
20
21
# File 'lib/dining-table/presenters/html_presenter.rb', line 16

def start_table
  if options[:wrap]
    add_tag(:start, wrap_tag, wrap_options )
  end
  add_tag(:start, :table, options )
end