1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# frozen_string_literal: true
# Aruba
module Aruba
# Platforms
module Platforms
# Generate simple table
class SimpleTable
private
attr_reader :hash, :opts
public
# Create
#
# @param [Hash] hash
# Input
def initialize(hash, opts)
@hash = hash
@opts = {
sort: true
}.merge opts
end
# Generate table
#
# @return [String]
# The table
def to_s
longest_key = hash.keys.map(&:to_s).max_by(&:length)
return '' if longest_key.nil?
name_size = longest_key.length
rows = hash.map do |k, v|
format('# %-*s => %s', name_size, k, v)
end
if opts[:sort] == true
rows.sort.join("\n")
else
rows.join("\n")
end
end
end
end
end
|