class PG::AWS_RDS_IAM::AuthTokenGeneratorRegistry
Registers {AuthTokenGenerator}s to be used to generate authentication tokens for `PG::Connection`s that have the `aws_rds_iam_auth_token_generator` connection parameter set to the registered name.
Public Class Methods
new(default_auth_token_generator_class: AuthTokenGenerator)
click to toggle source
Creates a new `AuthTokenRegistry`.
@param default_auth_token_generator_class [Class] the class to register as the default {AuthTokenGenerator}
# File lib/pg/aws_rds_iam/auth_token_generator_registry.rb, line 11 def initialize(default_auth_token_generator_class: AuthTokenGenerator) @default_auth_token_generator_class = default_auth_token_generator_class reset end
Public Instance Methods
add(name, &block)
click to toggle source
Registers an {AuthTokenGenerator}.
@param name [String, Symbol] @return [void] @yieldreturn [AuthTokenGenerator]
# File lib/pg/aws_rds_iam/auth_token_generator_registry.rb, line 21 def add(name, &block) @registry[name.to_s] = Memoizer.new(&block) end
fetch(name)
click to toggle source
Looks up an {AuthTokenGenerator} by name.
@param name [String, Symbol] @return [AuthTokenGenerator]
# File lib/pg/aws_rds_iam/auth_token_generator_registry.rb, line 29 def fetch(name) @registry.fetch(name.to_s).call end
remove(name)
click to toggle source
Unregisters an {AuthTokenGenerator}.
@param name [String, Symbol] @return [void]
# File lib/pg/aws_rds_iam/auth_token_generator_registry.rb, line 37 def remove(name) @registry.delete name.to_s end
reset()
click to toggle source
Unregisters all {AuthTokenGenerator}s and re-registers the default {AuthTokenGenerator}.
@return [void]
# File lib/pg/aws_rds_iam/auth_token_generator_registry.rb, line 44 def reset @registry = {} add :default do config = Aws::RDS::Client.new.config @default_auth_token_generator_class.new(credentials: config.credentials, region: config.region) end end