Sha256: 73c1df1e3a09ac82ca0a33f3b8d38b7ed37f48e9fd5a008fac352adcdb6b7e54

Contents?: true

Size: 881 Bytes

Versions: 2

Compression:

Stored size: 881 Bytes

Contents

module TableCloth
  module Presenters
    class Default < ::TableCloth::Presenter
      def render_table
        wrapper_tag :table do
          render_header + render_rows
        end
      end

      def render_rows
        wrapper_tag :tbody do
          body = rows.inject('') do |r, values|
            r + render_row(values)
          end

          v.raw(body)
        end
      end

      def render_row(values)
        wrapper_tag :tr do
          row = values.inject('') do |tds, value|
            tds + wrapper_tag(:td, value)
          end

          v.raw(row)
        end
      end

      def render_header
        wrapper_tag :thead do
          wrapper_tag(:tr) do
            names = column_names.inject('') do |tags, name|
              tags + wrapper_tag(:th, name)
            end

            v.raw(names)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
table_cloth-0.1.1 lib/table_cloth/presenters/default.rb
table_cloth-0.1.0 lib/table_cloth/presenters/default.rb