class Google::Cloud::Credentials

def self.default scope: nil


Returns the default credentials.
#
def self.default scope: nil
  env  = ->(v) { ENV[v] }
  json = ->(v) { JSON.parse ENV[v] rescue nil unless ENV[v].nil? }
  path = ->(p) { ::File.file? p }
  # First try to find keyfile file from environment variables.
  self::PATH_ENV_VARS.map(&env).compact.select(&path)
    .each do |file|
      return new file, scope: scope
    end
  # Second try to find keyfile json from environment variables.
  self::JSON_ENV_VARS.map(&json).compact.each do |hash|
    return new hash, scope: scope
  end
  # Third try to find keyfile file from known file paths.
  self::DEFAULT_PATHS.select(&path).each do |file|
    return new file, scope: scope
  end
  # Finally get instantiated client from Google::Auth.
  scope ||= self::SCOPE
  client = Google::Auth.get_application_default scope
  new client
end