class AwsPublicIps::Formatters::Text

Public Class Methods

new(results, options) click to toggle source
# File lib/aws_public_ips/formatters/text.rb, line 6
def initialize(results, options)
  @results = results
  @options = options
end

Public Instance Methods

format() click to toggle source
# File lib/aws_public_ips/formatters/text.rb, line 11
def format
  lines = @options[:verbose] ? format_verbose : format_normal
  lines.uniq.join("\n")
end
format_normal() click to toggle source
# File lib/aws_public_ips/formatters/text.rb, line 16
def format_normal
  @results.values.flatten.flat_map do |hash|
    hash[:ip_addresses]
  end
end
format_verbose() click to toggle source
# File lib/aws_public_ips/formatters/text.rb, line 22
def format_verbose
  @results.flat_map do |service, hashes|
    next [] if hashes.empty?

    ["## #{service}"] + hashes.flat_map do |hash|
      [hash[:id], hash[:hostname]].compact.map do |line|
        "# #{line}"
      end + hash[:ip_addresses]
    end
  end
end