aboutsummaryrefslogblamecommitdiffstats
path: root/activerecord/lib/active_record/scoping.rb
blob: 66a486ae0af639181efbc2a79f62f84eec3d1546 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11





                                 




                     
                       






                                                       











                                                        
require 'active_support/concern'

module ActiveRecord
  module Scoping
    extend ActiveSupport::Concern

    included do
      include Default
      include Named
    end

    module ClassMethods
      def current_scope #:nodoc:
        Thread.current["#{self}_current_scope"]
      end

      def current_scope=(scope) #:nodoc:
        Thread.current["#{self}_current_scope"] = scope
      end
    end

    def populate_with_current_scope_attributes
      return unless self.class.scope_attributes?

      self.class.scope_attributes.each do |att,value|
        send("#{att}=", value) if respond_to?("#{att}=")
      end
    end

  end
end