class AmazingPrint::Formatters::ObjectFormatter

def format

def format
  vars = variables.map do |var|
    property = var.to_s[1..].to_sym # to_s because of some monkey patching done by Puppet.
    accessor = if object.respond_to?(:"#{property}=")
                 object.respond_to?(property) ? :accessor : :writer
               else
                 object.respond_to?(property) ? :reader : nil
               end
    if accessor
      ["attr_#{accessor} :#{property}", var]
    else
      [var.to_s, var]
    end
  end
  data = (options[:sort_vars] ? vars.sort : vars).map do |declaration, var|
    key = left_aligned do
      align(declaration, declaration.size)
    end
    unless options[:plain]
      key = if key =~ /(@\w+)/
              key.sub(Regexp.last_match(1), colorize(Regexp.last_match(1), :variable))
            else
              key.sub(/(attr_\w+)\s(:\w+)/, "#{colorize('\\1', :keyword)} #{colorize('\\2', :method)}")
            end
    end
    indented do
      key + colorize(' = ', :hash) + inspector.awesome(object.instance_variable_get(var))
    end
  end
  if options[:multiline]
    "#<#{awesome_instance}\n#{data.join(%(,\n))}\n#{outdent}>"
  else
    "#<#{awesome_instance} #{data.join(', ')}>"
  end
end