mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
be1585fca0
To keep the same as SHA dcafe995bf
33 lines
1,007 B
Ruby
33 lines
1,007 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "active_model/error"
|
|
require "forwardable"
|
|
|
|
module ActiveModel
|
|
# Represents one single error
|
|
# @!attribute [r] base
|
|
# @return [ActiveModel::Base] the object which the error belongs to
|
|
# @!attribute [r] attribute
|
|
# @return [Symbol] attribute of the object which the error belongs to
|
|
# @!attribute [r] type
|
|
# @return [Symbol] error's type
|
|
# @!attribute [r] options
|
|
# @return [Hash] additional options
|
|
# @!attribute [r] inner_error
|
|
# @return [Error] inner error
|
|
class NestedError < Error
|
|
def initialize(base, inner_error, override_options = {})
|
|
@base = base
|
|
@inner_error = inner_error
|
|
@attribute = override_options.fetch(:attribute) { inner_error.attribute }
|
|
@type = override_options.fetch(:type) { inner_error.type }
|
|
@raw_type = inner_error.raw_type
|
|
@options = inner_error.options
|
|
end
|
|
|
|
attr_reader :inner_error
|
|
|
|
extend Forwardable
|
|
def_delegators :@inner_error, :message
|
|
end
|
|
end
|