Sha256: 16a416d4dec3cc1da5dec6a3bc81649046acebf5f7b56c8800761f62643973a6
Contents?: true
Size: 985 Bytes
Versions: 10
Compression:
Stored size: 985 Bytes
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) responder_chain.responders.each do |responder| responder = responder.new(message, user, responses, self) 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
10 entries across 10 versions & 1 rubygems