class Dry::Schema::Result
@api public
Monad extension for Result
def self.new(*args)
- Api: - private
def self.new(*args) result = super yield(result) result.freeze end
def [](name)
- Api: - public
Returns:
-
(Object)-
Parameters:
-
name(Symbol) --
def [](name) output[name] end
def concat(other)
- Api: - private
def concat(other) results.concat(other) result_ast.concat(other.map(&:to_ast)) self end
def error?(spec)
- Api: - public
Returns:
-
(Boolean)-
Parameters:
-
spec(Symbol, Hash) --Symbol>
def error?(spec) message_set.any? { |msg| Path[msg.path].include?(Path[spec]) } end
def errors(options = EMPTY_HASH)
- Api: - public
Returns:
-
(MessageSet)-
Other tags:
- See: #message_set -
def errors(options = EMPTY_HASH) message_set(options) end
def failure?
- Api: - public
Returns:
-
(Boolean)-
def failure? !success? end
def inspect
- Api: - public
Returns:
-
(String)-
def inspect "#<#{self.class}#{to_h.inspect} errors=#{errors.to_h.inspect}>" end
def key?(name)
- Api: - public
Returns:
-
(Boolean)-
Parameters:
-
name(Symbol) --
def key?(name) output.key?(name) end
def message_set(options = EMPTY_HASH)
- Api: - public
Returns:
-
(MessageSet)-
Options Hash:
(**options)-
:full(Boolean) -- Whether to generate messages that include key names -
:hints(Boolean) -- Whether to include hint messages or not -
:locale(Symbol) -- Alternative locale (default is :en)
Parameters:
-
options(Hash) --
def message_set(options = EMPTY_HASH) message_compiler.with(options).(result_ast) end
def replace(hash)
- Api: - private
def replace(hash) @output = hash self end
def result_ast
- Api: - private
def result_ast @result_ast ||= results.map(&:to_ast) end
def success?
- Api: - public
Returns:
-
(Boolean)-
def success? results.empty? end
def to_monad
- Api: - public
Returns:
-
(Dry::Monads::Success, Dry::Monads::Failure)-
def to_monad if success? Success(self) else Failure(self) end end