redis-session-store 0.4.0 → 0.4.2

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.
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