class ActiveModelSerializers::SerializableResource

def serializer

Remove :each_serializer if present and set as :serializer key
Remove :serializer key from serializer_opts
Get serializer either explicitly :serializer or implicitly from resource
def serializer
  @serializer ||=
    begin
      @serializer = serializer_opts.delete(:serializer)
      @serializer ||= ActiveModel::Serializer.serializer_for(resource, serializer_opts)
      if serializer_opts.key?(:each_serializer)
        serializer_opts[:serializer] = serializer_opts.delete(:each_serializer)
      end
      @serializer
    end
end