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