# File lib/rhc/commands/cartridge.rb, line 38
    def list
      carts = rest_client.cartridges.sort_by{ |c| "#{c.type == 'standalone' && 1}_#{c.tags.include?('experimental') ? 1 : 0}_#{(c.display_name || c.name).downcase}" }

      pager

      if options.verbose
        carts.each do |c|
          paragraph do
            name = c.display_name != c.name && "#{color(c.display_name, :cyan)} [#{c.name}]" || c.name
            tags = c.tags - RHC::Rest::Cartridge::HIDDEN_TAGS
            say header([name, "(#{c.only_in_existing? ? 'addon' : 'web'})"])
            say c.description
            paragraph{ say "Tagged with: #{tags.sort.join(', ')}" } if tags.present?
            paragraph{ say format_usage_message(c) } if c.usage_rate?
          end
        end
      else
        say table(carts.collect do |c|
          [c.usage_rate? ? "#{c.name} (*)" : c.name,
           c.display_name,
           c.only_in_existing? ? 'addon' : 'web']
        end)
      end

      paragraph{ say "Note: Web cartridges can only be added to new applications." }
      paragraph{ say "(*) denotes a cartridge with additional usage costs." } if carts.any? { |c| c.usage_rate? }

      0
    end