Class: Parse::Embeddings::ProviderRegistry

Inherits:
Hash
  • Object
show all
Defined in:
lib/parse/embeddings.rb

Overview

Hash subclass that enforces Provider membership at assignment time. Without this, configuration.providers[:openai] = "anything" would silently bypass register's type-check and let a duck-typed object skip Parse::Embeddings::Provider#validate_response! — defeating the whole boundary contract.

Instance Method Summary collapse

Methods inherited from Hash

#parse_file?, #parse_object

Instance Method Details

#[]=(name, provider) ⇒ Object Also known as: store



92
93
94
95
96
97
98
99
# File 'lib/parse/embeddings.rb', line 92

def []=(name, provider)
  unless provider.is_a?(Provider)
    raise ArgumentError,
          "Parse::Embeddings::ProviderRegistry: #{name.inspect} expects a " \
          "Parse::Embeddings::Provider instance (got #{provider.class})."
  end
  super(name.to_sym, provider)
end