Class: Adhearsion::CallController::Input::MenuBuilder
- Inherits:
-
Object
- Object
- Adhearsion::CallController::Input::MenuBuilder
show all
- Defined in:
- lib/adhearsion/call_controller/input/menu_builder.rb
Defined Under Namespace
Classes: Matcher
Instance Method Summary
collapse
Constructor Details
#initialize(options, &block) ⇒ MenuBuilder
Returns a new instance of MenuBuilder.
9
10
11
12
13
14
|
# File 'lib/adhearsion/call_controller/input/menu_builder.rb', line 9
def initialize(options, &block)
@options = options
@matchers = []
@callbacks = {}
build(&block)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
79
80
81
82
83
84
85
|
# File 'lib/adhearsion/call_controller/input/menu_builder.rb', line 79
def method_missing(method_name, *args, &block)
if @context
@context.send method_name, *args, &block
else
super
end
end
|
Instance Method Details
#execute(output_document, controller) ⇒ Object
34
35
36
37
38
39
40
41
42
|
# File 'lib/adhearsion/call_controller/input/menu_builder.rb', line 34
def execute(output_document, controller)
catch :match do
(@options[:tries] || 1).times do
result = PromptBuilder.new(output_document, grammars, @options).execute(controller)
process_result result
end
execute_hook :failure
end
end
|
#failure(&block) ⇒ Object
30
31
32
|
# File 'lib/adhearsion/call_controller/input/menu_builder.rb', line 30
def failure(&block)
register_user_supplied_callback :failure, &block
end
|
#invalid(&block) ⇒ Object
22
23
24
|
# File 'lib/adhearsion/call_controller/input/menu_builder.rb', line 22
def invalid(&block)
register_user_supplied_callback :nomatch, &block
end
|
#match(*args, &block) ⇒ Object
16
17
18
19
20
|
# File 'lib/adhearsion/call_controller/input/menu_builder.rb', line 16
def match(*args, &block)
payload = block || args.pop
@matchers << Matcher.new(payload, args)
end
|
#timeout(&block) ⇒ Object
26
27
28
|
# File 'lib/adhearsion/call_controller/input/menu_builder.rb', line 26
def timeout(&block)
register_user_supplied_callback :noinput, &block
end
|