Sha256: 2741f8d88f34256da0100a816bd38fda4c3a7aada45d9fa6a7b53a1ffa8ca0da
Contents?: true
Size: 1.63 KB
Versions: 3
Compression:
Stored size: 1.63 KB
Contents
# encoding: utf-8 require_relative 'error' module TTY class Table # Mixin to provide validation for {Table}. # # Include this mixin to add validation for options. # # @api private module Validatable # Check if table rows are the equal size # # @raise [DimensionMismatchError] # if the rows are not equal length # # @return [nil] # # @api private def assert_row_sizes(rows) size = (rows[0] || []).size rows.each do |row| next if row.size == size fail TTY::Table::DimensionMismatchError, "row size differs (#{row.size} should be #{size})" end end # Check if table type is provided # # @raise [ArgumentRequired] # # @return [Table] # # @api private def assert_table_type(value) return value if value.is_a?(TTY::Table) fail ArgumentRequired, "Expected TTY::Table instance, got #{value.inspect}" end # def assert_matching_widths(rows) # end # # def assert_string_values(rows) # end # Check if options are of required type # # @api private def validate_options!(options) header = options[:header] rows = options[:rows] if header && (!header.is_a?(Array) || header.empty?) fail InvalidArgument, ':header must be a non-empty array' end if rows && !(rows.is_a?(Array) || rows.is_a?(Hash)) fail InvalidArgument, ':rows must be a non-empty array or hash' end end end # Validatable end # Table end # TTY
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
tty-table-0.10.0 | lib/tty/table/validatable.rb |
tty-table-0.9.0 | lib/tty/table/validatable.rb |
tty-table-0.8.0 | lib/tty/table/validatable.rb |