Module: ActiveRecord::Delegation::DelegateCache
- Included in:
 - Base
 
- Defined in:
 - activerecord/lib/active_record/relation/delegation.rb
 
Overview
:nodoc:
Instance Attribute Summary collapse
- 
  
    
      #delegate_base_methods  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
Returns the value of attribute delegate_base_methods.
 
Instance Method Summary collapse
- #generate_relation_method(method) ⇒ Object
 - #inherited(child_class) ⇒ Object
 - #initialize_relation_delegate_cache ⇒ Object
 - #relation_delegate_class(klass) ⇒ Object
 
Instance Attribute Details
#delegate_base_methods ⇒ Object
Returns the value of attribute delegate_base_methods.
      26 27 28  | 
    
      # File 'activerecord/lib/active_record/relation/delegation.rb', line 26 def delegate_base_methods @delegate_base_methods end  | 
  
Instance Method Details
#generate_relation_method(method) ⇒ Object
      52 53 54  | 
    
      # File 'activerecord/lib/active_record/relation/delegation.rb', line 52 def generate_relation_method(method) generated_relation_methods.generate_method(method) end  | 
  
#inherited(child_class) ⇒ Object
      47 48 49 50  | 
    
      # File 'activerecord/lib/active_record/relation/delegation.rb', line 47 def inherited(child_class) child_class.initialize_relation_delegate_cache super end  | 
  
#initialize_relation_delegate_cache ⇒ Object
      32 33 34 35 36 37 38 39 40 41 42 43 44 45  | 
    
      # File 'activerecord/lib/active_record/relation/delegation.rb', line 32 def initialize_relation_delegate_cache @relation_delegate_cache = cache = {} Delegation.delegated_classes.each do |klass| delegate = Class.new(klass) { include ClassSpecificRelation } include_relation_methods(delegate) mangled_name = klass.name.gsub("::", "_") const_set mangled_name, delegate private_constant mangled_name cache[klass] = delegate end end  | 
  
#relation_delegate_class(klass) ⇒ Object
      28 29 30  | 
    
      # File 'activerecord/lib/active_record/relation/delegation.rb', line 28 def relation_delegate_class(klass) @relation_delegate_cache[klass] end  |