7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/datasource/consumer_adapters/active_model_serializers.rb', line 7
def initialize_with_datasource(objects, options = {})
datasource_class = options.delete(:datasource)
adapter = Datasource.orm_adapters.find { |a| a.is_scope?(objects) }
if adapter && !adapter.scope_loaded?(objects)
datasource_class ||= adapter.scope_to_class(objects).default_datasource
scope = begin
objects
.with_datasource(datasource_class)
.for_serializer(options[:serializer])
.datasource_params(*[options[:datasource_params]].compact)
rescue NameError
if options[:serializer].nil?
return initialize_without_datasource(objects, options)
else
raise
end
end
records = adapter.scope_to_records(scope)
initialize_without_datasource(records, options)
else
initialize_without_datasource(objects, options)
end
end
|