class Lita::Extensions::Wizard

Attributes

message[R]
robot[R]
route[R]

Public Class Methods

call(payload) click to toggle source
# File lib/lita/extensions/wizard.rb, line 6
def self.call(payload)
  new(payload).call
end
new(payload) click to toggle source
# File lib/lita/extensions/wizard.rb, line 10
def initialize(payload)
  @message = payload[:message]
  @route = payload[:route]
  @robot = payload[:robot]
  Lita.logger.debug "Initializing Lita::Extensions::Wizard with:\nMessage: #{message.body}\nRoute: #{route.inspect}"
end

Public Instance Methods

call() click to toggle source
# File lib/lita/extensions/wizard.rb, line 17
def call
  process_message if should_process_message?
  Lita.logger.debug "Handled by wizard: #{!!message.extensions[:handled_by_wizard]}"
  Lita.logger.debug "Dummy route: #{route.extensions[:dummy] == true}"
  ret = compute_return_value
  Lita.logger.debug "Returning #{ret.inspect}"
  ret
end

Protected Instance Methods

already_processed?() click to toggle source
# File lib/lita/extensions/wizard.rb, line 39
def already_processed?
  message.extensions[:processed_by_wizard]
end
compute_return_value() click to toggle source
# File lib/lita/extensions/wizard.rb, line 51
def compute_return_value
  if message.extensions[:handled_by_wizard]
    route.extensions[:dummy] == true
  else
    !route.extensions[:dummy]
  end
end
private_message?() click to toggle source
# File lib/lita/extensions/wizard.rb, line 43
def private_message?
  message.private_message?
end
process_message() click to toggle source
# File lib/lita/extensions/wizard.rb, line 28
def process_message
  Lita.logger.debug "Processing message"
  message.extensions[:processed_by_wizard] = true
  message.extensions[:handled_by_wizard] = Lita::Wizard.handle_message(robot, message)
  Lita.logger.debug "Message processed: #{message.extensions.inspect}"
end
should_process_message?() click to toggle source
# File lib/lita/extensions/wizard.rb, line 35
def should_process_message?
  !already_processed? && private_message? && user_has_pending_wizard?
end
user_has_pending_wizard?() click to toggle source
# File lib/lita/extensions/wizard.rb, line 47
def user_has_pending_wizard?
  Lita::Wizard.pending_wizard?(message.user.id)
end