diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
commit | c9aa36da061816dee256a979c2ff8d2ee41824d9 (patch) | |
tree | 29f7002b80ee984b488bd047dbbd80b36bf892e9 /includes/composer/ComposerPackageModifier.php | |
parent | b4274e0e33eafb5e9ead9d949ebf031a9fb8363b (diff) | |
parent | d1ba966140d7a60cd5ae4e8667ceb27c1a138592 (diff) |
Merge branch 'archwiki'
# Conflicts:
# skins/ArchLinux.php
# skins/ArchLinux/archlogo.gif
Diffstat (limited to 'includes/composer/ComposerPackageModifier.php')
-rw-r--r-- | includes/composer/ComposerPackageModifier.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/includes/composer/ComposerPackageModifier.php b/includes/composer/ComposerPackageModifier.php new file mode 100644 index 00000000..64c69ef5 --- /dev/null +++ b/includes/composer/ComposerPackageModifier.php @@ -0,0 +1,62 @@ +<?php + +use Composer\Package\Link; +use Composer\Package\LinkConstraint\VersionConstraint; +use Composer\Package\Package; + +/** + * @licence GNU GPL v2+ + * @author Jeroen De Dauw < jeroendedauw@gmail.com > + */ +class ComposerPackageModifier { + + const MEDIAWIKI_PACKAGE_NAME = 'mediawiki/mediawiki'; + + protected $package; + protected $versionNormalizer; + protected $versionFetcher; + + public function __construct( Package $package, + ComposerVersionNormalizer $versionNormalizer, MediaWikiVersionFetcher $versionFetcher + ) { + $this->package = $package; + $this->versionNormalizer = $versionNormalizer; + $this->versionFetcher = $versionFetcher; + } + + public function setProvidesMediaWiki() { + $this->setLinkAsProvides( $this->newMediaWikiLink() ); + } + + private function setLinkAsProvides( Link $link ) { + $this->package->setProvides( array( $link ) ); + } + + private function newMediaWikiLink() { + $version = $this->getMediaWikiVersionConstraint(); + + $link = new Link( + '__root__', + self::MEDIAWIKI_PACKAGE_NAME, + $version, + 'provides', + $version->getPrettyString() + ); + + return $link; + } + + private function getMediaWikiVersionConstraint() { + $mvVersion = $this->versionFetcher->fetchVersion(); + $mvVersion = $this->versionNormalizer->normalizeSuffix( $mvVersion ); + + $version = new VersionConstraint( + '==', + $this->versionNormalizer->normalizeLevelCount( $mvVersion ) + ); + $version->setPrettyString( $mvVersion ); + + return $version; + } + +} |