Sha256: 9e9594af85d22f82497027fe1b8e25676cbe13f0e433afab52a05404a690f227

Contents?: true

Size: 1.12 KB

Versions: 3

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Dragnet
  module Exporters
    module Serializers
      # Serializes a +VerificationResult+ object into a +Hash+.
      class VerificationResultSerializer
        attr_reader :verification_result

        # Format used to serialize the +VerificationResult+'s date/time attributes.
        DATE_FORMAT = '%F %T %z'

        # @param [Dragnet::VerificationResult] verification_result The
        #   +VerificationResult+ object to serialize.
        def initialize(verification_result)
          @verification_result = verification_result
        end

        # @return [Hash] The +Hash+ representation of the given
        #   +VerificationResult+ object.
        def serialize
          {
            status: verification_result.status,
            started_at: verification_result.started_at.strftime(DATE_FORMAT),
            finished_at: verification_result.finished_at.strftime(DATE_FORMAT),
            runtime: verification_result.runtime
          }.tap do |hash|
            hash[:reason] = verification_result.reason if verification_result.reason
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dragnet-5.3.1 lib/dragnet/exporters/serializers/verification_result_serializer.rb
dragnet-5.3.0 lib/dragnet/exporters/serializers/verification_result_serializer.rb
dragnet-5.2.1 lib/dragnet/exporters/serializers/verification_result_serializer.rb