class BotPlatform::Dialogs::Prompts::Prompt
Attributes
validator[R]
Public Class Methods
new(dialog_id, validtor=nil)
click to toggle source
Calls superclass method
BotPlatform::Dialogs::Dialog::new
# File lib/bot_platform/dialogs/prompts/prompt.rb, line 9 def initialize(dialog_id, validtor=nil) super(dialog_id) @validator = validator end
Public Instance Methods
continue(dc)
click to toggle source
# File lib/bot_platform/dialogs/prompts/prompt.rb, line 26 def continue(dc) assert_dialog_context_is_valid dc if dc.turn_context.activity.type != BotPlatform::Activity::TYPES[:message] # do nothing return BotPlatform::Dialogs::DialogResult.new :complete end instance = dc.active_dialog state = instance.state[:state] options = instance.state[:options] recognized = on_recognize(dc.turn_context, state, options) is_valid = false if !@validator.nil? prompt_validator_ctx = PromptValidatorContext.new dc.turn_context, recognized, state, options is_valid = @validator.send(prompt_validator_ctx) elsif recognized.succeeded is_valid = true end if is_valid return dc.stop_dialog(recognized.value) else on_prompt(dc.turn_context, state, options, true) end return BotPlatform::Dialogs::DialogResult.new :end_of_turn end
on_prompt(turn_context, state, options, is_retry)
click to toggle source
# File lib/bot_platform/dialogs/prompts/prompt.rb, line 75 def on_prompt(turn_context, state, options, is_retry) raise "not implemented(abstrct in super)" end
on_recognize(turn_context, state, options, is_retry)
click to toggle source
# File lib/bot_platform/dialogs/prompts/prompt.rb, line 79 def on_recognize(turn_context, state, options, is_retry) raise "not implemented(abstrct in super)" end
repromp(ttx, instance)
click to toggle source
# File lib/bot_platform/dialogs/prompts/prompt.rb, line 65 def repromp(ttx, instance) assert_turn_context_is_valid ttx assert_dialog_instance_is_valid instance state = instace.state[:state] options = instance.state[:options] on_prompt(ttx, state, options, false) end
resume(dc, result=null)
click to toggle source
# File lib/bot_platform/dialogs/prompts/prompt.rb, line 58 def resume(dc, result=null) assert_dialog_context_is_valid dc reprompt(dc.turn_context, dc.active_dialog) return BotPlatform::Dialogs::DialogResult.new :end_of_turn end
start(dc, options)
click to toggle source
# File lib/bot_platform/dialogs/prompts/prompt.rb, line 14 def start(dc, options) assert_dialog_context_is_valid dc assert_prompt_options_is_valid options state = dc.active_dialog.state state[:options] = options state[:state] = {} on_prompt(dc.turn_context, state[:state], state[:options], false) return BotPlatform::Dialogs::DialogResult.new :end_of_turn end