Class: Riffer::Evals::Evaluators::Repository
- Inherits:
-
Object
- Object
- Riffer::Evals::Evaluators::Repository
- Defined in:
- lib/riffer/evals/evaluators.rb
Overview
Repository for looking up evaluators by identifier.
Built-in evaluators are always available. Custom evaluators can be registered using Repository.register in your app initialization.
# Register a custom evaluator (config/initializers/riffer.rb)
Riffer::Evals::Evaluators::Repository.register(:my_evaluator, MyEvaluator)
# Find an evaluator
Riffer::Evals::Evaluators::Repository.find(:answer_relevancy)
# => Riffer::Evals::Evaluators::AnswerRelevancy
Constant Summary collapse
- BUILT_IN =
Built-in evaluators (always available).
{ answer_relevancy: -> { Riffer::Evals::Evaluators::AnswerRelevancy } }.freeze
Class Method Summary collapse
-
.all ⇒ Object
Returns all registered evaluators (built-in and custom).
-
.clear ⇒ Object
Clears custom registrations (for testing).
-
.find(identifier) ⇒ Object
Finds an evaluator class by identifier.
-
.register(identifier, evaluator_class) ⇒ Object
Registers a custom evaluator class with an identifier.
Class Method Details
.all ⇒ Object
Returns all registered evaluators (built-in and custom).
: () -> Hash[Symbol, singleton(Riffer::Evals::Evaluator)]
47 48 49 |
# File 'lib/riffer/evals/evaluators.rb', line 47 def all BUILT_IN.merge(@custom).transform_values(&:call) end |
.clear ⇒ Object
Clears custom registrations (for testing). Built-ins remain.
: () -> void
54 55 56 |
# File 'lib/riffer/evals/evaluators.rb', line 54 def clear @custom = {} end |
.find(identifier) ⇒ Object
Finds an evaluator class by identifier.
: ((String | Symbol)) -> singleton(Riffer::Evals::Evaluator)?
39 40 41 42 |
# File 'lib/riffer/evals/evaluators.rb', line 39 def find(identifier) id = identifier.to_sym (@custom[id] || BUILT_IN[id])&.call end |
.register(identifier, evaluator_class) ⇒ Object
Registers a custom evaluator class with an identifier.
: ((String | Symbol), singleton(Riffer::Evals::Evaluator)) -> void
32 33 34 |
# File 'lib/riffer/evals/evaluators.rb', line 32 def register(identifier, evaluator_class) @custom[identifier.to_sym] = -> { evaluator_class } end |