module Authlogic::ActsAsAuthentic::Base::Config
Public Instance Methods
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.
# 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 return if !db_setup? if !unsupported_options.nil? 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 }" ) end yield self if block_given? acts_as_authentic_modules.each { |mod| include mod } end
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.
# File lib/authlogic/acts_as_authentic/base.rb, line 50 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
This is the same as #add_acts_as_authentic_module, except that it removes the module from the list.
# File lib/authlogic/acts_as_authentic/base.rb, line 63 def remove_acts_as_authentic_module(mod) modules = acts_as_authentic_modules.clone modules.delete(mod) self.acts_as_authentic_modules = modules end
Private Instance Methods
# File lib/authlogic/acts_as_authentic/base.rb, line 70 def db_setup? begin column_names true rescue Exception false end end
# File lib/authlogic/acts_as_authentic/base.rb, line 90 def first_column_to_exist(*columns_to_check) if db_setup? columns_to_check.each { |column_name| return column_name.to_sym if column_names.include?(column_name.to_s) } end columns_to_check.first && columns_to_check.first.to_sym end
# File lib/authlogic/acts_as_authentic/base.rb, line 79 def rw_config(key, value, default_value = nil, read_value = nil) if value == read_value acts_as_authentic_config.include?(key) ? acts_as_authentic_config[key] : default_value else config = acts_as_authentic_config.clone config[key] = value self.acts_as_authentic_config = config value end end