Sha256: 726b956b86a6b9320fa35043f8487c6f7260d8fa8c55658ea9171476763db55a
Contents?: true
Size: 1.03 KB
Versions: 12
Compression:
Stored size: 1.03 KB
Contents
module Bot class Handler @@responder_chain = nil def self.use(responder) responder_chain.add(responder) end def self.handle(messages) new.handle(messages) end def handle(messages) messages.flat_map { |m| handle_message(m) } end def execute_chain(message, responses, user) context = Bot::Context.new(user, Bot.configuration.redis) responder_chain.responders.each do |responder| responder = responder.new(message, user, responses, self, context) if responder.can_respond_to_type?(message['type']) && responder.can_handle? responses << responder.handle break end end responses end def responder_chain @@responder_chain ||= Bot::ResponderChain.new end def self.responder_chain @@responder_chain ||= Bot::ResponderChain.new end protected def handle_message(message) user = user_for(message) execute_chain(message, [], user).flatten end def user_for(message) end end end
Version data entries
12 entries across 12 versions & 1 rubygems