warden 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +4 -1
- data/lib/warden.rb +1 -5
- data/lib/warden/config.rb +9 -25
- data/lib/warden/hooks.rb +2 -2
- data/lib/warden/manager.rb +30 -4
- data/lib/warden/manager_deprecation.rb +20 -47
- data/lib/warden/mixins/common.rb +4 -4
- data/lib/warden/proxy.rb +96 -107
- data/lib/warden/session_serializer.rb +44 -0
- data/lib/warden/strategies.rb +38 -10
- data/lib/warden/strategies/base.rb +20 -11
- data/lib/warden/version.rb +1 -1
- data/spec/spec_helper.rb +4 -2
- data/spec/warden/config_spec.rb +0 -15
- data/spec/warden/hooks_spec.rb +4 -4
- data/spec/warden/manager_spec.rb +1 -9
- data/spec/warden/proxy_spec.rb +278 -291
- data/spec/warden/{serializers/session_spec.rb → session_serializer_spec.rb} +3 -3
- data/spec/warden/strategies/base_spec.rb +13 -1
- data/warden.gemspec +8 -13
- metadata +15 -13
- data/lib/warden/declarable.rb +0 -43
- data/lib/warden/serializers.rb +0 -20
- data/lib/warden/serializers/base.rb +0 -38
- data/lib/warden/serializers/cookie.rb +0 -34
- data/lib/warden/serializers/session.rb +0 -30
- data/spec/warden/serializers/cookie_spec.rb +0 -60
- data/spec/warden/serializers_spec.rb +0 -102
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.dirname(__FILE__) + '
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
|
3
|
-
describe Warden::
|
3
|
+
describe Warden::SessionSerializer do
|
4
4
|
before(:each) do
|
5
5
|
@env = env_with_params
|
6
6
|
@env['rack.session'] ||= {}
|
7
|
-
@session = Warden::
|
7
|
+
@session = Warden::SessionSerializer.new(@env)
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should store data for the default scope" do
|
@@ -43,7 +43,19 @@ describe Warden::Strategies::Base do
|
|
43
43
|
strategy._run!
|
44
44
|
strategy.user.should == "foo"
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
|
+
it "should be performed after run" do
|
48
|
+
RAS.add(:foobar) do
|
49
|
+
def authenticate!; end
|
50
|
+
end
|
51
|
+
strategy = RAS[:foobar].new(env_with_params)
|
52
|
+
strategy.should_not be_performed
|
53
|
+
strategy._run!
|
54
|
+
strategy.should be_performed
|
55
|
+
strategy.clear!
|
56
|
+
strategy.should_not be_performed
|
57
|
+
end
|
58
|
+
|
47
59
|
it "should set the scope" do
|
48
60
|
RAS.add(:foobar) do
|
49
61
|
def authenticate!
|
data/warden.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{warden}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.9.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Daniel Neighman"]
|
12
|
-
s.date = %q{2010-01-
|
12
|
+
s.date = %q{2010-01-21}
|
13
13
|
s.email = %q{has.sox@gmail.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -24,17 +24,13 @@ Gem::Specification.new do |s|
|
|
24
24
|
"TODO.textile",
|
25
25
|
"lib/warden.rb",
|
26
26
|
"lib/warden/config.rb",
|
27
|
-
"lib/warden/declarable.rb",
|
28
27
|
"lib/warden/errors.rb",
|
29
28
|
"lib/warden/hooks.rb",
|
30
29
|
"lib/warden/manager.rb",
|
31
30
|
"lib/warden/manager_deprecation.rb",
|
32
31
|
"lib/warden/mixins/common.rb",
|
33
32
|
"lib/warden/proxy.rb",
|
34
|
-
"lib/warden/
|
35
|
-
"lib/warden/serializers/base.rb",
|
36
|
-
"lib/warden/serializers/cookie.rb",
|
37
|
-
"lib/warden/serializers/session.rb",
|
33
|
+
"lib/warden/session_serializer.rb",
|
38
34
|
"lib/warden/strategies.rb",
|
39
35
|
"lib/warden/strategies/base.rb",
|
40
36
|
"lib/warden/version.rb",
|
@@ -52,9 +48,7 @@ Gem::Specification.new do |s|
|
|
52
48
|
"spec/warden/hooks_spec.rb",
|
53
49
|
"spec/warden/manager_spec.rb",
|
54
50
|
"spec/warden/proxy_spec.rb",
|
55
|
-
"spec/warden/
|
56
|
-
"spec/warden/serializers/session_spec.rb",
|
57
|
-
"spec/warden/serializers_spec.rb",
|
51
|
+
"spec/warden/session_serializer_spec.rb",
|
58
52
|
"spec/warden/strategies/base_spec.rb",
|
59
53
|
"spec/warden/strategies_spec.rb",
|
60
54
|
"spec/warden_spec.rb",
|
@@ -79,9 +73,7 @@ Gem::Specification.new do |s|
|
|
79
73
|
"spec/warden/hooks_spec.rb",
|
80
74
|
"spec/warden/manager_spec.rb",
|
81
75
|
"spec/warden/proxy_spec.rb",
|
82
|
-
"spec/warden/
|
83
|
-
"spec/warden/serializers/session_spec.rb",
|
84
|
-
"spec/warden/serializers_spec.rb",
|
76
|
+
"spec/warden/session_serializer_spec.rb",
|
85
77
|
"spec/warden/strategies/base_spec.rb",
|
86
78
|
"spec/warden/strategies_spec.rb",
|
87
79
|
"spec/warden_spec.rb"
|
@@ -93,11 +85,14 @@ Gem::Specification.new do |s|
|
|
93
85
|
|
94
86
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
95
87
|
s.add_runtime_dependency(%q<rack>, [">= 1.0.0"])
|
88
|
+
s.add_development_dependency(%q<rspec>, [">= 1.0.0"])
|
96
89
|
else
|
97
90
|
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
91
|
+
s.add_dependency(%q<rspec>, [">= 1.0.0"])
|
98
92
|
end
|
99
93
|
else
|
100
94
|
s.add_dependency(%q<rack>, [">= 1.0.0"])
|
95
|
+
s.add_dependency(%q<rspec>, [">= 1.0.0"])
|
101
96
|
end
|
102
97
|
end
|
103
98
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Neighman
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-21 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.0.0
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.0
|
34
|
+
version:
|
25
35
|
description:
|
26
36
|
email: has.sox@gmail.com
|
27
37
|
executables: []
|
@@ -40,17 +50,13 @@ files:
|
|
40
50
|
- TODO.textile
|
41
51
|
- lib/warden.rb
|
42
52
|
- lib/warden/config.rb
|
43
|
-
- lib/warden/declarable.rb
|
44
53
|
- lib/warden/errors.rb
|
45
54
|
- lib/warden/hooks.rb
|
46
55
|
- lib/warden/manager.rb
|
47
56
|
- lib/warden/manager_deprecation.rb
|
48
57
|
- lib/warden/mixins/common.rb
|
49
58
|
- lib/warden/proxy.rb
|
50
|
-
- lib/warden/
|
51
|
-
- lib/warden/serializers/base.rb
|
52
|
-
- lib/warden/serializers/cookie.rb
|
53
|
-
- lib/warden/serializers/session.rb
|
59
|
+
- lib/warden/session_serializer.rb
|
54
60
|
- lib/warden/strategies.rb
|
55
61
|
- lib/warden/strategies/base.rb
|
56
62
|
- lib/warden/version.rb
|
@@ -68,9 +74,7 @@ files:
|
|
68
74
|
- spec/warden/hooks_spec.rb
|
69
75
|
- spec/warden/manager_spec.rb
|
70
76
|
- spec/warden/proxy_spec.rb
|
71
|
-
- spec/warden/
|
72
|
-
- spec/warden/serializers/session_spec.rb
|
73
|
-
- spec/warden/serializers_spec.rb
|
77
|
+
- spec/warden/session_serializer_spec.rb
|
74
78
|
- spec/warden/strategies/base_spec.rb
|
75
79
|
- spec/warden/strategies_spec.rb
|
76
80
|
- spec/warden_spec.rb
|
@@ -116,9 +120,7 @@ test_files:
|
|
116
120
|
- spec/warden/hooks_spec.rb
|
117
121
|
- spec/warden/manager_spec.rb
|
118
122
|
- spec/warden/proxy_spec.rb
|
119
|
-
- spec/warden/
|
120
|
-
- spec/warden/serializers/session_spec.rb
|
121
|
-
- spec/warden/serializers_spec.rb
|
123
|
+
- spec/warden/session_serializer_spec.rb
|
122
124
|
- spec/warden/strategies/base_spec.rb
|
123
125
|
- spec/warden/strategies_spec.rb
|
124
126
|
- spec/warden_spec.rb
|
data/lib/warden/declarable.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Warden
|
3
|
-
module Declarable
|
4
|
-
|
5
|
-
# Add a declaration and store it in a hash.
|
6
|
-
def add(label, declaration = nil, &block)
|
7
|
-
base = self.const_get(:Base)
|
8
|
-
|
9
|
-
declaration ||= Class.new(base)
|
10
|
-
declaration.class_eval(&block) if block_given?
|
11
|
-
|
12
|
-
check_validity!(label, declaration)
|
13
|
-
raise "#{label.inspect} is not a #{base}" unless declaration.ancestors.include?(base)
|
14
|
-
|
15
|
-
_declarations[label] = declaration
|
16
|
-
end
|
17
|
-
|
18
|
-
# Update a previously given declaration.
|
19
|
-
def update(label, &block)
|
20
|
-
declaration = _declarations[label]
|
21
|
-
raise "Unknown declaration #{label.inspect}" unless declaration
|
22
|
-
add(label, declaration, &block)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Provides access to declarations by label
|
26
|
-
# :api: public
|
27
|
-
def [](label)
|
28
|
-
_declarations[label]
|
29
|
-
end
|
30
|
-
|
31
|
-
# Clears all declared.
|
32
|
-
# :api: public
|
33
|
-
def clear!
|
34
|
-
_declarations.clear
|
35
|
-
end
|
36
|
-
|
37
|
-
# :api: private
|
38
|
-
def _declarations
|
39
|
-
@declarations ||= {}
|
40
|
-
end
|
41
|
-
|
42
|
-
end # Declarable
|
43
|
-
end # Warden
|
data/lib/warden/serializers.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'warden/declarable'
|
3
|
-
|
4
|
-
module Warden
|
5
|
-
module Serializers
|
6
|
-
extend Warden::Declarable
|
7
|
-
|
8
|
-
class << self
|
9
|
-
def check_validity!(label, serializer)
|
10
|
-
[:fetch, :store, :stored?, :delete].each do |method|
|
11
|
-
next if serializer.method_defined?(method)
|
12
|
-
raise NoMethodError, "#{method} is not declared in the #{label.inspect} serializer"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
alias :_serializers :_declarations
|
17
|
-
end # << self
|
18
|
-
|
19
|
-
end # Serializers
|
20
|
-
end # Warden
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Warden
|
3
|
-
module Serializers
|
4
|
-
# A serializer is a place where you put the logic to serializing and deserializing an user. All serializers
|
5
|
-
# inherits from Warden::Serializers::Base.
|
6
|
-
#
|
7
|
-
# The Warden::Serializers.add method is a simple way to provide custom serializers. In order to do so,
|
8
|
-
# you _must_ declare @store@, @fetch@, @delete@ and @stored?@ methods.
|
9
|
-
#
|
10
|
-
# The parameters for Warden::Serializers.add method is:
|
11
|
-
# <label: Symbol> The label is the name given to a serializer. Use the label to refer to the serializer when authenticating
|
12
|
-
# <serializer: Class|nil> The optional serializer argument if set _must_ be a class that inherits from Warden::Serializers::Base
|
13
|
-
# <block> The block acts as a convinient way to declare your serializer. Inside is the class definition of a serializer.
|
14
|
-
#
|
15
|
-
# Check Session and Cookie serializers for more information.
|
16
|
-
#
|
17
|
-
class Base
|
18
|
-
attr_accessor :env
|
19
|
-
include ::Warden::Mixins::Common
|
20
|
-
|
21
|
-
def initialize(env)
|
22
|
-
@env = env
|
23
|
-
end
|
24
|
-
|
25
|
-
def key_for(scope)
|
26
|
-
"warden.user.#{scope}.key"
|
27
|
-
end
|
28
|
-
|
29
|
-
def serialize(user)
|
30
|
-
user
|
31
|
-
end
|
32
|
-
|
33
|
-
def deserialize(key)
|
34
|
-
key
|
35
|
-
end
|
36
|
-
end # Base
|
37
|
-
end # Serializers
|
38
|
-
end # Warden
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Warden
|
3
|
-
module Serializers
|
4
|
-
# A cookie serializer provided by Warden. You need to implement the serialize and deserialize
|
5
|
-
# methods in order to use it.
|
6
|
-
class Cookie < Base
|
7
|
-
def store(user, scope)
|
8
|
-
response.set_cookie key_for(scope), default_options(user)
|
9
|
-
end
|
10
|
-
|
11
|
-
def fetch(scope)
|
12
|
-
key = request.cookies[key_for(scope)]
|
13
|
-
return nil unless key
|
14
|
-
user = deserialize(key)
|
15
|
-
delete(scope) unless user
|
16
|
-
user
|
17
|
-
end
|
18
|
-
|
19
|
-
def stored?(scope)
|
20
|
-
!!request.cookies[key_for(scope)]
|
21
|
-
end
|
22
|
-
|
23
|
-
def delete(scope, user=nil)
|
24
|
-
response.delete_cookie(key_for(scope))
|
25
|
-
end
|
26
|
-
|
27
|
-
def default_options(user)
|
28
|
-
{ :value => serialize(user), :expires => (Time.now + 7 * 24 * 3600), :path => "/" }
|
29
|
-
end
|
30
|
-
end # Cookie
|
31
|
-
|
32
|
-
Serializers.add(:cookie, Cookie)
|
33
|
-
end # Serializers
|
34
|
-
end # Warden
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Warden
|
3
|
-
module Serializers
|
4
|
-
# A session serializer provided by Warden. You need to implement the serialize and deserialize
|
5
|
-
# methods in order to use it.
|
6
|
-
class Session < Base
|
7
|
-
def store(user, scope)
|
8
|
-
session[key_for(scope)] = serialize(user)
|
9
|
-
end
|
10
|
-
|
11
|
-
def fetch(scope)
|
12
|
-
key = session[key_for(scope)]
|
13
|
-
return nil unless key
|
14
|
-
user = deserialize(key)
|
15
|
-
delete(scope) unless user
|
16
|
-
user
|
17
|
-
end
|
18
|
-
|
19
|
-
def stored?(scope)
|
20
|
-
!!session[key_for(scope)]
|
21
|
-
end
|
22
|
-
|
23
|
-
def delete(scope, user=nil)
|
24
|
-
session.delete(key_for(scope))
|
25
|
-
end
|
26
|
-
end # Session
|
27
|
-
|
28
|
-
Serializers.add(:session, Session)
|
29
|
-
end # Serializers
|
30
|
-
end # Warden
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
-
|
3
|
-
describe Warden::Serializers::Cookie do
|
4
|
-
before(:each) do
|
5
|
-
@env = env_with_params
|
6
|
-
@cookie = Warden::Serializers::Cookie.new(@env)
|
7
|
-
end
|
8
|
-
|
9
|
-
def set_cookie!
|
10
|
-
@env['HTTP_COOKIE'] = @cookie.response.headers['Set-Cookie']
|
11
|
-
end
|
12
|
-
|
13
|
-
def read_cookie
|
14
|
-
cookie = @cookie.response.headers['Set-Cookie']
|
15
|
-
cookie = cookie.first if cookie.is_a?(Array)
|
16
|
-
cookie.split(";").first
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should store data for the default scope" do
|
20
|
-
@cookie.store("user", :default)
|
21
|
-
read_cookie.should == "warden.user.default.key=user"
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should check if a data is stored or not" do
|
25
|
-
@cookie.should_not be_stored(:default)
|
26
|
-
@cookie.store("user", :default)
|
27
|
-
set_cookie!
|
28
|
-
@cookie.should be_stored(:default)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should load an user from store" do
|
32
|
-
@cookie.fetch(:default).should be_nil
|
33
|
-
@cookie.store("user", :default)
|
34
|
-
set_cookie!
|
35
|
-
@cookie.fetch(:default).should == "user"
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should store data based on the scope" do
|
39
|
-
@cookie.store("user", :default)
|
40
|
-
set_cookie!
|
41
|
-
@cookie.fetch(:default).should == "user"
|
42
|
-
@cookie.fetch(:another).should be_nil
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should delete data from store" do
|
46
|
-
@cookie.store("user", :default)
|
47
|
-
set_cookie!
|
48
|
-
@cookie.fetch(:default).should == "user"
|
49
|
-
@cookie.delete(:default)
|
50
|
-
read_cookie.should == "warden.user.default.key="
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should delete information from store if user cannot be retrieved" do
|
54
|
-
@cookie.store("user", :default)
|
55
|
-
set_cookie!
|
56
|
-
@cookie.instance_eval "def deserialize(key); nil; end"
|
57
|
-
@cookie.fetch(:default)
|
58
|
-
read_cookie.should == "warden.user.default.key="
|
59
|
-
end
|
60
|
-
end
|
@@ -1,102 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
-
|
3
|
-
describe Warden::Serializers do
|
4
|
-
it "should let me add a serializer via a block" do
|
5
|
-
Warden::Serializers.add(:serializer1) do
|
6
|
-
def fetch; end
|
7
|
-
def store; end
|
8
|
-
def stored?; end
|
9
|
-
def delete; end
|
10
|
-
end
|
11
|
-
Warden::Serializers[:serializer1].ancestors.should include(Warden::Serializers::Base)
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should raise an error if I add a serializer via a block, that does not have an autheniticate! method" do
|
15
|
-
lambda do
|
16
|
-
Warden::Serializers.add(:serializer2) do
|
17
|
-
end
|
18
|
-
end.should raise_error
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should allow me to get access to a particular serializer" do
|
22
|
-
Warden::Serializers.add(:serializer3) do
|
23
|
-
def fetch; end
|
24
|
-
def store; end
|
25
|
-
def stored?; end
|
26
|
-
def delete; end
|
27
|
-
end
|
28
|
-
serializer = Warden::Serializers[:serializer3]
|
29
|
-
serializer.should_not be_nil
|
30
|
-
serializer.ancestors.should include(Warden::Serializers::Base)
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should allow me to add a serializer with the required methods" do
|
34
|
-
class MySerializer < Warden::Serializers::Base
|
35
|
-
def fetch; end
|
36
|
-
def store; end
|
37
|
-
def stored?; end
|
38
|
-
def delete; end
|
39
|
-
end
|
40
|
-
lambda do
|
41
|
-
Warden::Serializers.add(:serializer4, MySerializer)
|
42
|
-
end.should_not raise_error
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should not allow a serializer that does not have any required method" do
|
46
|
-
class MyOtherSerializer
|
47
|
-
end
|
48
|
-
lambda do
|
49
|
-
Warden::Serializers.add(:serializer5, MyOtherSerializer)
|
50
|
-
end.should raise_error
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should allow me to change a class when providing a block and class" do
|
54
|
-
class MySerializer < Warden::Serializers::Base
|
55
|
-
end
|
56
|
-
|
57
|
-
Warden::Serializers.add(:foo, MySerializer) do
|
58
|
-
def fetch; end
|
59
|
-
def store; end
|
60
|
-
def stored?; end
|
61
|
-
def delete; end
|
62
|
-
end
|
63
|
-
|
64
|
-
Warden::Serializers[:foo].ancestors.should include(MySerializer)
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should allow me to update a previously given serializer" do
|
68
|
-
class MySerializer < Warden::Serializers::Base
|
69
|
-
def fetch; end
|
70
|
-
def store; end
|
71
|
-
def stored?; end
|
72
|
-
def delete; end
|
73
|
-
end
|
74
|
-
|
75
|
-
Warden::Serializers.add(:serializer6, MySerializer)
|
76
|
-
|
77
|
-
new_module = Module.new
|
78
|
-
Warden::Serializers.update(:serializer6) do
|
79
|
-
include new_module
|
80
|
-
end
|
81
|
-
|
82
|
-
Warden::Serializers[:serializer6].ancestors.should include(new_module)
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should allow me to clear the Serializers" do
|
86
|
-
old_serializers = Warden::Serializers._serializers.dup
|
87
|
-
|
88
|
-
begin
|
89
|
-
Warden::Serializers.add(:foobar) do
|
90
|
-
def fetch; end
|
91
|
-
def store; end
|
92
|
-
def stored?; end
|
93
|
-
def delete; end
|
94
|
-
end
|
95
|
-
Warden::Serializers[:foobar].should_not be_nil
|
96
|
-
Warden::Serializers.clear!
|
97
|
-
Warden::Serializers[:foobar].should be_nil
|
98
|
-
else
|
99
|
-
Warden::Serializers._serializers.replace(old_serializers)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|