class Sinbotra::Bot::Conversation
Attributes
_steps[R]
current_user[R]
message[R]
platform[R]
Public Class Methods
new(bot, platform)
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 13 def initialize(bot, platform) @bot = bot @current_user = bot.current_user @message = bot.message @platform = platform end
Private Class Methods
steps(*_steps)
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 8 def steps(*_steps) @_steps = _steps end
Public Instance Methods
continue_dialogue()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 24 def continue_dialogue run_step!(current_user.conversation.step, message) end
start()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 20 def start run_step!(current_user.conversation.step, message) end
Private Instance Methods
done!()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 81 def done! current_user.end_conversation! end
get_intent(msg)
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 42 def get_intent(msg) @bot.get_intent(msg) end
has_conversation?(intent)
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 38 def has_conversation?(intent) @bot.has_conversation(intent) end
has_steps?()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 60 def has_steps? current_user.conversation.step < step_count - 1 end
next_step!()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 64 def next_step! has_steps? ? current_user.next_step! : done! end
next_step_now!()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 68 def next_step_now! if has_steps? current_user.next_step! run_step!(current_user.conversation.step, message) else raise ArgumentError, "We're out of steps, shouldn't be skipping: #{self}" end end
repeat_step!()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 77 def repeat_step! # do nothing, leave state the same end
run_step!(step_number, message)
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 52 def run_step!(step_number, message) send(step(step_number), message) end
skip_to_next_step!()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 56 def skip_to_next_step! next_step! end
start_conversation(convo_id)
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 34 def start_conversation(convo_id) @bot.start_conversation(convo_id) end
step(n)
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 48 def step(n) steps[n]; end
step_count()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 50 def step_count; steps.size; end
steps()
click to toggle source
# File lib/sinbotra/bot/conversation.rb, line 46 def steps; self.class._steps; end