Class: Dry::Schema::Message::Or::SinglePath

Inherits:
Abstract
  • Object
show all
Defined in:
lib/dry/schema/extensions/hints.rb,
lib/dry/schema/message/or/single_path.rb

Overview

A message type used by OR operations with the same path

Instance Attribute Summary collapse

Attributes inherited from Abstract

#left, #right

Instance Method Summary collapse

Constructor Details

#initialize(*args, messages) ⇒ SinglePath

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of SinglePath.



23
24
25
26
27
28
# File 'lib/dry/schema/message/or/single_path.rb', line 23

def initialize(*args, messages)
  super(*args)
  @messages = messages
  @path = left.path
  @_path = left._path
end

Instance Attribute Details

#_pathObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



17
18
19
# File 'lib/dry/schema/message/or/single_path.rb', line 17

def _path
  @_path
end

#messagesObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



20
21
22
# File 'lib/dry/schema/message/or/single_path.rb', line 20

def messages
  @messages
end

#pathObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



14
15
16
# File 'lib/dry/schema/message/or/single_path.rb', line 14

def path
  @path
end

Instance Method Details

#dumpString Also known as: to_s

Dump a message into a string

Both sides of the message will be joined using translated value under `dry_schema.or` message key

Returns:

  • (String)

See Also:



40
41
42
# File 'lib/dry/schema/message/or/single_path.rb', line 40

def dump
  @dump ||= "#{left.dump} #{messages[:or]} #{right.dump}"
end

#hint?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


27
28
29
# File 'lib/dry/schema/extensions/hints.rb', line 27

def hint?
  false
end

#to_aObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



57
58
59
# File 'lib/dry/schema/message/or/single_path.rb', line 57

def to_a
  @to_a ||= [left, right]
end

#to_hString

Dump an `or` message into a hash

Returns:

  • (String)

See Also:



52
53
54
# File 'lib/dry/schema/message/or/single_path.rb', line 52

def to_h
  @to_h ||= _path.to_h(dump)
end