diff options
| author | Greg Roach <fisharebest@gmail.com> | 2014-12-04 13:04:54 +0000 |
|---|---|---|
| committer | Greg Roach <fisharebest@gmail.com> | 2014-12-04 13:04:54 +0000 |
| commit | 3ccce265813e4efe85d4d9b7ef7cff8c73637008 (patch) | |
| tree | f573af00152921c27eb52f9d39713fca79475e91 /library/rhumsaa/uuid | |
| parent | 120023538ba799d46efdcc8481b6f3b01a2ef43d (diff) | |
| download | webtrees-3ccce265813e4efe85d4d9b7ef7cff8c73637008.tar.gz webtrees-3ccce265813e4efe85d4d9b7ef7cff8c73637008.tar.bz2 webtrees-3ccce265813e4efe85d4d9b7ef7cff8c73637008.zip | |
Update third-party libraries
Diffstat (limited to 'library/rhumsaa/uuid')
| -rw-r--r-- | library/rhumsaa/uuid/CHANGELOG.md | 123 | ||||
| -rw-r--r-- | library/rhumsaa/uuid/README.md | 2 | ||||
| -rw-r--r-- | library/rhumsaa/uuid/composer.json | 2 | ||||
| -rw-r--r-- | library/rhumsaa/uuid/src/Doctrine/UuidType.php | 6 | ||||
| -rw-r--r-- | library/rhumsaa/uuid/src/Uuid.php | 29 |
5 files changed, 139 insertions, 23 deletions
diff --git a/library/rhumsaa/uuid/CHANGELOG.md b/library/rhumsaa/uuid/CHANGELOG.md index 2698915025..e4a9b589f0 100644 --- a/library/rhumsaa/uuid/CHANGELOG.md +++ b/library/rhumsaa/uuid/CHANGELOG.md @@ -1,63 +1,148 @@ -* 2.7.4 (2014-10-29) +# Rhumsaa\Uuid Changelog + +## 2.8.0 + +_Released: 2014-11-09_ + + * Added static `fromInteger()` method to create UUIDs from string integer or `\Moontoast\Math\BigNumber`. + * Friendlier Doctrine conversion to Uuid or string. + * Documentation fixes. + +## 2.7.4 + +_Released: 2014-10-29_ + * Changed loop in `generateBytes()` from `foreach` to `for`; see #33 * Use `toString()` in README examples to avoid confusion * Exclude build/development tools from releases using .gitattributes * Set timezone properly for tests -* 2.7.3 (2014-08-27) + +## 2.7.3 + +_Released: 2014-08-27_ + * Fixed upper range for `mt_rand` used in version 4 UUIDs -* 2.7.2 (2014-07-28) + +## 2.7.2 + +_Released: 2014-07-28_ + * Upgraded to PSR-4 autoloading * Testing upgrades: * Testing against PHP 5.6 * Testing with PHPUnit 4 * Using Coveralls.io to generate code coverage reports * Documentation fixes -* 2.7.1 (2014-02-19) + +## 2.7.1 + +_Released: 2014-02-19_ + * Moved moontoast/math and symfony/console to require-dev; fixes #20 * Now supporting symfony/console for 2.3 (LTS version); fixes #21 * Updated tests to run even when dev packages are not installed (skips tests if requirements are not met) -* 2.7.0 (2014-01-31) + +## 2.7.0 + +_Released: 2014-01-31_ + * Moved UUID validation regex pattern into constant for external use (`Uuid::VALID_PATTERN`) -* 2.6.1 (2014-01-27) + +## 2.6.1 + +_Released: 2014-01-27_ + * Fixed bug where `uuid` console application could not find the Composer autoloader when installed in another project -* 2.6.0 (2014-01-17) + +## 2.6.0 + +_Released: 2014-01-17_ + * Introduced `uuid` console application for generating and decoding UUIDs from CLI (run `./bin/uuid` for details) * Added `Uuid::getInteger()` to retrieve a Moontoast\Math\BigNumber representation of the 128-bit integer representing the UUID * Added `Uuid::getHex()` to retrieve the hexadecimal representation of the UUID * Now using netstat on Linux to capture the node for a version 1 UUID * Now requiring Moontoast\Math as part of the regular package requirements, not just the dev requirements -* 2.5.0 (2013-10-30) + +## 2.5.0 + +_Released: 2013-10-30_ + * Using `openssl_random_pseudo_bytes()`, if available, to generate random bytes, by merging in PR #15 from @dfreudenberger * Fixed test for Rhumsaa\Uuid\Doctrine\UuidType, by merging in PR #17 from @dfreudenberger * Documentation fixes -* 2.4.0 (2013-07-29) + +## 2.4.0 + +_Released: 2013-07-29_ + * `Uuid::getVersion()` now returns null if the UUID isn't an RFC 4122 variant * `Uuid::fromString()` now supports a 128-bit integer formatted as a hexadecimal string (UUID without dashes) * Tests have been greatly enhanced, borrowing from the Python UUID library -* 2.3.0 (2013-07-16) + +## 2.3.0 + +_Released: 2013-07-16_ + * Added `Uuid::fromBytes()` by merging in PR #14 from @asm89 -* 2.2.0 (2013-07-04) + +## 2.2.0 + +_Released: 2013-07-04_ + * Added `Doctrine\UuidType::requiresSQLCommentHint()` method by merging in PR #13 from @zerrvox * Removed `"minimum-stability": "dev"` from composer.json -* 2.1.2 (2013-07-03) + +## 2.1.2 + +_Released: 2013-07-03_ + * @ericthelin found cases where the system node was coming back with uppercase hexadecimal digits; this ensures that case in the node is converted to lowercase -* 2.1.1 (2013-04-29) + +## 2.1.1 + +_Released: 2013-04-29_ + * Fixed NIL bug in `Uuid::isValid()` method, reported by @ocubom in PR #11 -* 2.1.0 (2013-04-15) + +## 2.1.0 + +_Released: 2013-04-15_ + * Added static `Uuid::isValid()` method for checking whether a string is a valid UUID -* 2.0.0 (2013-02-11) + +## 2.0.0 + +_Released: 2013-02-11_ + * Break: `Uuid` class is now marked as "final" * Break: `Uuid::getLeastSignificantBits()` no longer returns an integer on 64-bit platforms; it requires `moontoast/math` * Break: `Uuid::getMostSignificantBits()` no longer returns an integer on 64-bit platforms; it requires `moontoast/math` * Break: Moved `UnsupportedOperationException` to the `Exception` subnamespace * Added support for 32-bit platforms * Added generated API documentation to the repository -* 1.1.2 (2012-11-29) + +## 1.1.2 + +_Released: 2012-11-29_ + * Relaxed Doctrine type conversion rules -* 1.1.1 (2012-08-27) + +## 1.1.1 + +_Released: 2012-08-27_ + * Removed `final` keyword from `Uuid` class -* 1.1.0 (2012-08-06) + +## 1.1.0 + +_Released: 2012-08-06_ + * Added `Doctrine\UuidType` as a field mapping type for the Doctrine Database Abstraction Layer (DBAL) * Improved tests and code coverage -* 1.0.0 (2012-07-19) + +## 1.0.0 + +_Released: 2012-07-19_ + * Initial release diff --git a/library/rhumsaa/uuid/README.md b/library/rhumsaa/uuid/README.md index 5df41db071..8c9bb2774e 100644 --- a/library/rhumsaa/uuid/README.md +++ b/library/rhumsaa/uuid/README.md @@ -91,7 +91,7 @@ the following command to install the package and add it as a requirement to `composer.json`: ```bash -composer.phar require "rhumsaa/uuid=~2.7" +composer.phar require "rhumsaa/uuid=~2.8" ``` diff --git a/library/rhumsaa/uuid/composer.json b/library/rhumsaa/uuid/composer.json index 5e7dd72a8a..4e2c627c0a 100644 --- a/library/rhumsaa/uuid/composer.json +++ b/library/rhumsaa/uuid/composer.json @@ -40,7 +40,7 @@ }, "extra": { "branch-alias": { - "dev-master": "2.7.x-dev" + "dev-master": "2.8.x-dev" } } } diff --git a/library/rhumsaa/uuid/src/Doctrine/UuidType.php b/library/rhumsaa/uuid/src/Doctrine/UuidType.php index 4c63f2871c..ffecee8fb0 100644 --- a/library/rhumsaa/uuid/src/Doctrine/UuidType.php +++ b/library/rhumsaa/uuid/src/Doctrine/UuidType.php @@ -53,6 +53,10 @@ class UuidType extends Type return null; } + if ($value instanceof Uuid) { + return $value; + } + try { $uuid = Uuid::fromString($value); } catch (InvalidArgumentException $e) { @@ -74,7 +78,7 @@ class UuidType extends Type return null; } - if ($value instanceof Uuid) { + if ($value instanceof Uuid || Uuid::isValid($value)) { return (string) $value; } diff --git a/library/rhumsaa/uuid/src/Uuid.php b/library/rhumsaa/uuid/src/Uuid.php index f6357a8dae..ec03ecdab8 100644 --- a/library/rhumsaa/uuid/src/Uuid.php +++ b/library/rhumsaa/uuid/src/Uuid.php @@ -93,7 +93,7 @@ final class Uuid /** * Version of the Rhumsaa\Uuid package */ - const VERSION = '2.7.4'; + const VERSION = '2.8.0'; /** * For testing, 64-bit system override; if true, treat the system as 32-bit @@ -895,6 +895,33 @@ final class Uuid } /** + * Creates a UUID from either the UUID as a 128-bit integer string or a Moontoast\Math\BigNumber object. + * + * @param string|\Moontoast\Math\BigNumber $integer String/BigNumber representation of UUID integer + * @throws Exception\UnsatisfiedDependencyException If Moontoast\Math\BigNumber is not present + * @return \Rhumsaa\Uuid\Uuid + */ + public static function fromInteger($integer) + { + if (!self::hasBigNumber()) { + throw new Exception\UnsatisfiedDependencyException( + 'Cannot call ' . __METHOD__ . ' without support for large ' + . 'integers, since integer is an unsigned ' + . '128-bit integer; Moontoast\Math\BigNumber is required. ' + ); + } + + if (!$integer instanceof \Moontoast\Math\BigNumber) { + $integer = new \Moontoast\Math\BigNumber($integer); + } + + $hex = \Moontoast\Math\BigNumber::baseConvert($integer, 10, 16); + $hex = str_pad($hex, 32, '0', STR_PAD_LEFT); + + return self::fromString($hex); + } + + /** * Check if a string is a valid uuid * * @param string $uuid The uuid to test |
