protected function getRanges(string $selector): Collection
    {
        return Factory::create(explode(';', $selector))->map(
            function ($range) {
                $separator = $this->dotDotSeparator($range);
                if (false != $separator) {
                    return Factory::create([(int) substr($range, 0, $separator), (int) substr($range, $separator + 2)]);
                }
                $separator = $this->columnSeparator($range);
                if (false != $separator) {
                    return Factory::create([(int) substr($range, 0, $separator), (int) substr($range, $separator + 1)]);
                }
                $separator = $this->dashSeparator($range);
                if (false != $separator) {
                    return Factory::create([(int) substr($range, 0, $separator), (int) substr($range, $separator + 1)]);
                }
                $separator = $this->commaSeparator($range);
                if (false != $separator) {
                    return Factory::create(
                        [
                            (int) substr($range, 0, $separator),
                            (int) substr($range, 0, $separator) + (int) (substr($range, $separator + 1) - 1),
                        ]
                    );
                }

                // just a number here
                return Factory::create([(int) $range, (int) $range]);
            }
        );
    }
protected function getRanges(string $selector): Collection
    {
        return Factory::create(explode(';', $selector))->map(
            function ($range) {
                $separator = $this->dotDotSeparator($range);
                if (false != $separator) {
                    return Factory::create([(int) substr($range, 0, $separator), (int) substr($range, $separator + 2)]);
                }
                $separator = $this->columnSeparator($range);
                if (false != $separator) {
                    return Factory::create([(int) substr($range, 0, $separator), (int) substr($range, $separator + 1)]);
                }
                $separator = $this->dashSeparator($range);
                if (false != $separator) {
                    return Factory::create([(int) substr($range, 0, $separator), (int) substr($range, $separator + 1)]);
                }
                $separator = $this->commaSeparator($range);
                if (false != $separator) {
                    return Factory::create(
                        [
                            (int) substr($range, 0, $separator),
                            (int) substr($range, 0, $separator) + (int) (substr($range, $separator + 1) - 1),
                        ]
                    );
                }

                // just a number here
                return Factory::create([(int) $range, (int) $range]);
            }
        );
    }
protected function getRanges ( string $ selector ) : Collection { return Factory :: create ( explode ( ';' , $ selector ) ) -> map ( function ( $ range ) { $ separator = $ this -> dotDotSeparator ( $ range ) ; if ( false != $ separator ) { return Factory :: create ( [ ( int ) substr ( $ range , 0 , $ separator ) , ( int ) substr ( $ range , $ separator + 2 ) ] ) ; } $ separator = $ this -> columnSeparator ( $ range ) ; if ( false != $ separator ) { return Factory :: create ( [ ( int ) substr ( $ range , 0 , $ separator ) , ( int ) substr ( $ range , $ separator + 1 ) ] ) ; } $ separator = $ this -> dashSeparator ( $ range ) ; if ( false != $ separator ) { return Factory :: create ( [ ( int ) substr ( $ range , 0 , $ separator ) , ( int ) substr ( $ range , $ separator + 1 ) ] ) ; } $ separator = $ this -> commaSeparator ( $ range ) ; if ( false != $ separator ) { return Factory :: create ( [ ( int ) substr ( $ range , 0 , $ separator ) , ( int ) substr ( $ range , 0 , $ separator ) + ( int ) ( substr ( $ range , $ separator + 1 ) - 1 ) , ] ) ; } // just a number here return Factory :: create ( [ ( int ) $ range , ( int ) $ range ] ) ; } ) ; }
Explode the selector to get ranges.
Explode the selector to get ranges .