Class: SlackBot::Ext::RedisSession

Inherits:
Object
  • Object
show all
Defined in:
lib/slack/ext/redis_session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(team_id, args = {}) ⇒ RedisSession

Returns a new instance of RedisSession.



7
8
9
10
11
12
# File 'lib/slack/ext/redis_session.rb', line 7

def initialize(team_id, args={})
  @prefix = args[:prefix] || "team:#{team_id}:"
  @store = args[:store]
  @user_scoped = Hash.new
  @channel_scoped = Hash.new
end

Instance Attribute Details

#prefixObject (readonly)

Returns the value of attribute prefix.



5
6
7
# File 'lib/slack/ext/redis_session.rb', line 5

def prefix
  @prefix
end

Instance Method Details

#[](key) ⇒ Object



14
15
16
17
# File 'lib/slack/ext/redis_session.rb', line 14

def [](key)
  val = @store["#{@prefix}#{key}"]
  JSON.parse(val, quirks_mode: true) if val
end

#[]=(key, val) ⇒ Object



19
20
21
# File 'lib/slack/ext/redis_session.rb', line 19

def []=(key, val)
  @store["#{@prefix}#{key}"] = val.to_json
end

#coreObject



31
32
33
# File 'lib/slack/ext/redis_session.rb', line 31

def core
  @store
end

#for_channel(id) ⇒ Object



27
28
29
# File 'lib/slack/ext/redis_session.rb', line 27

def for_channel(id)
  @channel_scoped[id] ||= RedisSession.new(nil, prefix: "#{@prefix}channel:#{id}:", store: @store)
end

#for_user(id) ⇒ Object



23
24
25
# File 'lib/slack/ext/redis_session.rb', line 23

def for_user(id)
  @user_scoped[id] ||= RedisSession.new(nil, prefix: "#{@prefix}user:#{id}:", store: @store)
end

#to_sObject



35
36
37
# File 'lib/slack/ext/redis_session.rb', line 35

def to_s
  @store.to_s
end