Code Duplication    Length = 8-8 lines in 2 locations

src/Zicht/Itertools/itertools.php 2 locations

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