class PG::AWS_RDS_IAM::AuthTokenInjector
Public Class Methods
call(connection_string, auth_token_generators: AWS_RDS_IAM.auth_token_generators)
click to toggle source
# File lib/pg/aws_rds_iam/auth_token_injector.rb, line 6 def self.call(connection_string, auth_token_generators: AWS_RDS_IAM.auth_token_generators) new(connection_string, auth_token_generators: auth_token_generators).call end
new(connection_string, auth_token_generators:)
click to toggle source
# File lib/pg/aws_rds_iam/auth_token_injector.rb, line 10 def initialize(connection_string, auth_token_generators:) @connection_string = connection_string @connection_info = ConnectionInfo.new(connection_string) @connection_defaults = PG::Connection.conndefaults_hash @auth_token_generators = auth_token_generators end
Public Instance Methods
call()
click to toggle source
# File lib/pg/aws_rds_iam/auth_token_injector.rb, line 17 def call return @connection_string unless generate_auth_token? @connection_info.password = generate_auth_token @connection_info.to_s end
Private Instance Methods
default(key)
click to toggle source
# File lib/pg/aws_rds_iam/auth_token_injector.rb, line 41 def default(key) @connection_defaults.fetch(key) end
generate_auth_token()
click to toggle source
# File lib/pg/aws_rds_iam/auth_token_injector.rb, line 31 def generate_auth_token @auth_token_generators .fetch(@connection_info.auth_token_generator_name) .call( user: @connection_info.user || default(:user), host: @connection_info.host || default(:host), port: @connection_info.port || default(:port) ) end
generate_auth_token?()
click to toggle source
# File lib/pg/aws_rds_iam/auth_token_injector.rb, line 27 def generate_auth_token? @connection_info.auth_token_generator_name end