Code Duplication    Length = 8-8 lines in 2 locations

src/Zicht/Itertools/itertools.php 2 locations

@@ 573-580 (lines=8) @@
570
571
    $args = func_get_args();
572
    switch (sizeof($args)) {
573
        case 2:
574
            $strategy = conversions\mixed_to_value_getter($args[0]);
575
            $closure = function ($value, $key) use ($strategy) {
576
                $tempVarPhp54 = call_user_func($strategy, $value, $key);
577
                return !empty($tempVarPhp54);
578
            };
579
            $iterable = conversions\mixed_to_iterator($args[1]);
580
            break;
581
582
        case 3:
583
            $strategy = conversions\mixed_to_value_getter($args[0]);
@@ 582-589 (lines=8) @@
579
            $iterable = conversions\mixed_to_iterator($args[1]);
580
            break;
581
582
        case 3:
583
            $strategy = conversions\mixed_to_value_getter($args[0]);
584
            $userClosure = $args[1];
585
            $closure = function ($value, $key) use ($strategy, $userClosure) {
586
                return call_user_func($userClosure, call_user_func($strategy, $value, $key));
587
            };
588
            $iterable = conversions\mixed_to_iterator($args[2]);
589
            break;
590
591
        default:
592
            throw new \InvalidArgumentException('filterBy requires either two (strategy, iterable) or three (strategy, closure, iterable) arguments');