Class: Bristow::Function
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Delegate
included
Methods included from Sgetter
included
Constructor Details
#initialize(function_name: self.class.function_name, description: self.class.description, parameters: self.class.parameters) ⇒ Function
Returns a new instance of Function.
12
13
14
15
16
17
18
19
20
|
# File 'lib/bristow/function.rb', line 12
def initialize(
function_name: self.class.function_name,
description: self.class.description,
parameters: self.class.parameters
)
@function_name = function_name
@description = description
@parameters = parameters
end
|
Class Method Details
.call ⇒ Object
31
32
33
|
# File 'lib/bristow/function.rb', line 31
def self.call(...)
new.call(...)
end
|
.to_schema ⇒ Object
22
23
24
25
26
27
28
|
# File 'lib/bristow/function.rb', line 22
def self.to_schema
{
name: function_name,
description: description,
parameters: parameters
}
end
|
Instance Method Details
#call(**kwargs) ⇒ Object
35
36
37
38
39
|
# File 'lib/bristow/function.rb', line 35
def call(**kwargs)
validation_errors = validate_required_parameters!(kwargs)
return validation_errors unless validation_errors.nil?
perform(**kwargs)
end
|
41
42
43
|
# File 'lib/bristow/function.rb', line 41
def perform(...)
raise NotImplementedError, "#{self.class.name}#perform must be implemented"
end
|