Authority\RuleRepository::reduce PHP Method

reduce() public method

Runs a reduce callback on the collection
public reduce ( Closure $callback, mixed $initialValue = [] ) : RuleRepository
$callback Closure Callback to use for the reduce algorithm
$initialValue mixed Initial value for the reduce set
return RuleRepository
    public function reduce(Closure $callback, $initialValue = array())
    {
        $rules = array_reduce($this->rules, $callback, $initialValue);
        return new static($rules);
    }

Usage Example

 public function testCanNarrowRulesByReduce()
 {
     $repo = new RuleRepository($this->rules);
     $rules = $repo->reduce(function ($rules, $currentRule) {
         if ($currentRule->isPrivilege()) {
             $rules[] = $currentRule;
         }
         return $rules;
     });
     $this->assertCount(1, $rules);
 }