# File lib/rhc/cartridge_helpers.rb, line 5
      def check_cartridges(names, opts={}, &block)
        cartridge_names = Array(names).map{ |s| s.strip if s && s.length > 0 }.compact
        from = opts[:from] || all_cartridges

        cartridge_names.map do |name|
          next use_cart(RHC::Rest::Cartridge.for_url(name), name) if name =~ %r(\Ahttps?://)i

          name = name.downcase
          from.find{ |c| c.name.downcase == name } ||
          begin
            carts = from.select{ |c| match_cart(c, name) }
            if carts.empty?
              paragraph { list_cartridges(from) }
              raise RHC::CartridgeNotFoundException, "There are no cartridges that match '#{name}'."
            elsif carts.length == 1
              use_cart(carts.first, name)
            else
              carts.sort!.instance_variable_set(:@for, name)
              carts
            end
          end
        end.tap do |carts|
          yield carts if block_given?
        end.each do |carts|
          if carts.is_a? Array
            name = carts.instance_variable_get(:@for)
            paragraph { list_cartridges(carts) }
            raise RHC::MultipleCartridgesException, "There are multiple cartridges matching '#{name}'. Please provide the short name of the correct cart."
          end
        end
      end