Module: Authlogic::ActsAsAuthentic::Base::Config

Defined in:
lib/authlogic/acts_as_authentic/base.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_authentic(unsupported_options = nil) {|_self| ... } ⇒ Object

This includes a lot of helpful methods for authenticating records which The Authlogic::Session module relies on. To use it just do:

class User < ActiveRecord::Base
  acts_as_authentic
end

Configuration is easy:

acts_as_authentic do |c|
  c.my_configuration_option = my_value
end

See the various sub modules for the configuration they provide.

Yields:

  • (_self)

Yield Parameters:

Raises:

  • (StandardError)


29
30
31
32
33
34
35
36
37
38
# File 'lib/authlogic/acts_as_authentic/base.rb', line 29

def acts_as_authentic(unsupported_options = nil, &block)
  # Stop all configuration if the DB is not set up
  raise StandardError.new("You must establish a database connection before using acts_as_authentic") if !db_setup?
  
  raise ArgumentError.new("You are using the old v1.X.X configuration method for Authlogic. Instead of " +
    "passing a hash of configuration options to acts_as_authentic, pass a block: acts_as_authentic { |c| c.my_option = my_value }") if !unsupported_options.nil?
  
  yield self if block_given?
  acts_as_authentic_modules.each { |mod| include mod }
end

#add_acts_as_authentic_module(mod, action = :append) ⇒ Object

Since this part of Authlogic deals with another class, ActiveRecord, we can’t just start including things in ActiveRecord itself. A lot of these module includes need to be triggered by the acts_as_authentic method call. For example, you don’t want to start adding in email validations and what not into a model that has nothing to do with Authlogic.

That being said, this is your tool for extending Authlogic and “hooking” into the acts_as_authentic call.



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/authlogic/acts_as_authentic/base.rb', line 46

def add_acts_as_authentic_module(mod, action = :append)
  modules = acts_as_authentic_modules.clone
  case action
  when :append
    modules << mod
  when :prepend
    modules = [mod] + modules
  end
  modules.uniq!
  self.acts_as_authentic_modules = modules
end

#remove_acts_as_authentic_module(mod) ⇒ Object

This is the same as add_acts_as_authentic_module, except that it removes the module from the list.



59
60
61
62
63
# File 'lib/authlogic/acts_as_authentic/base.rb', line 59

def remove_acts_as_authentic_module(mod)
  modules = acts_as_authentic_modules.clone
  modules.delete(mod)
  self.acts_as_authentic_modules = modules
end