module Google::Auth::ScopeUtil

Small utility for normalizing scopes into canonical form.

The canonical form of scopes is as an array of strings, each in the form of a full URL. This utility converts space-delimited scope strings into this form, and handles a small number of common aliases.

This is used by UserRefreshCredentials to verify that a credential grants a requested scope.

Constants

ALIASES

Aliases understood by this utility

Public Class Methods

as_array(scope) click to toggle source

Ensure the input is an array. If a single string is passed in, splits it via whitespace. Does not interpret aliases.

@param scope [String,Array<String>] Input scope(s) @return [Array<String>] Always an array of strings @raise ArgumentError If the input is not a string or array of strings

# File lib/googleauth/scope_util.rb, line 62
def self.as_array scope
  case scope
  when Array
    scope.each do |item|
      unless item.is_a? String
        raise ArgumentError, "Invalid scope value: #{item.inspect}. Must be string or array"
      end
    end
    scope
  when String
    scope.split
  else
    raise ArgumentError, "Invalid scope value: #{scope.inspect}. Must be string or array"
  end
end
normalize(scope) click to toggle source

Normalize the input, which may be an array of scopes or a whitespace- delimited scope string. The output is always an array, even if a single scope is input.

@param scope [String,Array<String>] Input scope(s) @return [Array<String>] An array of scopes in canonical form.

# File lib/googleauth/scope_util.rb, line 49
def self.normalize scope
  list = as_array scope
  list.map { |item| ALIASES[item] || item }
end