Class: Warden::Config

Inherits:
Hash
  • Object
show all
Defined in:
lib/warden/config.rb

Overview

This is a class which is yielded on use Warden::Manager. If you have a plugin and wants to add more configuration to warden, you just need to extend this class.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(other = {}) ⇒ Config

Returns a new instance of Config.



37
38
39
40
41
# File 'lib/warden/config.rb', line 37

def initialize(other={})
  merge!(other)
  self[:default_scope]       ||= :default
  self[:default_strategies]  ||= []
end

Class Method Details

.hash_accessor(*names) ⇒ Object

Creates an accessor that simply sets and reads a key in the hash:

class Config < Hash
  hash_accessor :failure_app
end

config = Config.new
config.failure_app = Foo
config[:failure_app] #=> Foo

config[:failure_app] = Bar
config.failure_app #=> Bar


21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/warden/config.rb', line 21

def self.hash_accessor(*names) #:nodoc:
  names.each do |name|
    class_eval <<-METHOD, __FILE__, __LINE__ + 1
      def #{name}
        self[:#{name}]
      end

      def #{name}=(value)
        self[:#{name}] = value
      end
    METHOD
  end
end

Instance Method Details

#default_strategies(*strategies) ⇒ Object

Set the default strategies to use. :api: public



55
56
57
58
59
60
61
# File 'lib/warden/config.rb', line 55

def default_strategies(*strategies)
  if strategies.empty?
    self[:default_strategies]
  else
    self[:default_strategies] = strategies.flatten
  end
end

#serialize_from_session(*args, &block) ⇒ Object

Hook from configuration to serialize_from_session. :api: public



77
78
79
# File 'lib/warden/config.rb', line 77

def serialize_from_session(*args, &block)
  Warden::Manager.serialize_from_session(*args, &block)
end

#serialize_into_session(*args, &block) ⇒ Object

Hook from configuration to serialize_into_session. :api: public



71
72
73
# File 'lib/warden/config.rb', line 71

def serialize_into_session(*args, &block)
  Warden::Manager.serialize_into_session(*args, &block)
end

#silence_missing_strategies!Object

Do not raise an error if a missing strategy is given by default. :api: plugin



45
46
47
# File 'lib/warden/config.rb', line 45

def silence_missing_strategies!
  self[:silence_missing_strategies] = true
end

#silence_missing_strategies?Boolean

:nodoc:

Returns:

  • (Boolean)


49
50
51
# File 'lib/warden/config.rb', line 49

def silence_missing_strategies? #:nodoc:
  !!self[:silence_missing_strategies]
end

#strategiesObject

Quick accessor to strategies from manager :api: public



65
66
67
# File 'lib/warden/config.rb', line 65

def strategies
  Warden::Strategies
end