Class: Sorcery::Model::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/sorcery/model.rb

Overview

Each class which calls ‘activate_sorcery!’ receives an instance of this class. Every submodule which gets loaded may add accessors to this class so that all options will be configured from a single place.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/sorcery/model.rb', line 140

def initialize
  @defaults = {
    :@submodules                           => [],
    :@username_attribute_name              => :username,
    :@password_attribute_name              => :password,
    :@email_attribute_name                 => :email,
    :@crypted_password_attribute_name      => :crypted_password,
    :@encryption_algorithm                 => :bcrypt,
    :@encryption_provider                  => CryptoProviders::BCrypt,
    :@custom_encryption_provider           => nil,
    :@encryption_key                       => nil,
    :@salt_join_token                      => "",
    :@salt_attribute_name                  => :salt,
    :@stretches                            => nil,
    :@before_authenticate                  => [],
    :@after_config                         => []
  }
  reset!
end

Instance Attribute Details

#after_configObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def after_config
  @after_config
end

#before_authenticateObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def before_authenticate
  @before_authenticate
end

#crypted_password_attribute_nameObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def crypted_password_attribute_name
  @crypted_password_attribute_name
end

#custom_encryption_providerObject

change default encryption_provider.



136
137
138
# File 'lib/sorcery/model.rb', line 136

def custom_encryption_provider
  @custom_encryption_provider
end

#email_attribute_nameObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def email_attribute_name
  @email_attribute_name
end

#encryption_algorithmObject

change default encryption_provider.



136
137
138
# File 'lib/sorcery/model.rb', line 136

def encryption_algorithm
  @encryption_algorithm
end

#encryption_keyObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def encryption_key
  @encryption_key
end

#encryption_providerObject (readonly)

change default encryption_provider.



136
137
138
# File 'lib/sorcery/model.rb', line 136

def encryption_provider
  @encryption_provider
end

#password_attribute_nameObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def password_attribute_name
  @password_attribute_name
end

#salt_attribute_nameObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def salt_attribute_name
  @salt_attribute_name
end

#salt_join_tokenObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def salt_join_token
  @salt_join_token
end

#stretchesObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def stretches
  @stretches
end

#submodulesObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def submodules
  @submodules
end

#username_attribute_nameObject

change default username attribute, for example, to use :email as the login.



123
124
125
# File 'lib/sorcery/model.rb', line 123

def username_attribute_name
  @username_attribute_name
end

Instance Method Details

#reset!Object

Resets all configuration options to their default values.



161
162
163
164
165
# File 'lib/sorcery/model.rb', line 161

def reset!
  @defaults.each do |k,v|
    instance_variable_set(k,v)
  end       
end