Merge pull request #9085 from lstrojny/lib-cldr
Allow specifying a version requirement for CLDRpull/9092/head
commit
daae46e1e0
|
@ -154,7 +154,14 @@ class PlatformRepository extends ArrayRepository
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'intl':
|
case 'intl':
|
||||||
$name = 'ICU';
|
if (class_exists('ResourceBundle', false)) {
|
||||||
|
# Add a seperate version for the CLDR library version
|
||||||
|
$cldrVersion = \ResourceBundle::create('root', 'ICUDATA-curr', false)->get('Version');
|
||||||
|
$this->addLibrary('cldr', 'The unicode CLDR project', $cldrVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = 'icu';
|
||||||
|
$description = 'The ICU unicode and globalization support library';
|
||||||
if (defined('INTL_ICU_VERSION')) {
|
if (defined('INTL_ICU_VERSION')) {
|
||||||
$prettyVersion = INTL_ICU_VERSION;
|
$prettyVersion = INTL_ICU_VERSION;
|
||||||
} else {
|
} else {
|
||||||
|
@ -228,15 +235,7 @@ class PlatformRepository extends ArrayRepository
|
||||||
continue 2;
|
continue 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
$this->addLibrary($name, $description, $prettyVersion);
|
||||||
$version = $this->versionParser->normalize($prettyVersion);
|
|
||||||
} catch (\UnexpectedValueException $e) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$lib = new CompletePackage('lib-'.$name, $version, $prettyVersion);
|
|
||||||
$lib->setDescription($description);
|
|
||||||
$this->addPackage($lib);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$hhvmVersion = defined('HHVM_VERSION') ? HHVM_VERSION : null;
|
$hhvmVersion = defined('HHVM_VERSION') ? HHVM_VERSION : null;
|
||||||
|
@ -346,4 +345,22 @@ class PlatformRepository extends ArrayRepository
|
||||||
{
|
{
|
||||||
return 'ext-' . str_replace(' ', '-', $name);
|
return 'ext-' . str_replace(' ', '-', $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $name
|
||||||
|
* @param string $description
|
||||||
|
* @param string $prettyVersion
|
||||||
|
*/
|
||||||
|
private function addLibrary($name, $description, $prettyVersion)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$version = $this->versionParser->normalize($prettyVersion);
|
||||||
|
} catch (\UnexpectedValueException $e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$lib = new CompletePackage('lib-'.$name, $version, $prettyVersion);
|
||||||
|
$lib->setDescription($description);
|
||||||
|
$this->addPackage($lib);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
namespace Composer\Test\Repository;
|
namespace Composer\Test\Repository;
|
||||||
|
|
||||||
|
use Composer\Package\Package;
|
||||||
use Composer\Repository\PlatformRepository;
|
use Composer\Repository\PlatformRepository;
|
||||||
use Composer\Test\TestCase;
|
use Composer\Test\TestCase;
|
||||||
use Composer\Util\Platform;
|
use Composer\Util\Platform;
|
||||||
|
@ -67,4 +68,38 @@ class PlatformRepositoryTest extends TestCase {
|
||||||
$this->assertNotNull($package, 'failed to find HHVM package');
|
$this->assertNotNull($package, 'failed to find HHVM package');
|
||||||
$this->assertSame('4.0.1.0-dev', $package->getVersion());
|
$this->assertSame('4.0.1.0-dev', $package->getVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testICULibraryVersion() {
|
||||||
|
if (!defined('INTL_ICU_VERSION')) {
|
||||||
|
$this->markTestSkipped('Test only work with ext-intl present');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!class_exists('ResourceBundle', false)) {
|
||||||
|
$this->markTestSkipped('Test only work with ResourceBundle class present');
|
||||||
|
}
|
||||||
|
|
||||||
|
$platformRepository = new PlatformRepository();
|
||||||
|
$packages = $platformRepository->getPackages();
|
||||||
|
|
||||||
|
/** @var Package $icuPackage */
|
||||||
|
$icuPackage = null;
|
||||||
|
/** @var Package $cldrPackage */
|
||||||
|
$cldrPackage = null;
|
||||||
|
|
||||||
|
foreach ($packages as $package) {
|
||||||
|
if ($package->getName() === 'lib-icu') {
|
||||||
|
$icuPackage = $package;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($package->getName() === 'lib-cldr') {
|
||||||
|
$cldrPackage = $package;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self::assertNotNull($icuPackage, 'Expected to find lib-icu in packages');
|
||||||
|
self::assertNotNull($cldrPackage, 'Expected to find lib-cldr in packages');
|
||||||
|
|
||||||
|
self::assertSame(3, substr_count($icuPackage->getVersion(), '.'), 'Expected to find real ICU version');
|
||||||
|
self::assertSame(3, substr_count($cldrPackage->getVersion(), '.'), 'Expected to find real CLDR version');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue