Module: EasyCreds::Provider

Defined in:
lib/easy_creds/provider.rb

Overview

Registry of available secret-storage providers. v1 ships only :onepassword. Future providers (env-var, AWS Secrets Manager, HashiCorp Vault) register here without changing call-sites.

Class Method Summary collapse

Class Method Details

.build(name, **opts) ⇒ Object



21
22
23
# File 'lib/easy_creds/provider.rb', line 21

def build(name, **opts)
  fetch(name).new(**opts)
end

.fetch(name) ⇒ Object



15
16
17
18
19
# File 'lib/easy_creds/provider.rb', line 15

def fetch(name)
  @registry.fetch(name.to_sym) do
    raise ArgumentError, "Unknown provider '#{name}'. Registered: #{@registry.keys.join(', ')}"
  end
end

.register(name, klass) ⇒ Object



11
12
13
# File 'lib/easy_creds/provider.rb', line 11

def register(name, klass)
  @registry[name.to_sym] = klass
end

.registeredObject



25
26
27
# File 'lib/easy_creds/provider.rb', line 25

def registered
  @registry.keys
end