summaryrefslogtreecommitdiff
path: root/library/rhumsaa/uuid
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2014-12-04 13:04:54 +0000
committerGreg Roach <fisharebest@gmail.com>2014-12-04 13:04:54 +0000
commit3ccce265813e4efe85d4d9b7ef7cff8c73637008 (patch)
treef573af00152921c27eb52f9d39713fca79475e91 /library/rhumsaa/uuid
parent120023538ba799d46efdcc8481b6f3b01a2ef43d (diff)
downloadwebtrees-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.md123
-rw-r--r--library/rhumsaa/uuid/README.md2
-rw-r--r--library/rhumsaa/uuid/composer.json2
-rw-r--r--library/rhumsaa/uuid/src/Doctrine/UuidType.php6
-rw-r--r--library/rhumsaa/uuid/src/Uuid.php29
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