Module: ActiveRecordCustomPreloader::ModelPatch
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/active_record_custom_preloader/model_patch.rb
Instance Method Summary collapse
-
#_custom_preloaded_value(name) ⇒ Object
fetch if necessary and return custom preloaded value for name.
-
#_custom_preloaded_values ⇒ Object
returns Hash that stores cached custom preloaded values.
- #_load_custom_preloaded_value(name, options = {}) ⇒ Object
-
#_set_custom_preloaded_value(name, value) ⇒ Object
sets custom preloaded value for name.
-
#clear_custom_preloaded_value(name) ⇒ Object
clear particular custom preloaded value.
-
#clear_custom_preloaded_values ⇒ Object
clear custom preloaded values.
- #has_custom_preloaded_value?(name) ⇒ Boolean
Instance Method Details
#_custom_preloaded_value(name) ⇒ Object
fetch if necessary and return custom preloaded value for name
86 87 88 89 90 |
# File 'lib/active_record_custom_preloader/model_patch.rb', line 86 def _custom_preloaded_value(name) raise ArgumentError, "custom preloader #{name.inspect} does not exist" unless _custom_loaders.key?(name) _load_custom_preloaded_value(name) unless has_custom_preloaded_value?(name) _custom_preloaded_values[name] end |
#_custom_preloaded_values ⇒ Object
returns Hash that stores cached custom preloaded values
81 82 83 |
# File 'lib/active_record_custom_preloader/model_patch.rb', line 81 def _custom_preloaded_values @_custom_preloaded_values ||= {} end |
#_load_custom_preloaded_value(name, options = {}) ⇒ Object
92 93 94 |
# File 'lib/active_record_custom_preloader/model_patch.rb', line 92 def _load_custom_preloaded_value(name, = {}) self.class.custom_loader_for(name, ).preload([self]) end |
#_set_custom_preloaded_value(name, value) ⇒ Object
sets custom preloaded value for name
76 77 78 |
# File 'lib/active_record_custom_preloader/model_patch.rb', line 76 def _set_custom_preloaded_value(name, value) _custom_preloaded_values[name] = value end |
#clear_custom_preloaded_value(name) ⇒ Object
clear particular custom preloaded value
66 67 68 69 |
# File 'lib/active_record_custom_preloader/model_patch.rb', line 66 def clear_custom_preloaded_value(name) raise Error, "custom preloader #{name.inspect} does not exist" unless _custom_loaders.key?(name) _custom_preloaded_values.delete(name) end |
#clear_custom_preloaded_values ⇒ Object
clear custom preloaded values
61 62 63 |
# File 'lib/active_record_custom_preloader/model_patch.rb', line 61 def clear_custom_preloaded_values @_custom_preloaded_values = nil end |
#has_custom_preloaded_value?(name) ⇒ Boolean
71 72 73 |
# File 'lib/active_record_custom_preloader/model_patch.rb', line 71 def has_custom_preloaded_value?(name) _custom_preloaded_values.key?(name) end |