Sha256: a89033590e9f88ebc749257c1be1f977518ea386d09b4c518bf7d345c5e1f540

Contents?: true

Size: 1.32 KB

Versions: 14

Compression:

Stored size: 1.32 KB

Contents

module Authlogic
  module AuthenticatesMany
    # An object of this class is used as a proxy for the authenticates_many relationship. It basically allows you to "save" scope details
    # and call them on an object, which allows you to do the following:
    #
    #   @account.user_sessions.new
    #   @account.user_sessions.find
    #   # ... etc
    #
    # You can call all of the class level methods off of an object with a saved scope, so that calling the above methods scopes the user
    # sessions down to that specific account. To implement this via ActiveRecord do something like:
    #
    #   class User < ActiveRecord::Base
    #     authenticates_many :user_sessions
    #   end
    class Association
      attr_accessor :klass, :find_options, :id

      def initialize(klass, find_options, id)
        self.klass = klass
        self.find_options = find_options
        self.id = id
      end

      [:create, :create!, :find, :new].each do |method|
        class_eval <<-"end_eval", __FILE__, __LINE__
          def #{method}(*args)
            klass.with_scope(scope_options) do
              klass.#{method}(*args)
            end
          end
        end_eval
      end
      alias_method :build, :new

      private
        def scope_options
          {:find_options => find_options, :id => id}
        end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
refinerycms-0.9.6.34 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.33 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.32 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.31 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.30 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.29 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.28 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.27 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.26 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.25 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.24 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.23 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.22 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb
refinerycms-0.9.6.21 vendor/plugins/authlogic/lib/authlogic/authenticates_many/association.rb