module Dry module Logic class Rule::Group < Rule attr_reader :rules def initialize(identifier, predicate) name, rules = identifier.to_a.first @rules = rules super(name, predicate) end def call(*input) Logic.Result(input, predicate.(*input), self) end def type :group end end end end