redis-session-store 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f3683b0cfb27fd4e78c5639909af2234bb5bbfb
4
- data.tar.gz: 269d6ab5865c26a9e7f6fb03a467c823569eda6d
3
+ metadata.gz: 56bc245a6348c77dc89fd0f9cafcb190ce55bf0a
4
+ data.tar.gz: 39c2e4dacfb2bdf3ffdb2ab661199cca1f41bac8
5
5
  SHA512:
6
- metadata.gz: 896d45ca2a1aa9234bef55dae1170e265bc608a1d300aea69add6a7df1a0de580655017f90804fb4d36d82e5c4beccf8daaafb6a23a0d6702f3b43d0c82eab38
7
- data.tar.gz: 78bf2f881ecfc5da216115e34f71dbe117b91b99b35a9bd29e030d0bee9380816802b2691b4468539a651dd3ddcc6533bf69a96a9950b9eb8ac389445a586aa3
6
+ metadata.gz: 3c3766b71ff8e0c3d1e1e89497a6cf7e7b59c2cba3a199e7e94f59cd246deb9762df2e3d78fc420cd835cacebfb9eaeeae7cb7809262211fcb4c0aecb7b992a9
7
+ data.tar.gz: 3dcf04844ab54396592dbae1ac820f600fa73d0147b6695582dc6ae0c4596ab8bedfef2a7c0dc89a4c7c42a73e8a833292a7d11401520c55a5c4737be16ad670
data/.rubocop.yml CHANGED
@@ -1 +1,10 @@
1
- ---
1
+ # This configuration was generated by `rubocop --auto-gen-config`
2
+ # on 2014-03-13 18:57:37 -0400 using RuboCop version 0.19.0.
3
+ # The point is for the user to remove these configuration records
4
+ # one by one as the offenses are removed from the code base.
5
+ # Note that changes in the inspected code, or installation of new
6
+ # versions of RuboCop, may require this file to be generated again.
7
+
8
+ # Offense count: 1
9
+ FileName:
10
+ Enabled: false
data/AUTHORS.md CHANGED
@@ -11,4 +11,5 @@ Redis Session Store authors
11
11
  - Justin McNally
12
12
  - Mathias Meyer
13
13
  - Michael Fields
14
+ - Olek Poplavsky
14
15
  - Tim Lossen
data/README.md CHANGED
@@ -2,6 +2,7 @@ Redis Session Store
2
2
  ===================
3
3
 
4
4
  [![Build Status](https://travis-ci.org/roidrage/redis-session-store.png?branch=master)](https://travis-ci.org/roidrage/redis-session-store)
5
+ [![Code Climate](https://codeclimate.com/github/roidrage/redis-session-store.png)](https://codeclimate.com/github/roidrage/redis-session-store)
5
6
 
6
7
  A simple Redis-based session store for Rails. But why, you ask,
7
8
  when there's [redis-store](http://github.com/jodosha/redis-store/)?
@@ -4,7 +4,7 @@ require 'redis'
4
4
  # Redis session storage for Rails, and for Rails only. Derived from
5
5
  # the MemCacheStore code, simply dropping in Redis instead.
6
6
  class RedisSessionStore < ActionDispatch::Session::AbstractStore
7
- VERSION = '0.4.0'
7
+ VERSION = '0.4.2'
8
8
 
9
9
  # ==== Options
10
10
  # * +:key+ - Same as with the other cookie stores, key name
@@ -36,7 +36,7 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
36
36
  @default_options.merge!(namespace: 'rack:session')
37
37
  @default_options.merge!(redis_options)
38
38
  @redis = Redis.new(redis_options)
39
- @raise_errors = !!options[:raise_errors]
39
+ @raise_errors = !options[:raise_errors].nil?
40
40
  end
41
41
 
42
42
  private
@@ -48,15 +48,20 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
48
48
  end
49
49
 
50
50
  def get_session(env, sid)
51
- sid ||= generate_sid
52
- begin
53
- data = redis.get(prefixed(sid))
54
- session = data.nil? ? {} : Marshal.load(data)
55
- rescue Errno::ECONNREFUSED => e
56
- raise e if raise_errors
51
+ unless sid && (session = load_session_from_redis(sid))
52
+ sid = generate_sid
57
53
  session = {}
58
54
  end
55
+
59
56
  [sid, session]
57
+ rescue Errno::ECONNREFUSED => e
58
+ raise e if raise_errors
59
+ [generate_sid, {}]
60
+ end
61
+
62
+ def load_session_from_redis(sid)
63
+ data = redis.get(prefixed(sid))
64
+ data ? Marshal.load(data) : nil
60
65
  end
61
66
 
62
67
  def set_session(env, sid, session_data, options = nil)
@@ -171,11 +171,19 @@ describe RedisSessionStore do
171
171
  end
172
172
 
173
173
  context 'when redis is down' do
174
- before { store.stub(:redis).and_raise(Errno::ECONNREFUSED) }
174
+ before do
175
+ store.stub(:redis).and_raise(Errno::ECONNREFUSED)
176
+ store.stub(generate_sid: 'foop')
177
+ end
178
+
179
+ it 'returns an empty session hash' do
180
+ expect(store.send(:get_session, double('env'), fake_key).last)
181
+ .to eq({})
182
+ end
175
183
 
176
- it 'should return an empty session hash' do
177
- expect(store.send(:get_session, double('env'), fake_key))
178
- .to eq([fake_key, {}])
184
+ it 'returns a newly generated sid' do
185
+ expect(store.send(:get_session, double('env'), fake_key).first)
186
+ .to eq('foop')
179
187
  end
180
188
 
181
189
  context 'when :raise_errors option is truthy' do
data/spec/support.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  # vim:fileencoding=utf-8
2
2
 
3
3
  unless defined?(ActionDispatch::Session::AbstractStore)
4
- module ActionDispatch # rubocop:disable Documentation
4
+ module ActionDispatch
5
5
  module Session
6
- class AbstractStore
6
+ class AbstractStore # rubocop:disable Documentation
7
7
  ENV_SESSION_OPTIONS_KEY = 'rack.session.options'.freeze
8
8
  DEFAULT_OPTIONS = {
9
9
  key: '_session_id',
@@ -35,7 +35,7 @@ end
35
35
  unless defined?(Rails)
36
36
  require 'logger'
37
37
 
38
- module Rails
38
+ module Rails # rubocop:disable Documentation
39
39
  def self.logger
40
40
  @logger ||= Logger.new('/dev/null')
41
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-session-store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathias Meyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-19 00:00:00.000000000 Z
11
+ date: 2014-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis