12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/graphiti/util/serializer_attributes.rb', line 12
def apply
return unless readable?
if @name == :id
@serializer.id(&proc)
elsif @attr[:proc]
@serializer.send(_method, @name, serializer_options, &proc)
elsif @serializer.attribute_blocks[@name].nil?
@serializer.send(_method, @name, serializer_options, &proc)
else
unless @serializer.send(applied_method).include?(@name)
inner = @serializer.attribute_blocks.delete(@name)
wrapped = wrap_proc(inner)
@serializer.send(_method, @name, serializer_options, &wrapped)
end
end
existing = @serializer.send(applied_method)
@serializer.send(:"#{applied_method}=", [@name] | existing)
end
|