Class: Adapt::RoutingBuilder
- Inherits:
-
Object
- Object
- Adapt::RoutingBuilder
show all
- Defined in:
- lib/adapt/routing_builder.rb
Defined Under Namespace
Classes: Intent, InvalidState
Instance Method Summary
collapse
Constructor Details
29
30
31
32
33
|
# File 'lib/adapt/routing_builder.rb', line 29
def initialize
@keywords = {}
@regexps = []
@intents = []
end
|
Instance Method Details
#build(engine, python_builder) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/adapt/routing_builder.rb', line 52
def build(engine, python_builder)
@keywords.each do |group, words|
words.each do |word|
engine.register_entity(word, group)
end
end
@regexps.each do |regexp|
engine.register_regex_entity(regexp)
end
@intents.each do |intent|
builder = python_builder.new(intent.name)
intent.entities.each do |entity|
entity, method = entity.first
case method
when :required
builder.require(entity)
when :optional
builder.optionally(entity)
else
raise InvalidState.new('You should never end up here')
end
adapt_intent = builder.build
engine.register_intent_parser(adapt_intent)
end
end
@intents
end
|
#intent(name) ⇒ Object
45
46
47
48
49
50
|
# File 'lib/adapt/routing_builder.rb', line 45
def intent(name)
intent = Intent.new(name)
@intents << intent
intent
end
|
#register_keywords(category, word, *words) ⇒ Object
35
36
37
38
39
|
# File 'lib/adapt/routing_builder.rb', line 35
def register_keywords(category, word, *words)
words = [word] + words
(@keywords[category] ||= []).push(words).flatten!
end
|
#register_regex(regex) ⇒ Object
41
42
43
|
# File 'lib/adapt/routing_builder.rb', line 41
def register_regex(regex)
@regexps << regex
end
|