public static function parseBoolean($value)
    {
        if (is_null($value))
        {
            return false;
        }

        if (is_bool($value))
        {
            return $value;
        }

        if (!is_string($value))
        {
            throw new \InvalidArgumentException('Failed to parse as bool.');
        }

        if (strcasecmp('true', $value) != 0)
        {
            return false;
        }

        return true;
    }