module Pliny::Helpers::Serialize::Helpers

Public Instance Methods

serialize(data, structure = :default) click to toggle source
# File lib/pliny/helpers/serialize.rb, line 9
      def serialize(data, structure = :default)
        serializer_class = settings.serializer_class

        if serializer_class.nil?
          raise <<~eos.strip
            No serializer has been specified for this endpoint. Please specify one with
            `serializer Serializers::ModelName` in the endpoint.
          eos
        end

        env['pliny.serializer_arity'] = data.respond_to?(:size) ? data.size : 1

        start = Time.now
        serializer_class.new(structure).serialize(data).tap do
          env['pliny.serializer_timing'] = (Time.now - start).to_f
        end
      end