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