class CF::Service::Services

Public Instance Methods

services() click to toggle source
# File lib/cf/cli/service/services.rb, line 20
def services
  return show_marketplace if input[:marketplace]

  set_services
  return show_full if input[:full]
  return show_services_table
end

Private Instance Methods

service_matches(i, options) click to toggle source
# File lib/cf/cli/service/services.rb, line 97
def service_matches(i, options)
  if app = options[:app]
    return false unless app.services.include? i
  end

  if name = options[:name]
    return false unless File.fnmatch(name, i.name)
  end

  helper = ServiceInstanceHelper.new(i)
  return helper.matches(options)
end
services_msg() click to toggle source
# File lib/cf/cli/service/services.rb, line 89
def services_msg
  if space = input[:space]
    "Getting services in #{c(space.name, :name)}"
  else
    "Getting services"
  end
end
set_services() click to toggle source
# File lib/cf/cli/service/services.rb, line 30
def set_services
  @services =
    with_progress(services_msg) do
      client.service_instances(:depth => 2)
    end

  line unless quiet?

  if @services.empty? and !quiet?
    line "No services."
    return
  end

  @services.reject! do |i|
    !service_matches(i, input)
  end
end
show_full() click to toggle source
# File lib/cf/cli/service/services.rb, line 66
def show_full
  spaced(@services) do |s|
    invoke :service, :service => s
  end
end
show_marketplace() click to toggle source
# File lib/cf/cli/service/services.rb, line 48
def show_marketplace
  services = with_progress("Getting services") { client.services }

  line unless quiet?

  table(
    ["service", "version", "provider", "plans", "description"],
    services.sort_by(&:label).collect { |s|
      presenter = ServiceHelper.new(s)
      [c(presenter.label, :name),
         presenter.version,
         presenter.provider,
         presenter.service_plans,
         presenter.description
      ]
    })
end
show_services_table() click to toggle source
# File lib/cf/cli/service/services.rb, line 72
def show_services_table
  table(
    ["name", "service", "provider", "version", "plan", "bound apps"],
    @services.collect { |instance|
      presenter = ServiceInstanceHelper.new(instance)
      apps     = name_list(presenter.service_bindings.collect(&:app))

      label = presenter.service_label
      provider = presenter.service_provider
      version = presenter.version
      plan_name = presenter.plan_name

      [ c(presenter.name, :name), label, provider, version, plan_name, apps]
    })

end