class Dry::Schema::Message::Or::SinglePath
A message type used by OR operations with the same path
@api public
Attributes
_path[R]
@api private
messages[R]
@api private
path[R]
@api private
Public Class Methods
new(*args, messages)
click to toggle source
@api private
Calls superclass method
Dry::Schema::Message::Or::Abstract::new
# File lib/dry/schema/message/or/single_path.rb, line 23 def initialize(*args, messages) super(*args.map { [_1].flatten }) @messages = messages message = left.first @path = message.path @_path = message._path end
Public Instance Methods
dump()
click to toggle source
Dump a message into a string
Both sides of the message will be joined using translated value under `dry_schema.or` message key
@see Message#dump
@return [String]
@api public
# File lib/dry/schema/message/or/single_path.rb, line 41 def dump @dump ||= [*left, *right].map(&:dump).join(" #{messages[:or]} ") end
Also aliased as: to_s
hint?()
click to toggle source
@api private
# File lib/dry/schema/extensions/hints.rb, line 28 def hint? false end
to_a()
click to toggle source
@api private
# File lib/dry/schema/message/or/single_path.rb, line 58 def to_a @to_a ||= [*left, *right] end
to_h()
click to toggle source
Dump an `or` message into a hash
@see Message#to_h
@return [String]
@api public
# File lib/dry/schema/message/or/single_path.rb, line 53 def to_h @to_h ||= _path.to_h(dump) end
to_or(root)
click to toggle source
@api private
# File lib/dry/schema/message/or/single_path.rb, line 63 def to_or(root) to_ored = [left, right].map do |msgs| msgs.map { _1.to_or(root) } end self.class.new(*to_ored, messages) end