Module: Warden::Strategies
- Defined in:
- lib/warden/strategies.rb,
lib/warden/strategies/base.rb
Defined Under Namespace
Classes: Base
Class Method Summary collapse
-
.[](label) ⇒ Object
Provides access to strategies by label :api: public.
-
._strategies ⇒ Object
:api: private.
-
.add(label, strategy = nil, &block) ⇒ Object
Add a strategy and store it in a hash.
-
.clear! ⇒ Object
Clears all declared.
-
.update(label, &block) ⇒ Object
Update a previously given strategy.
Class Method Details
.[](label) ⇒ Object
Provides access to strategies by label :api: public
32 33 34 |
# File 'lib/warden/strategies.rb', line 32 def [](label) _strategies[label] end |
._strategies ⇒ Object
:api: private
43 44 45 |
# File 'lib/warden/strategies.rb', line 43 def _strategies @strategies ||= {} end |
.add(label, strategy = nil, &block) ⇒ Object
Add a strategy and store it in a hash.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/warden/strategies.rb', line 7 def add(label, strategy = nil, &block) strategy ||= Class.new(Warden::Strategies::Base) strategy.class_eval(&block) if block_given? unless strategy.method_defined?(:authenticate!) raise NoMethodError, "authenticate! is not declared in the #{label.inspect} strategy" end base = Warden::Strategies::Base unless strategy.ancestors.include?(base) raise "#{label.inspect} is not a #{base}" end _strategies[label] = strategy end |
.clear! ⇒ Object
Clears all declared. :api: public
38 39 40 |
# File 'lib/warden/strategies.rb', line 38 def clear! _strategies.clear end |
.update(label, &block) ⇒ Object
Update a previously given strategy.
24 25 26 27 28 |
# File 'lib/warden/strategies.rb', line 24 def update(label, &block) strategy = _strategies[label] raise "Unknown strategy #{label.inspect}" unless strategy add(label, strategy, &block) end |