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.
40 41 42 43 44 45 46 47 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 40 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.
70 71 72 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 70 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.
75 76 77 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 75 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.
35 36 37 |
# File 'lib/dry/schema/extensions/hints.rb', line 35 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.
55 56 57 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 55 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.
65 66 67 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 65 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.
60 61 62 |
# File 'lib/dry/schema/message/or/multi_path.rb', line 60 def root @root ||= _paths.reduce(:&) end |