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