Class: LinkMiddleware::RedisStore

Inherits:
Object
  • Object
show all
Defined in:
lib/link-middleware/redis_store.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ RedisStore

Returns a new instance of RedisStore.



3
4
5
6
7
8
9
# File 'lib/link-middleware/redis_store.rb', line 3

def initialize(options={})
  if options[:store]
    @redis = options[:store]
  else  
    @redis = Redis.new(options)        
  end
end

Instance Method Details

#add(context_uri, header) ⇒ Object



11
12
13
14
15
16
# File 'lib/link-middleware/redis_store.rb', line 11

def add(context_uri, header)
  header.links.each do |link|
    @redis.sadd context_uri, link.to_s
  end
  true
end

#read(context_uri) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/link-middleware/redis_store.rb', line 29

def read(context_uri)
  header = LinkHeader.new
  links = @redis.smembers context_uri
  links.each do |link|
    header << LinkHeader.parse(link).links.first
  end
  header
end

#remove(context_uri, header) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/link-middleware/redis_store.rb', line 18

def remove(context_uri, header)
  process = true
  header.links.each do |link|
    process = process && @redis.sismember(context_uri, link.to_s)
  end
  header.links.each do |link|
    @redis.srem context_uri, link.to_s
  end if process
  process
end