Class: RubyLLM::Contract::Definition
- Inherits:
-
Object
- Object
- RubyLLM::Contract::Definition
- Defined in:
- lib/ruby_llm/contract/contract/definition.rb
Instance Attribute Summary collapse
-
#invariants ⇒ Object
readonly
Returns the value of attribute invariants.
-
#parse_strategy ⇒ Object
readonly
Returns the value of attribute parse_strategy.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(&block) ⇒ Definition
constructor
A new instance of Definition.
- #invariant(description, &block) ⇒ Object (also: #validate)
- #parse(strategy) ⇒ Object
Constructor Details
#initialize(&block) ⇒ Definition
Returns a new instance of Definition.
8 9 10 11 12 13 14 |
# File 'lib/ruby_llm/contract/contract/definition.rb', line 8 def initialize(&block) @parse_strategy = :text @invariants = [] instance_eval(&block) if block @invariants = @invariants.freeze freeze end |
Instance Attribute Details
#invariants ⇒ Object (readonly)
Returns the value of attribute invariants.
6 7 8 |
# File 'lib/ruby_llm/contract/contract/definition.rb', line 6 def invariants @invariants end |
#parse_strategy ⇒ Object (readonly)
Returns the value of attribute parse_strategy.
6 7 8 |
# File 'lib/ruby_llm/contract/contract/definition.rb', line 6 def parse_strategy @parse_strategy end |
Class Method Details
.build ⇒ Object
25 26 27 |
# File 'lib/ruby_llm/contract/contract/definition.rb', line 25 def self.build(&) new(&) end |
.merge(base, extra_invariants: [], parse_override: nil) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/ruby_llm/contract/contract/definition.rb', line 29 def self.merge(base, extra_invariants: [], parse_override: nil) new do parse(parse_override || base.parse_strategy) (base.invariants + extra_invariants).each do |inv| @invariants << inv end end end |
Instance Method Details
#invariant(description, &block) ⇒ Object Also known as: validate
20 21 22 |
# File 'lib/ruby_llm/contract/contract/definition.rb', line 20 def invariant(description, &block) @invariants << Invariant.new(description, block) end |
#parse(strategy) ⇒ Object
16 17 18 |
# File 'lib/ruby_llm/contract/contract/definition.rb', line 16 def parse(strategy) @parse_strategy = strategy end |