Method: DataTable::Column#render_cell

Defined in:
lib/data-table/column.rb

#render_cell(cell_data, row = nil, row_index = 0, col_index = 0) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/data-table/column.rb', line 21

def render_cell(cell_data, row = nil, row_index = 0, col_index = 0)
  @data_type ||= type(cell_data)

  html = []
  html << if @renderer && row
            case @renderer.arity
            when 1 then @renderer.call(cell_data).to_s
            when 2 then @renderer.call(cell_data, row).to_s
            when 3 then @renderer.call(cell_data, row, row_index).to_s
            when 4 then @renderer.call(cell_data, row, row_index, self).to_s
            when 5 then @renderer.call(cell_data, row, row_index, self, col_index).to_s
            end
          else
            cell_data.to_s
          end

  html << '</td>'
  # Doing this here b/c you can't change @css_class if this is done before the renderer is called
  "<td class='#{css_class_names}' #{custom_attributes}>" + html.join
end