af83/chouette-core

View on GitHub
app/models/concerns/error_format.rb

Summary

Maintainability
A
0 mins
Test Coverage
# TODO: This module should be moved out of concerns to somewhere that makes
# more sense.

module ErrorFormat extend self

  def details error_object
    error_object.errors.messages.inject({}) do |hash, error|
      hash.merge(partial(:detail, error_object, error).call)
    end
  end

  private

  def detail error_object, error
    {
      error.first => {
        error: error.last.first,
        value: error_object[error.first]
      }
    }
  end

  def partial name, *partial_args
    -> *lazy_args do
      send(name, *(partial_args + lazy_args))
    end
  end

end