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