1
0
Fork 0

Merge remote-tracking branch 'origin/master'

pull/4091/head
Jordi Boggiano 2015-05-31 12:54:08 +01:00
commit 0ec86be5e9
2 changed files with 47 additions and 8 deletions

View File

@ -21,10 +21,29 @@ use Composer\Package\LinkConstraint\LinkConstraintInterface;
*/
class Link
{
/**
* @var string
*/
protected $source;
/**
* @var string
*/
protected $target;
/**
* @var LinkConstraintInterface|null
*/
protected $constraint;
/**
* @var string
*/
protected $description;
/**
* @var string|null
*/
protected $prettyConstraint;
/**
@ -32,9 +51,9 @@ class Link
*
* @param string $source
* @param string $target
* @param LinkConstraintInterface $constraint Constraint applying to the target of this link
* @param LinkConstraintInterface|null $constraint Constraint applying to the target of this link
* @param string $description Used to create a descriptive string representation
* @param string $prettyConstraint
* @param string|null $prettyConstraint
*/
public function __construct($source, $target, LinkConstraintInterface $constraint = null, $description = 'relates to', $prettyConstraint = null)
{
@ -45,21 +64,34 @@ class Link
$this->prettyConstraint = $prettyConstraint;
}
/**
* @return string
*/
public function getSource()
{
return $this->source;
}
/**
* @return string
*/
public function getTarget()
{
return $this->target;
}
/**
* @return LinkConstraintInterface|null
*/
public function getConstraint()
{
return $this->constraint;
}
/**
* @throws \UnexpectedValueException If no pretty constraint was provided
* @return string
*/
public function getPrettyConstraint()
{
if (null === $this->prettyConstraint) {
@ -69,11 +101,18 @@ class Link
return $this->prettyConstraint;
}
/**
* @return string
*/
public function __toString()
{
return $this->source.' '.$this->description.' '.$this->target.' ('.$this->constraint.')';
}
/**
* @param PackageInterface $sourcePackage
* @return string
*/
public function getPrettyString(PackageInterface $sourcePackage)
{
return $sourcePackage->getPrettyString().' '.$this->description.' '.$this->target.' '.$this->constraint->getPrettyString().'';

View File

@ -113,14 +113,14 @@ class PluginManager
*/
public function loadRepository(RepositoryInterface $repo)
{
foreach ($repo->getPackages() as $package) {
foreach ($repo->getPackages() as $package) { /** @var PackageInterface $package */
if ($package instanceof AliasPackage) {
continue;
}
if ('composer-plugin' === $package->getType()) {
$requiresComposer = null;
foreach ($package->getRequires() as $link) {
if ($link->getTarget() == 'composer-plugin-api') {
foreach ($package->getRequires() as $link) { /** @var Link $link */
if ('composer-plugin-api' === $link->getTarget()) {
$requiresComposer = $link->getConstraint();
}
}