Module: LcpRuby::ApiTokens::ResolverRegistry

Defined in:
lib/lcp_ruby/api_tokens/resolver_registry.rb

Defined Under Namespace

Classes: Resolver

Class Method Summary collapse

Class Method Details

.clear!Object



42
43
44
45
# File 'lib/lcp_ruby/api_tokens/resolver_registry.rb', line 42

def self.clear!
  @resolvers = {}
  @sorted = nil
end

.matched?(token_string) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
# File 'lib/lcp_ruby/api_tokens/resolver_registry.rb', line 29

def self.matched?(token_string)
  return false if token_string.nil? || token_string.empty?
  sorted_resolvers.any? { |r| r.matcher.call(token_string) }
end

.register(name, priority:, matcher:, resolver:) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/lcp_ruby/api_tokens/resolver_registry.rb', line 9

def self.register(name, priority:, matcher:, resolver:)
  @resolvers[name.to_sym] = Resolver.new(
    name: name.to_sym,
    priority: priority,
    matcher: matcher,
    resolver: resolver
  )
  @sorted = nil
end

.registered?(name) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/lcp_ruby/api_tokens/resolver_registry.rb', line 34

def self.registered?(name)
  @resolvers.key?(name.to_sym)
end

.resolve(token_string) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/lcp_ruby/api_tokens/resolver_registry.rb', line 19

def self.resolve(token_string)
  return nil if token_string.nil? || token_string.empty?

  sorted_resolvers.each do |r|
    next unless r.matcher.call(token_string)
    return r.resolver.call(token_string)
  end
  nil
end

.sizeObject



38
39
40
# File 'lib/lcp_ruby/api_tokens/resolver_registry.rb', line 38

def self.size
  @resolvers.size
end