class Gearhead::Serializers::InvalidResourceSerializer

Attributes

errors[R]
resource[R]

Public Class Methods

new(resource, options = {}) click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 8
def initialize(resource, options = {})
  @resource = resource
  @errors = errors_for(resource).flatten
end

Public Instance Methods

id() click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 13
def id
  resource.id.to_s
end
serializable_hash(options = nil) click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 21
def serializable_hash(options = nil)
  {}.tap do |hash|
    hash[:id] = id if has_id?
    hash[:type] = type if has_id?
    hash[:errors] = errors
  end
end
serialized_json(options = nil) click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 29
def serialized_json(options = nil)
  serializable_hash.to_json(options)
end
type() click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 17
def type
  resource.class.name.downcase
end

Private Instance Methods

build_hash_for(field, error_message) click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 51
def build_hash_for(field, error_message)
  {}.tap do |hash|
    hash[:source] = {pointer: "/data/attributes/#{field}"}
    hash[:detail] = error_message
  end
end
build_hashes_for(field, errors) click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 45
def build_hashes_for(field, errors)
  errors.map do |error_message|
    build_hash_for(field, error_message)
  end
end
errors_for(resource) click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 39
def errors_for(resource)
  resource.errors.messages.map do |field, errors|
    build_hashes_for(field, errors)
  end
end
has_id?() click to toggle source
# File lib/gearhead/serializers/invalid_resource_serializer.rb, line 35
def has_id?
  @resource.respond_to?(:id)
end