class CF::Service::Delete

Public Instance Methods

delete_service() click to toggle source
# File lib/cf/cli/service/delete.rb, line 14
def delete_service
  if input[:all]
    return unless input[:really, "ALL SERVICES", :bad]

    client.service_instances.each do |i|
      invoke :delete_service, :service => i, :really => true
    end

    return
  end

  service = input[:service]

  return unless input[:really, service.name, :name]

  bindings = service.service_bindings

  unless bindings.empty? || !input[:unbind, bindings.collect(&:app)]
    bindings.each do |b|
      invoke :unbind_service, :service => service, :app => b.app
    end

    bindings = []
  end

  with_progress("Deleting #{c(service.name, :name)}") do |s|
    if bindings.empty?
      service.delete!
    else
      s.skip do
        apps = bindings.collect(&:app).collect { |a| b(a.name) }
        err "Service is bound to #{human_list(apps)}."
      end
    end
  end
end

Private Instance Methods

ask_really(name, color) click to toggle source
# File lib/cf/cli/service/delete.rb, line 67
def ask_really(name, color)
  ask("Really delete #{c(name, color)}?", :default => false)
end
ask_service() click to toggle source
# File lib/cf/cli/service/delete.rb, line 53
def ask_service
  services = client.service_instances
  fail "No services." if services.empty?

  ask "Which service?", :choices => services,
    :display => proc(&:name)
end
ask_unbind(apps) click to toggle source
# File lib/cf/cli/service/delete.rb, line 61
def ask_unbind(apps)
  names = human_list(apps.collect { |a| c(a.name, :name) })

  ask("Unbind from #{names} before deleting?", :default => true)
end
human_list(xs) click to toggle source
# File lib/cf/cli/service/delete.rb, line 71
def human_list(xs)
  if xs.size == 1
    xs.first
  elsif xs.size == 2
    "#{xs.first} and #{xs.last}"
  else
    last = xs.pop
    xs.join(", ") + ", and #{last}"
  end
end