class Locd::CLI::Table
Constants
- NULL
- SUPERSCRIPT_NUMBERS
Unicode superscript number to use as references for columns with descriptions.
@return [Array<String>]
Public Class Methods
build(&block)
click to toggle source
@todo Document build method.
@param [type] arg_name
@todo Add name param description.
@return [return_type]
@todo Document return value.
# File lib/locd/cli/table.rb, line 80 def self.build &block new.tap &block end
new()
click to toggle source
# File lib/locd/cli/table.rb, line 84 def initialize @columns = [] @rows = [] end
Public Instance Methods
column(*args, &getter)
click to toggle source
# File lib/locd/cli/table.rb, line 97 def column *args, &getter @columns << Column.new( *args, &getter ) end
Also aliased as: col
each(&block)
click to toggle source
# File lib/locd/cli/table.rb, line 89 def each &block @rows.each &block end
each_index(&block)
click to toggle source
# File lib/locd/cli/table.rb, line 93 def each_index &block @rows.each_index &block end
rows(entries = nil)
click to toggle source
# File lib/locd/cli/table.rb, line 104 def rows entries = nil unless entries.nil? @rows = entries.to_a end @rows end
to_a(header: true, col_desc_refs: true)
click to toggle source
# File lib/locd/cli/table.rb, line 113 def to_a header: true, col_desc_refs: true [].tap do |array| if header desc_ref_index = 0 array << @columns.map { |column| if column.desc && col_desc_refs desc_ref_index += 1 "#{ column.name }#{ SUPERSCRIPT_NUMBERS[desc_ref_index] }" else column.name end } end @rows.each do |row| values = if NRSER.array_like? row row.to_a else @columns.map do |column| column.getter.call( row ) end end array << values.map { |value| if value.nil? NULL else value.to_s end } end end end