Module: Confium::Crypto

Defined in:
lib/confium/crypto.rb

Class Method Summary collapse

Class Method Details

.interfacesObject

Enumerate the names of every registered interface. Primarily for introspection and tooling.



45
46
47
# File 'lib/confium/crypto.rb', line 45

def interfaces
  @interfaces.keys.dup
end

.lookup(name) ⇒ Object

Resolve a registered interface by name. Raises ArgumentError if nothing has been registered under that name.



37
38
39
40
41
# File 'lib/confium/crypto.rb', line 37

def lookup(name)
  @interfaces.fetch(name) do
    raise ArgumentError, "unknown interface #{name.inspect}"
  end
end

.register(name, klass) ⇒ Object

Register an interface klass under the symbolic name. Adding a new interface is a one-line registration; no central switch needs editing.



30
31
32
33
# File 'lib/confium/crypto.rb', line 30

def register(name, klass)
  @interfaces[name] = klass
  klass
end