Class: RubyLLM::Contract::Validator
- Inherits:
-
Object
- Object
- RubyLLM::Contract::Validator
- Defined in:
- lib/ruby_llm/contract/contract/validator.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.validate(raw_output:, definition:, output_type:, input: nil, schema: nil) ⇒ Object
17 18 19 20 |
# File 'lib/ruby_llm/contract/contract/validator.rb', line 17 def self.validate(raw_output:, definition:, output_type:, input: nil, schema: nil) new.validate(raw_output: raw_output, definition: definition, output_type: output_type, input: input, schema: schema) end |
Instance Method Details
#validate(raw_output:, definition:, output_type:, input: nil, schema: nil) ⇒ Object
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/ruby_llm/contract/contract/validator.rb', line 6 def validate(raw_output:, definition:, output_type:, input: nil, schema: nil) effective_definition = schema ? with_json_strategy(definition) : definition parsed_output = parse_output(raw_output, effective_definition) return parsed_output if parse_error?(parsed_output) effective_output = coerce_and_freeze(parsed_output, output_type, schema) errors = collect_errors(effective_output, schema, definition, input) { parsed_output: effective_output[:value], errors: errors, status: errors.empty? ? :ok : :validation_failed } end |