8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/serega/plugins/preloads/validations/check_opt_preload_path.rb', line 8
def call(opts)
return unless opts.key?(:preload_path)
value = opts[:preload_path]
raise Error, "Invalid option :preload_path => #{value.inspect}. Can be provided only when :preload option provided" unless opts[:preload]
raise Error, "Invalid option :preload_path => #{value.inspect}. Can be provided only when :serializer option provided" unless opts[:serializer]
path = Array(value).map!(&:to_sym)
preloads = FormatUserPreloads.call(opts[:preload])
allowed_paths = paths(preloads)
raise Error, "Invalid option :preload_path => #{value.inspect}. Can be one of #{allowed_paths.inspect[1..-2]}" unless allowed_paths.include?(path)
end
|