Module: Google::Auth::ScopeUtil
- Defined in:
- lib/googleauth/scope_util.rb
Overview
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.
Constant Summary collapse
- ALIASES =
Aliases understood by this utility
{ "email" => "https://www.googleapis.com/auth/userinfo.email", "profile" => "https://www.googleapis.com/auth/userinfo.profile", "openid" => "https://www.googleapis.com/auth/plus.me" }.freeze
Class Method Summary collapse
-
.as_array(scope) ⇒ Array<String>
Ensure the input is an array.
-
.normalize(scope) ⇒ Array<String>
Normalize the input, which may be an array of scopes or a whitespace- delimited scope string.
Class Method Details
.as_array(scope) ⇒ Array<String>
Ensure the input is an array. If a single string is passed in, splits it via whitespace. Does not interpret aliases.
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# 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) ⇒ Array<String>
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.
49 50 51 52 |
# File 'lib/googleauth/scope_util.rb', line 49 def self.normalize scope list = as_array scope list.map { |item| ALIASES[item] || item } end |