def _uninstall_helper(*packages, &block)
_raise_unless_available
packages, opts = args_and_opts(*packages)
packages = _list_normalizer(packages)
check_packages = \
case packages
when Hash
packages.keys
else
packages
end
present = installed?(check_packages, :details => true)[1]
return false if present.blank?
uninstall_packages = \
case packages
when Hash
present.map{|t| packages[t]}
else
present
end
block.call(uninstall_packages, opts)
return true if preview?
unless (failed = installed?(check_packages, :details => true)[1]).empty?
raise ArgumentError.new("Couldn't uninstall: #{failed.join(' ')}")
else
return true
end
end