Sha256: 08cb4eab5a307a1ef3521f9a7196d86a85b71b6c91d835f4447ab08325177805

Contents?: true

Size: 1.47 KB

Versions: 9

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

module FatTable
  # Output the table in the same way as org-mode for emacs does. This is almost
  # identical to TextFormatter except that dates do get formatted as inactive
  # timestamps and the connector at the beginning of hlines is a '|' rather than
  # a '+' as for text tables.
  class OrgFormatter < Formatter
    def self.default_format
      fmt = super
      fmt[:date_fmt] = '[%F %a]'
      fmt[:datetime_fmt] = '[%F %a %H:%M:%S]'
      fmt
    end

    private

    # Does this Formatter require a second pass over the cells to align the
    # columns according to the alignment formatting instruction to the width of
    # the widest cell in each column?
    def aligned?
      true
    end

    def pre_header(widths)
      result = +'|'
      widths.each_value do |w|
        result += '-' * (w + 2) + '+'
      end
      result[-1] = '|'
      result + "\n"
    end

    def pre_row
      '|'
    end

    def pre_cell(_head)
      ''
    end

    def quote_cell(val)
      val
    end

    def post_cell
      ''
    end

    def inter_cell
      '|'
    end

    def post_row
      "|\n"
    end

    def hline(widths)
      result = +'|'
      widths.each_value do |w|
        result += '-' * (w + 2) + '+'
      end
      result[-1] = '|'
      result + "\n"
    end

    def post_footers(widths)
      result = +'|'
      widths.each_value do |w|
        result += '-' * (w + 2) + '+'
      end
      result[-1] = '|'
      result + "\n"
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fat_table-0.9.8 lib/fat_table/formatters/org_formatter.rb
fat_table-0.9.7 lib/fat_table/formatters/org_formatter.rb
fat_table-0.9.5 lib/fat_table/formatters/org_formatter.rb
fat_table-0.9.3 lib/fat_table/formatters/org_formatter.rb
fat_table-0.9.2 lib/fat_table/formatters/org_formatter.rb
fat_table-0.9.1 lib/fat_table/formatters/org_formatter.rb
fat_table-0.9.0 lib/fat_table/formatters/org_formatter.rb
fat_table-0.8.0 lib/fat_table/formatters/org_formatter.rb
fat_table-0.7.0 lib/fat_table/formatters/org_formatter.rb