Module: GemExtensions::ActiveRecord::DelegateCache
- Defined in:
- lib/gem_extensions/active_record/delegate_cache.rb
Instance Method Summary collapse
- #inherited(child_class) ⇒ Object
- #initialize_relation_delegate_cache_disable_joins ⇒ Object
- #relation_delegate_class(klass) ⇒ Object
Instance Method Details
#inherited(child_class) ⇒ Object
28 29 30 31 |
# File 'lib/gem_extensions/active_record/delegate_cache.rb', line 28 def inherited(child_class) child_class.initialize_relation_delegate_cache_disable_joins super end |
#initialize_relation_delegate_cache_disable_joins ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/gem_extensions/active_record/delegate_cache.rb', line 10 def initialize_relation_delegate_cache_disable_joins @relation_delegate_cache2 = {} # rubocop:disable Gitlab/ModuleWithInstanceVariables [ ::GemExtensions::ActiveRecord::DisableJoins::Relation ].each do |klass| delegate = Class.new(klass) do include ::ActiveRecord::Delegation::ClassSpecificRelation end include_relation_methods(delegate) mangled_name = klass.name.gsub("::", "_") const_set mangled_name, delegate private_constant mangled_name @relation_delegate_cache2[klass] = delegate # rubocop:disable Gitlab/ModuleWithInstanceVariables end end |
#relation_delegate_class(klass) ⇒ Object
6 7 8 |
# File 'lib/gem_extensions/active_record/delegate_cache.rb', line 6 def relation_delegate_class(klass) @relation_delegate_cache2[klass] || super # rubocop:disable Gitlab/ModuleWithInstanceVariables end |