Sha256: 78551ad34b8d911b96343587656d680df4eccf48f8fc89b1c69328996d605e17
Contents?: true
Size: 842 Bytes
Versions: 8
Compression:
Stored size: 842 Bytes
Contents
require 'redis' module Bot class Context attr_accessor :redis_client, :user def initialize(user, redis_client) @redis_client = redis_client @user = user end def method_missing(m, *args, &block) if m =~ /.+=/ self.add(m.to_s.gsub('=', ''), *args) else self.get(m) end end def get(field) data = redis_client.hget(context_key, field) JSON.parse(data) if data.present? rescue JSON::ParserError data end def set(context) self.clear redis_client.hmset(context_key, context.map { |k, v| [k, v] }.flatten) end def add(field, content) redis_client.hset context_key, field, content end def clear redis_client.del context_key end def context_key "bot:context:#{user.id}" end end end
Version data entries
8 entries across 8 versions & 1 rubygems