class Socrates::Adapters::Memory
Constants
- CHANNEL
- CLIENT_ID
Attributes
client_id[RW]
history[R]
Public Class Methods
new()
click to toggle source
Calls superclass method
Socrates::Adapters::StubUserDirectory::new
# File lib/socrates/adapters/memory.rb, line 16 def initialize super() @history = Hash.new { |hash, key| hash[key] = [] } end
Public Instance Methods
channel_from(context: nil, user: nil)
click to toggle source
# File lib/socrates/adapters/memory.rb, line 27 def channel_from(context: nil, user: nil) raise ArgumentError, "Must provide one of :context or :user" if context.nil? && user.nil? user.nil? ? CHANNEL : users_channel(user) end
client_id_from(context: nil, user: nil)
click to toggle source
# File lib/socrates/adapters/memory.rb, line 21 def client_id_from(context: nil, user: nil) raise ArgumentError, "Must provide one of :context or :user" if context.nil? && user.nil? @client_id || CLIENT_ID end
dms(user)
click to toggle source
# File lib/socrates/adapters/memory.rb, line 45 def dms(user) @history[users_channel(user)] end
last_dm(user)
click to toggle source
# File lib/socrates/adapters/memory.rb, line 49 def last_dm(user) dms(user)[-1] end
last_msg()
click to toggle source
# File lib/socrates/adapters/memory.rb, line 41 def last_msg msgs[-1] end
msgs()
click to toggle source
Methods for fetching messages and dms in specs…
# File lib/socrates/adapters/memory.rb, line 37 def msgs @history[CHANNEL] end
Private Instance Methods
send_message(channel, message)
click to toggle source
# File lib/socrates/adapters/memory.rb, line 55 def send_message(channel, message) @history[channel] << message end
users_channel(user)
click to toggle source
# File lib/socrates/adapters/memory.rb, line 59 def users_channel(user) user.respond_to?(:id) ? user.id : user end