Class: RubyLLM::Contract::SchemaValidator::EnumRule

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_llm/contract/contract/schema_validator/enum_rule.rb

Overview

Validates enum membership for a node when enum values are declared.

Instance Method Summary collapse

Constructor Details

#initialize(errors) ⇒ EnumRule

Returns a new instance of EnumRule.



8
9
10
# File 'lib/ruby_llm/contract/contract/schema_validator/enum_rule.rb', line 8

def initialize(errors)
  @errors = errors
end

Instance Method Details

#validate(node) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/ruby_llm/contract/contract/schema_validator/enum_rule.rb', line 12

def validate(node)
  allowed_values = node.schema[:enum]
  value = node.value
  return unless allowed_values
  return if allowed_values.include?(value)

  @errors << "#{node.path}: #{value.inspect} is not in enum #{allowed_values.inspect}"
end