Class: PromptCanary::Router

Inherits:
Object
  • Object
show all
Defined in:
lib/prompt_canary/router.rb

Class Method Summary collapse

Class Method Details

.choose(prompt_class, context) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/prompt_canary/router.rb', line 5

def self.choose(prompt_class, context)
  primary = db_primary(prompt_class) || prompt_class.primary_version
  partial = prompt_class.versions.find { |v| v.partial_rollout? || v.predicate? }
  return primary unless partial
  return primary if demoted?(prompt_class.name, partial.name)

  route_partial(partial, primary, context, prompt_class.name)
end