Class: Dry::Schema::Message::Or::MultiPath
- Defined in:
- lib/dry/schema/message/or/multi_path.rb,
lib/dry/schema/extensions/hints.rb
Overview
A message type used by OR operations with different paths
Defined Under Namespace
Classes: MessageArray
Constant Summary collapse
- MESSAGE_ARRAY_HANDLER =
-> { MessageArray.new(_1) }
Instance Attribute Summary
Attributes inherited from Abstract
Class Method Summary collapse
- .handler(message) ⇒ Object private
Instance Method Summary collapse
- #_path ⇒ Object private
- #_paths ⇒ Object private
- #hint? ⇒ Boolean private
- #messages ⇒ Object private
- #path ⇒ Object private
- #root ⇒ Object private
- #to_h ⇒ Object
- #to_or(root) ⇒ Object private
Methods inherited from Abstract
Constructor Details
This class inherits a constructor from Dry::Schema::Message::Or::Abstract
Class Method Details
.handler(message) ⇒ Object
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.
37 38 39 40 41 42 43 44 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 37 def self.handler() case when self IDENTITY when Array MESSAGE_ARRAY_HANDLER end end |
Instance Method Details
#_path ⇒ Object
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.
67 68 69 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 67 def _path @_path ||= Path[root] end |
#_paths ⇒ Object
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.
72 73 74 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 72 def _paths @paths ||= .flat_map(&:_paths) 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.
31 32 33 |
# File 'lib/dry/schema/extensions/hints.rb', line 31 def hint? false end |
#messages ⇒ Object
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.
52 53 54 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 52 def @messages ||= .flat_map { _1.to_or(root) } end |
#path ⇒ Object
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.
62 63 64 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 62 def path root end |
#root ⇒ Object
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/multi_path.rb', line 57 def root @root ||= _paths.reduce(:&) end |