pretty_version_map

in lib/omnibus/reports.rb [40:88]


    def pretty_version_map(project)
      out = ""
      version_map = project.library.version_map

      
      versions = non_nil_values(version_map.values, :version)
      guids = non_nil_values(version_map.values, :version_guid)

      
      
      
      overridden_versions = non_nil_values(version_map.values.select { |v| v[:overridden] }, :default_version)

      
      name_width = column_width(version_map.keys, "Component")
      version_width = column_width(versions, "Installed Version")
      guid_width = column_width(guids, "Version GUID")
      override_width = column_width(overridden_versions, "Overridden From")

      total_width = name_width + version_width + guid_width + override_width
      divider = "-" * total_width

      
      out << "Component".ljust(name_width)
      out << "Installed Version".ljust(version_width)
      out << "Version GUID".ljust(guid_width)
      
      out << "Overridden From".ljust(override_width) if override_width > 0
      out << "\n"
      out << divider << "\n"

      
      version_map.keys.sort.each do |name|
        version = version_map[name][:version]
        version_guid = version_map[name][:version_guid]

        default_version = version_map[name][:default_version]
        overridden = version_map[name][:overridden]

        out << "#{name}".ljust(name_width)
        out << version.to_s.ljust(version_width)
        out << version_guid.to_s.ljust(guid_width) if version_guid
        
        out << default_version.ljust(override_width) if overridden
        out << "\n"
      end
      out
    end