Sha256: 139980a27e55373ba3204893a5629755253dcd4c2d34d10215e6555d432cd455
Contents?: true
Size: 1.14 KB
Versions: 5
Compression:
Stored size: 1.14 KB
Contents
module Dry module Logic def self.Result(response, rule, input) Result[rule].new(response, rule, input) end class Result include Dry::Equalizer(:success?, :input, :rule) attr_reader :input, :rule, :response, :success def self.[](type) case type when Rule::Each then Result::Each when Rule::Set then Result::Set when Rule::Key, Rule::Attr, Rule::Check then Result::Named else Result::Value end end def initialize(response, rule, input) @response = response @success = response.respond_to?(:success?) ? response.success? : response @rule = rule @input = input end def [](name) response[name] if response.respond_to?(:[]) end def name nil end def negated self.class.new(!success, rule, input) end def success? @success end def failure? !success? end end end end require 'dry/logic/result/value' require 'dry/logic/result/named' require 'dry/logic/result/multi' require 'dry/logic/result/each' require 'dry/logic/result/set'
Version data entries
5 entries across 5 versions & 1 rubygems