Method: ItchRewards::CLI::Helper#objects_to_table

Defined in:
lib/itch_rewards/cli.rb

#objects_to_table(objects) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/itch_rewards/cli.rb', line 57

def objects_to_table(objects)
  objects = Array(objects)
  return nil if objects.none?
  if objects.first.is_a? Hash
    headers = objects.first.keys.sort          
    data = objects.map {|v| v.values_at(*headers) }
    headers = headers.map(&:upcase)
  else
    fields = objects.first.instance_variables.sort
    data = objects.map do |object|
      fields.map {|k| object.instance_variable_get(k) }
    end
    headers = fields.map {|f| f.to_s[1..].upcase }
  end

  TTY::Table.new(headers, data)
end