Class: Socrates::Adapters::MemoryAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/socrates/adapters/memory_adapter.rb

Constant Summary collapse

CLIENT_ID =
"MEMORY"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMemoryAdapter

Returns a new instance of MemoryAdapter.



9
10
11
12
13
# File 'lib/socrates/adapters/memory_adapter.rb', line 9

def initialize
  @history = []
  @dms     = Hash.new { |hash, key| hash[key] = [] }
  @users   = []
end

Instance Attribute Details

#dmsObject (readonly)

Returns the value of attribute dms.



6
7
8
# File 'lib/socrates/adapters/memory_adapter.rb', line 6

def dms
  @dms
end

#emailObject

Returns the value of attribute email.



7
8
9
# File 'lib/socrates/adapters/memory_adapter.rb', line 7

def email
  @email
end

#historyObject (readonly)

Returns the value of attribute history.



6
7
8
# File 'lib/socrates/adapters/memory_adapter.rb', line 6

def history
  @history
end

#usersObject

Returns the value of attribute users.



7
8
9
# File 'lib/socrates/adapters/memory_adapter.rb', line 7

def users
  @users
end

Instance Method Details

#add_user(id: nil, name: nil, first: nil, last: nil, email: nil) ⇒ Object



33
34
35
# File 'lib/socrates/adapters/memory_adapter.rb', line 33

def add_user(id: nil, name: nil, first: nil, last: nil, email: nil)
  users << User.new(id, name, Profile.new(first, last, email))
end

#client_id_from_context(_context) ⇒ Object



15
16
17
# File 'lib/socrates/adapters/memory_adapter.rb', line 15

def client_id_from_context(_context)
  CLIENT_ID
end

#last_messageObject



29
30
31
# File 'lib/socrates/adapters/memory_adapter.rb', line 29

def last_message
  @history.last
end

#lookup_emailObject



41
42
43
# File 'lib/socrates/adapters/memory_adapter.rb', line 41

def lookup_email(*)
  email
end

#send_direct_message(message, user) ⇒ Object



23
24
25
26
27
# File 'lib/socrates/adapters/memory_adapter.rb', line 23

def send_direct_message(message, user, *)
  user = user.id if user.respond_to?(:id)

  @dms[user] << message
end

#send_message(message) ⇒ Object



19
20
21
# File 'lib/socrates/adapters/memory_adapter.rb', line 19

def send_message(message, *)
  @history << message
end

#users_listObject



37
38
39
# File 'lib/socrates/adapters/memory_adapter.rb', line 37

def users_list
  Response.new(users)
end