Code Duplication    Length = 8-8 lines in 2 locations

src/Zicht/Itertools/itertools.php 2 locations

@@ 602-609 (lines=8) @@
599
600
    $args = func_get_args();
601
    switch (sizeof($args)) {
602
        case 2:
603
            $strategy = Conversions::mixedToValueGetter($args[0]);
604
            $closure = function ($value, $key) use ($strategy) {
605
                $tempVarPhp54 = call_user_func($strategy, $value, $key);
606
                return !empty($tempVarPhp54);
607
            };
608
            $iterable = Conversions::mixedToIterator($args[1]);
609
            break;
610
611
        case 3:
612
            $strategy = Conversions::mixedToValueGetter($args[0]);
@@ 611-618 (lines=8) @@
608
            $iterable = Conversions::mixedToIterator($args[1]);
609
            break;
610
611
        case 3:
612
            $strategy = Conversions::mixedToValueGetter($args[0]);
613
            $userClosure = $args[1];
614
            $closure = function ($value, $key) use ($strategy, $userClosure) {
615
                return call_user_func($userClosure, call_user_func($strategy, $value, $key));
616
            };
617
            $iterable = Conversions::mixedToIterator($args[2]);
618
            break;
619
620
        default:
621
            throw new \InvalidArgumentException('filterBy requires either two (strategy, iterable) or three (strategy, closure, iterable) arguments');