Sha256: 04308210041581cb86e04c9e515845ae9fa1ab1a2aa0456886e6a9ad6e8cd8cf

Contents?: true

Size: 867 Bytes

Versions: 2

Compression:

Stored size: 867 Bytes

Contents

# frozen_string_literal: true

class ValidationErrorSerializer
  def initialize(record, field, details, message)
    @record = record
    @field = field
    @details = details
    @message = message
  end

  def serialize
    {
      resource: resource,
      field: field,
      code: code,
      message: message
    }
  end

  private

  attr_reader :record, :message

  def resource
    I18n.t underscored_resource_name,
           scope: %i[errors resources],
           default: underscored_resource_name
  end

  def field
    I18n.t @field,
           scope: [:errors, :fields, underscored_resource_name],
           default: @field.to_s
  end

  def code
    I18n.t @details[:error],
           scope: %i[errors code],
           default: @details[:error].to_s
  end

  def underscored_resource_name
    record.class.to_s.gsub("::", "").underscore
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
n_base_rails-0.1.2 lib/serializers/validation_error_serializer.rb
n_base_rails-0.1.1 lib/serializers/validation_error_serializer.rb