class ShopifyAPI::Auth::AuthScopes
Constants
- SCOPE_DELIMITER
Attributes
Public Class Methods
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 12 def initialize(scope_names = []) @compressed_scopes = T.let([].to_set, T::Set[String]) @expanded_scopes = T.let([].to_set, T::Set[String]) if scope_names.is_a?(String) scope_names = scope_names.to_s.split(SCOPE_DELIMITER) end store_scopes(scope_names) end
Public Instance Methods
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 39 def ==(other) !other.nil? && other.class == self.class && compressed_scopes == other.compressed_scopes end
Also aliased as: eql?
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 24 def covers?(auth_scopes) auth_scopes.compressed_scopes <= expanded_scopes end
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 48 def hash compressed_scopes.hash end
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 34 def to_a compressed_scopes.to_a end
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 29 def to_s to_a.join(SCOPE_DELIMITER) end
Private Instance Methods
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 69 def implied_scope(scope) is_write_scope = scope =~ /\A(unauthenticated_)?write_(.*)\z/ "#{Regexp.last_match(1)}read_#{Regexp.last_match(2)}" if is_write_scope end
Source
# File lib/shopify_api/auth/auth_scopes.rb, line 60 def store_scopes(scope_names) scopes = scope_names.map(&:strip).reject(&:empty?).to_set implied_scopes = scopes.map { |scope| implied_scope(scope) }.compact @compressed_scopes = scopes - implied_scopes @expanded_scopes = scopes + implied_scopes end