Class: Foobara::DomainMapper
- Inherits:
-
Object
- Object
- Foobara::DomainMapper
show all
- Includes:
- CommandPatternImplementation
- Defined in:
- foobara-0.6.1/projects/domain_mapper/src/domain_mapper.rb,
foobara-0.6.1/projects/domain_mapper/lib/foobara/domain_mapper.rb
Overview
NOTE: If you depend_on a domain mapper in a command, then you need to depend on all domain mappers
that that command uses. Or you can just exclude all of them in which case Foobara won't enforce
explicit depends_on of domain mappers.
Direct Known Subclasses
Ai::AnswerBot::DomainMappers::AnthropicApi::ChatToCreateMessage, Ai::AnswerBot::DomainMappers::AnthropicApi::MessageResultToAnswer, Ai::AnswerBot::DomainMappers::AnthropicApi::MessageResultToMessage, Ai::AnswerBot::DomainMappers::AnthropicApi::ModelToFoobaraModel, Ai::AnswerBot::DomainMappers::AnthropicApi::ModelToModelEnumString, Ai::AnswerBot::DomainMappers::AnthropicApi::QuestionToCreateMessage, Ai::AnswerBot::DomainMappers::ModelToAiService, Ai::AnswerBot::DomainMappers::OllamaApi::ChatCompletionResultToMessage, Ai::AnswerBot::DomainMappers::OllamaApi::ChatCompletionToAnswer, Ai::AnswerBot::DomainMappers::OllamaApi::ChatToGenerateChatCompletion, Ai::AnswerBot::DomainMappers::OllamaApi::ModelToFoobaraModel, Ai::AnswerBot::DomainMappers::OllamaApi::ModelToModelEnumString, Ai::AnswerBot::DomainMappers::OllamaApi::QuestionToGenerateChatCompletion, Ai::AnswerBot::DomainMappers::OpenAiApi::ChatCompletionResultToMessage, Ai::AnswerBot::DomainMappers::OpenAiApi::ChatCompletionToAnswer, Ai::AnswerBot::DomainMappers::OpenAiApi::ChatToGenerateChatCompletion, Ai::AnswerBot::DomainMappers::OpenAiApi::ModelToFoobaraModel, Ai::AnswerBot::DomainMappers::OpenAiApi::ModelToModelEnumString, Ai::AnswerBot::DomainMappers::OpenAiApi::QuestionToCreateChatCompletion, Ai::AnswerBot::DomainMappers::ServiceToChatCompletionCommand, Ai::AnswerBot::DomainMappers::ServiceToListModelsCommand
Constant Summary
TruncatedInspect::MAX_LENGTH
Class Method Summary
collapse
Instance Method Summary
collapse
#inspect, truncating
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Class Method Details
.applicable?(from_value, to_value) ⇒ Boolean
43
44
45
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 43
def applicable?(from_value, to_value)
matches?(from_type, from_value) && matches?(to_type, to_value)
end
|
.applicable_score(from_value, to_value) ⇒ Object
51
52
53
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 51
def applicable_score(from_value, to_value)
[*match_score(from_type, from_value), *match_score(to_type, to_value)].sum
end
|
.foobara_on_register ⇒ Object
9
10
11
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 9
def foobara_on_register
foobara_domain.new_mapper_registered!
end
|
.from ⇒ Object
A bit hacky because Command only supports attributes inputs at the moment, ugg.
22
23
24
25
26
27
28
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 22
def from(...)
from_type = args_to_type(...)
inputs do
from from_type, :required
end
end
|
.from_type ⇒ Object
35
36
37
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 35
def from_type
inputs_type.element_types[:from]
end
|
.map(value) ⇒ Object
13
14
15
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 13
def map(value)
new(from: value).run
end
|
.map!(value) ⇒ Object
17
18
19
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 17
def map!(value)
new(from: value).run!
end
|
.matches?(type_indicator, value) ⇒ Boolean
47
48
49
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 47
def matches?(type_indicator, value)
match_score(type_indicator, value)&.>(0)
end
|
.to ⇒ Object
30
31
32
33
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 30
def to(...)
result_type = args_to_type(...)
result(result_type)
end
|
.to_type ⇒ Object
39
40
41
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 39
def to_type
result_type
end
|
Instance Method Details
#execute ⇒ Object
115
116
117
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 115
def execute
map
end
|
#from ⇒ Object
119
120
121
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 119
def from
inputs[:from]
end
|
#map ⇒ Object
123
124
125
126
127
|
# File 'projects/domain_mapper/src/domain_mapper.rb', line 123
def map
raise NotImplementedError
end
|