class Aptible::CLI::Formatter::GroupedKeyedList

Attributes

group[R]

Public Class Methods

new(group, y) click to toggle source
Calls superclass method
# File lib/aptible/cli/formatter/grouped_keyed_list.rb, line 15
def initialize(group, y)
  @group = group
  validate_group!
  super(y)
end

Public Instance Methods

groups() click to toggle source
# File lib/aptible/cli/formatter/grouped_keyed_list.rb, line 21
def groups
  children.group_by(&grouper)
end

Private Instance Methods

grouper() click to toggle source
# File lib/aptible/cli/formatter/grouped_keyed_list.rb, line 27
def grouper
  case group
  when String
    lambda do |n|
      n.children.fetch(group)
    end
  when Hash
    first, second = group.to_a.first
    lambda do |n|
      n.children.fetch(first).children.fetch(second)
    end
  end
end
validate_group!() click to toggle source
# File lib/aptible/cli/formatter/grouped_keyed_list.rb, line 41
def validate_group!
  return if group.is_a?(String)
  if group.is_a?(Hash)
    keys = group.keys
    raise InvalidGroup, group if keys.size != 1
    raise InvalidGroup, group unless group[keys.first].is_a?(String)
    return
  end
  raise InvalidGroup(group)
end