Sha256: d24a68eade69525821329fc82137887bdf3c70070d9d604af5b87206108cfdae
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
# encoding: utf-8 module TTY class Table module Operation # A class which responsiblity is to align table rows and header. class AlignmentSet < Vector attr_reader :widths # Initialize an AlignmentSet # # @api private def initialize(aligns, widths = nil) @array_converter = Conversion::ArrayConverter.new @elements = @array_converter.convert(aligns) @widths = widths end # Lookup an alignment by index # # @param [Integer] # # @return [Symbol] alignment # # @api public def [](index) elements.fetch(index, :left) end # Return each alignment in an Array # # @return [Array] # # @api private def alignments map { |alignment| alignment } end # Evaluate alignment of the provided row # # @param [Array] row # the table row # @param [Hash] options # the table options # # @return [TTY::Table::Field] # # @api public def call(field, row, col) align_field(field, col) end private # Align each field in a row # # @param [TTY::Table::Field] field # the table field # # @param [Integer] col # the table column index # # @param [Hash] options # # @return [TTY::Table::Field] # # @api private def align_field(field, col) column_width = widths[col] alignment = Alignment.new(field.align || self[col]) field.value = alignment.format(field, column_width) end end # AlignmentSet end # Operation end # Table end # TTY
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tty-0.1.1 | lib/tty/table/operation/alignment_set.rb |