redis-session-retrieve 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +11 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +28 -0
- data/Rakefile +1 -0
- data/lib/redis-session-retrieve.rb +16 -0
- data/lib/redis-session-retrieve/fetcher.rb +27 -0
- data/lib/redis-session-retrieve/serializer.rb +13 -0
- data/lib/redis-session-retrieve/version.rb +3 -0
- data/readme.md +17 -0
- data/redis-session-retrieve.gemspec +24 -0
- data/spec/fetcher_spec.rb +39 -0
- data/spec/serializer_spec.rb +12 -0
- metadata +109 -0
data/.travis.yml
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
language: ruby
|
|
2
|
+
rvm:
|
|
3
|
+
- "1.8.7"
|
|
4
|
+
- "1.9.2"
|
|
5
|
+
- "1.9.3"
|
|
6
|
+
- jruby-18mode # JRuby in 1.8 mode
|
|
7
|
+
- jruby-19mode # JRuby in 1.9 mode
|
|
8
|
+
- rbx-18mode
|
|
9
|
+
- rbx-19mode
|
|
10
|
+
# uncomment this line if your project needs to run something other than `rake`:
|
|
11
|
+
script: bundle exec rspec spec
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
redis-session-retrieve (0.0.1)
|
|
5
|
+
hiredis
|
|
6
|
+
mock_redis
|
|
7
|
+
|
|
8
|
+
GEM
|
|
9
|
+
remote: http://rubygems.org/
|
|
10
|
+
specs:
|
|
11
|
+
diff-lcs (1.1.3)
|
|
12
|
+
hiredis (0.4.5)
|
|
13
|
+
mock_redis (0.5.1)
|
|
14
|
+
rspec (2.11.0)
|
|
15
|
+
rspec-core (~> 2.11.0)
|
|
16
|
+
rspec-expectations (~> 2.11.0)
|
|
17
|
+
rspec-mocks (~> 2.11.0)
|
|
18
|
+
rspec-core (2.11.1)
|
|
19
|
+
rspec-expectations (2.11.3)
|
|
20
|
+
diff-lcs (~> 1.1.3)
|
|
21
|
+
rspec-mocks (2.11.2)
|
|
22
|
+
|
|
23
|
+
PLATFORMS
|
|
24
|
+
ruby
|
|
25
|
+
|
|
26
|
+
DEPENDENCIES
|
|
27
|
+
redis-session-retrieve!
|
|
28
|
+
rspec
|
data/Rakefile
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require "bundler/gem_tasks"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require "redis-session-retrieve/version"
|
|
2
|
+
require "redis-session-retrieve/fetcher"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
module RedisSessionRetrieve
|
|
6
|
+
class << self
|
|
7
|
+
attr_accessor :connection
|
|
8
|
+
|
|
9
|
+
def find_by_id session_id
|
|
10
|
+
RedisSessionRetrieve::Fetcher.connection = self.connection
|
|
11
|
+
RedisSessionRetrieve::Fetcher.find_by_id session_id
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require File.expand_path('serializer', File.dirname(__FILE__))
|
|
2
|
+
|
|
3
|
+
module RedisSessionRetrieve
|
|
4
|
+
|
|
5
|
+
class Fetcher
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
attr_accessor :connection
|
|
9
|
+
|
|
10
|
+
def initialize
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def find_by_id session_id
|
|
14
|
+
session = @connection.get session_id
|
|
15
|
+
|
|
16
|
+
if session.nil?
|
|
17
|
+
return nil
|
|
18
|
+
else
|
|
19
|
+
return Serializer.deserialize session
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
data/readme.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#Redis Session Retrieve [](http://travis-ci.org/akeem/redis-session-retrieve)
|
|
2
|
+
|
|
3
|
+
## The itch to scratch.
|
|
4
|
+
A number of applications need to share session information.
|
|
5
|
+
|
|
6
|
+
1. Application managing session information uses redis-store gem to
|
|
7
|
+
control flow of information related to session.
|
|
8
|
+
|
|
9
|
+
2. Secondary applications retrieve session data from session store.
|
|
10
|
+
|
|
11
|
+
## How do I use it.
|
|
12
|
+
|
|
13
|
+
1. Setup the retrievel library by normal means. (the default should
|
|
14
|
+
default redis configuration, database 0)
|
|
15
|
+
|
|
16
|
+
2. Find session data via the session id.
|
|
17
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
+
require "redis-session-retrieve/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = "redis-session-retrieve"
|
|
7
|
+
s.version = RedisSessionRetrieve::VERSION
|
|
8
|
+
s.authors = ["Akeem Adeniji"]
|
|
9
|
+
s.email = ["akeem.adeniji@gmail.com"]
|
|
10
|
+
s.homepage = ""
|
|
11
|
+
s.summary = %q{Retrieve sessions stored in redis by redis-store}
|
|
12
|
+
s.description = %q{An easy way to retrieve session data store in redis via the redis-store gem}
|
|
13
|
+
|
|
14
|
+
s.rubyforge_project = "redis-session-retrieve"
|
|
15
|
+
|
|
16
|
+
s.files = `git ls-files`.split("\n")
|
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
19
|
+
s.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
s.add_development_dependency "rspec"
|
|
22
|
+
s.add_runtime_dependency "hiredis"
|
|
23
|
+
s.add_runtime_dependency "mock_redis"
|
|
24
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'mock_redis'
|
|
2
|
+
require File.expand_path("redis-session-retrieve", File.dirname(__FILE__) + "/../lib/")
|
|
3
|
+
|
|
4
|
+
describe RedisSessionRetrieve::Fetcher do
|
|
5
|
+
|
|
6
|
+
let(:bootstrap_redis){
|
|
7
|
+
mr = MockRedis.new
|
|
8
|
+
mr.set("12345", Marshal.dump({:user_id => "the_one_handed_man"}))
|
|
9
|
+
RedisSessionRetrieve::Fetcher.connection = mr
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
let(:existing_session){RedisSessionRetrieve::Fetcher.find_by_id('12345')}
|
|
13
|
+
let(:missing_session){RedisSessionRetrieve::Fetcher.find_by_id('3333')}
|
|
14
|
+
|
|
15
|
+
before(:all) do
|
|
16
|
+
bootstrap_redis
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
describe ".find_by_id" do
|
|
20
|
+
context "when a matching session exists in the store" do
|
|
21
|
+
|
|
22
|
+
it "should not be empty" do
|
|
23
|
+
existing_session.should_not be_empty
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should return the session data" do
|
|
27
|
+
existing_session.should_not be_nil
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context "when a matching session does not exist in the store" do
|
|
32
|
+
it "should return nil" do
|
|
33
|
+
missing_session.should be_nil
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require File.expand_path("serializer", File.dirname(__FILE__) + "/../lib/redis-session-retrieve/")
|
|
2
|
+
|
|
3
|
+
describe RedisSessionRetrieve::Serializer do
|
|
4
|
+
|
|
5
|
+
describe ".deserialize" do
|
|
6
|
+
it "should deserialize the data passed" do
|
|
7
|
+
RedisSessionRetrieve::Serializer.deserialize("\x04\b{\x06:\tnameI\"\x0FOj Simpson\x06:\x06ET").should eql({:name => "Oj Simpson"})
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
metadata
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: redis-session-retrieve
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Akeem Adeniji
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2012-09-13 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: rspec
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0'
|
|
22
|
+
type: :development
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ! '>='
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '0'
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: hiredis
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
34
|
+
requirements:
|
|
35
|
+
- - ! '>='
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
38
|
+
type: :runtime
|
|
39
|
+
prerelease: false
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: mock_redis
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
none: false
|
|
50
|
+
requirements:
|
|
51
|
+
- - ! '>='
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
type: :runtime
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
58
|
+
requirements:
|
|
59
|
+
- - ! '>='
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
description: An easy way to retrieve session data store in redis via the redis-store
|
|
63
|
+
gem
|
|
64
|
+
email:
|
|
65
|
+
- akeem.adeniji@gmail.com
|
|
66
|
+
executables: []
|
|
67
|
+
extensions: []
|
|
68
|
+
extra_rdoc_files: []
|
|
69
|
+
files:
|
|
70
|
+
- .travis.yml
|
|
71
|
+
- Gemfile
|
|
72
|
+
- Gemfile.lock
|
|
73
|
+
- Rakefile
|
|
74
|
+
- lib/redis-session-retrieve.rb
|
|
75
|
+
- lib/redis-session-retrieve/fetcher.rb
|
|
76
|
+
- lib/redis-session-retrieve/serializer.rb
|
|
77
|
+
- lib/redis-session-retrieve/version.rb
|
|
78
|
+
- readme.md
|
|
79
|
+
- redis-session-retrieve.gemspec
|
|
80
|
+
- spec/fetcher_spec.rb
|
|
81
|
+
- spec/serializer_spec.rb
|
|
82
|
+
homepage: ''
|
|
83
|
+
licenses: []
|
|
84
|
+
post_install_message:
|
|
85
|
+
rdoc_options: []
|
|
86
|
+
require_paths:
|
|
87
|
+
- lib
|
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
90
|
+
requirements:
|
|
91
|
+
- - ! '>='
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
|
+
none: false
|
|
96
|
+
requirements:
|
|
97
|
+
- - ! '>='
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '0'
|
|
100
|
+
requirements: []
|
|
101
|
+
rubyforge_project: redis-session-retrieve
|
|
102
|
+
rubygems_version: 1.8.24
|
|
103
|
+
signing_key:
|
|
104
|
+
specification_version: 3
|
|
105
|
+
summary: Retrieve sessions stored in redis by redis-store
|
|
106
|
+
test_files:
|
|
107
|
+
- spec/fetcher_spec.rb
|
|
108
|
+
- spec/serializer_spec.rb
|
|
109
|
+
has_rdoc:
|