Module: ActiveRecordCustomPreloader::ModelPatch

Extended by:
ActiveSupport::Concern
Defined in:
lib/active_record_custom_preloader/model_patch.rb

Instance Method Summary collapse

Instance Method Details

#_custom_preloaded_value(name) ⇒ Object

fetch if necessary and return custom preloaded value for name

Raises:

  • (ArgumentError)


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_valuesObject

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, options = {})
  self.class.custom_loader_for(name, options).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

Raises:



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_valuesObject

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

Returns:

  • (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