class BotPlatform::Dialogs::DialogContext
Attributes
dialog_stack[RW]
dialogs[RW]
turn_context[RW]
Public Class Methods
new(dialogs, turn_context, dialog_state)
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 10 def initialize(dialogs, turn_context, dialog_state) assert_dialog_set_is_valid dialogs assert_turn_context_is_valid turn_context assert_dialog_state_is_valid dialog_state @dialogs = dialogs @turn_context = turn_context @dialog_stack = dialog_state.dialog_stack end
Public Instance Methods
active_dialog()
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 20 def active_dialog return nil if @dialog_stack.nil? || @dialog_stack.length==0 @dialog_stack.last end
continue_dialog()
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 43 def continue_dialog instance = active_dialog if instance != nil dialog = @dialogs.find instance.dialog_id if dialog return dialog.continue self end end return DialogResult.new :empty end
prompt(dialog_id, options)
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 36 def prompt(dialog_id, options) assert_dialog_id_is_valid dialog_id assert_is_not_empty options start_dialog dialog_id, options end
replace_dialog(dialog_id, options)
click to toggle source
stop active dialog and start a new dialog by given
# File lib/bot_platform/dialogs/dialog_context.rb, line 85 def replace_dialog(dialog_id, options) unless active_dialog.nil? @dialog_stack.pop end return start_dialog(dialog_id, options) end
reprompt()
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 93 def reprompt dialog = active_dialog if dialog != nil dialog.reprompt(turn_context) end end
start_dialog(dialog_id, options)
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 25 def start_dialog(dialog_id, options) assert_dialog_id_is_valid dialog_id dialog = @dialogs.find(dialog_id) raise "dialog(id=#{dialog_id}) cannot be found." if dialog.nil? dialog_instance = DialogInstance.new dialog_id @dialog_stack.push dialog_instance dialog.start self, options end
stop_active_dialog()
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 100 def stop_active_dialog dialog = active_dialog if dialog != nil dialog.stop @dialog_stack.pop end end
stop_all()
click to toggle source
stop all dialogs in the stack
# File lib/bot_platform/dialogs/dialog_context.rb, line 75 def stop_all if @dialog_stack.any? @dialog_stack.each do |dialog| dialog.stop end @dialog_stack = [] end end
stop_dialog(result=nil)
click to toggle source
# File lib/bot_platform/dialogs/dialog_context.rb, line 55 def stop_dialog(result=nil) if @dialog_stack.any? @dialog_stack.pop end instance = active_dialog #previous dialog if !instance.nil? dialog = @dialogs.find instance.dialog_id if dialog return dialog.resume self, DialogReason::END_CALLED, result end else return DialogResult.new :complete, result end end