Sha256: 04f77a01b6da9b642f1f05d035b81e1b189eb00eb6f3a68431f90cafa387a3e3

Contents?: true

Size: 898 Bytes

Versions: 3

Compression:

Stored size: 898 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'
require 'eac_cli/runner_with/output_list/base_formatter'
require 'tty/table'

module EacCli
  module RunnerWith
    module OutputList
      class TtyFormatter < ::EacCli::RunnerWith::OutputList::BaseFormatter
        # @param row [Object]
        # @return [Array]
        def build_row(row)
          build_columns.map { |c| row.send(c) }
        end

        # @return [String]
        def to_output
          "#{tty_table_output}\n"
        end

        # @return [TTY::Table]
        def tty_table
          ::TTY::Table.new(build_columns, build_rows)
        end

        # @return [String]
        def tty_table_output
          tty_table.render(:unicode, multiline: true) do |renderer|
            renderer.border.separator = ->(row) { ((row + 1) % columns.count).zero? }
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
eac_cli-0.40.1 lib/eac_cli/runner_with/output_list/tty_formatter.rb
eac_cli-0.40.0 lib/eac_cli/runner_with/output_list/tty_formatter.rb
eac_cli-0.39.0 lib/eac_cli/runner_with/output_list/tty_formatter.rb