Module: JsonApiModel::Associations::Preloaders

Defined in:
lib/json_api_model/associations/preloaders.rb,
lib/json_api_model/associations/preloaders/has.rb,
lib/json_api_model/associations/preloaders/base.rb,
lib/json_api_model/associations/preloaders/belongs_to.rb

Defined Under Namespace

Classes: Base, BelongsTo, Has

Constant Summary collapse

PREOLOADERS =
{
  JsonApiModel::Associations::BelongsTo => JsonApiModel::Associations::Preloaders::BelongsTo,
  JsonApiModel::Associations::HasOne    => JsonApiModel::Associations::Preloaders::Has,
  JsonApiModel::Associations::HasMany   => JsonApiModel::Associations::Preloaders::Has
}

Class Method Summary collapse

Class Method Details

.preloader_for(objects, preload) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/json_api_model/associations/preloaders.rb', line 9

def preloader_for( objects, preload )
  klass = object_class( objects )
  association = klass.__associations.fetch preload

  PREOLOADERS[ association.class ].new( objects, association )
rescue KeyError
  raise "#{klass}##{preload.to_s} is not a valid association"
end