aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/concerns/error_format.rb
blob: 158edb6e426485b2c61d7dce146324e0b88b73e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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