Module: ActiveRecord::Delegation::DelegateCache
- Included in:
- Base
- Defined in:
- lib/active_record/relation/delegation.rb
Overview
:nodoc:
Instance Method Summary collapse
- #generate_relation_method(method) ⇒ Object
- #inherited(child_class) ⇒ Object
- #initialize_relation_delegate_cache ⇒ Object
- #relation_delegate_class(klass) ⇒ Object
Instance Method Details
#generate_relation_method(method) ⇒ Object
49 50 51 |
# File 'lib/active_record/relation/delegation.rb', line 49 def generate_relation_method(method) generated_relation_methods.generate_method(method) end |
#inherited(child_class) ⇒ Object
44 45 46 47 |
# File 'lib/active_record/relation/delegation.rb', line 44 def inherited(child_class) child_class.initialize_relation_delegate_cache super end |
#initialize_relation_delegate_cache ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/active_record/relation/delegation.rb', line 29 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
25 26 27 |
# File 'lib/active_record/relation/delegation.rb', line 25 def relation_delegate_class(klass) @relation_delegate_cache[klass] end |