Sha256: 41967363107b38fcde415073c7aad780be57710d77abaa6786f424a9e74f7cd0

Contents?: true

Size: 751 Bytes

Versions: 2

Compression:

Stored size: 751 Bytes

Contents

# coding: utf-8
require "forwardable"

module Abak::Flow
  class ErrorsPresenter
    extend Forwardable

    def_delegators :@errors, :empty?, :each, :each_with_index

    def initialize(object, errors)
      @object = object
      @object_errors = errors
      @errors = create_human_readable_errors
    end

    private

    def create_human_readable_errors
      @object_errors.map do |field, errors|
        field_name = Manager.locale.field(@object, field)

        errors = errors.map do |error|
          error = {field: error, options: Hash.new} unless error.is_a?(Hash)
          Manager.locale.error(@object, "#{field}.#{error[:field]}", error[:options])
        end

        "#{field_name} – #{errors * ", "}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
abak-flow-1.1.1 lib/abak-flow/errors_presenter.rb
abak-flow-1.1.0 lib/abak-flow/errors_presenter.rb