class SerializerClassMethods::SerializerDatasourceContext
Public Class Methods
new(serializer)
click to toggle source
# File lib/active_loaders/datasource_adapter.rb, line 100 def initialize(serializer) @serializer = serializer end
Public Instance Methods
includes(*args)
click to toggle source
# File lib/active_loaders/datasource_adapter.rb, line 118 def includes(*args) @datasource_includes ||= {} args.each do |arg| @datasource_includes.deep_merge!(datasource_includes_to_select(arg)) end @datasource_includes end
select(*args)
click to toggle source
# File lib/active_loaders/datasource_adapter.rb, line 104 def select(*args) @datasource_select ||= [] @datasource_select.concat(args) @datasource_select end
skip_select(*args)
click to toggle source
# File lib/active_loaders/datasource_adapter.rb, line 111 def skip_select(*args) @datasource_skip_select ||= [] @datasource_skip_select.concat(args) @datasource_skip_select end
use_datasource(*args)
click to toggle source
# File lib/active_loaders/datasource_adapter.rb, line 128 def use_datasource(*args) @serializer.use_datasource(*args) end
Private Instance Methods
datasource_includes_to_select(arg)
click to toggle source
# File lib/active_loaders/datasource_adapter.rb, line 133 def datasource_includes_to_select(arg) if arg.kind_of?(Hash) arg.keys.inject({}) do |memo, key| memo[key.to_sym] = ["*", datasource_includes_to_select(arg[key])] memo end elsif arg.kind_of?(Array) arg.inject({}) do |memo, element| memo.deep_merge!(datasource_includes_to_select(element)) end elsif arg.respond_to?(:to_sym) { arg.to_sym => ["*"] } else fail Datasource::Error, "unknown includes value type #{arg.class}" end end