public static function wrap(
        $inputString,
        $wrapLength,
        $newLineInsertion = null,
        $wrapLongWords = false
    ) {
        if (null === $inputString) {
            return null;
        }

        if (null === $newLineInsertion) {
            $newLineInsertion = \PHP_EOL;
        }

        if (1 > $wrapLength) {
            $wrapLength = 1;
        }

        $wordWrap = \wordwrap(
            StringUtils::stripStart($inputString, null),
            $wrapLength,
            $newLineInsertion,
            $wrapLongWords
        );

        $result = StringUtils::EMPTY_STR;
        $split = StringUtils::split($wordWrap, $newLineInsertion);

        foreach ($split as $fragment) {
            $result .= StringUtils::stripStart($fragment, null) . $newLineInsertion;
        }

        return StringUtils::removeEnd($result, $newLineInsertion);
    }