Sha256: 42316694cd1da84591f15b6160320d60fe3b18ba96186baf6bfd6b844213d549

Contents?: true

Size: 461 Bytes

Versions: 3

Compression:

Stored size: 461 Bytes

Contents

module Dry
  module Logic
    class Result::Each < Result::Multi
      def to_ast
        failed_rules = failures.map { |idx, el| [:el, [idx, el.to_ast]] }
        [:result, [rule.evaluate(input), [:each, failed_rules]]]
      end

      def success?
        response.values.all?(&:success?)
      end

      def failures
        response.each_with_object({}) { |(idx, res), hash|
          hash[idx] = res if res.failure?
        }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-logic-0.2.3 lib/dry/logic/result/each.rb
dry-logic-0.2.2 lib/dry/logic/result/each.rb
dry-logic-0.2.1 lib/dry/logic/result/each.rb