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



                                 




                     
                       
                                
                                                     


                                        
                                                             
         








                                                        

     
module ActiveRecord
  module Scoping
    extend ActiveSupport::Concern

    included do
      include Default
      include Named
    end

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

      def current_scope=(scope) #:nodoc:
        Thread.current["#{base_class}_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