friendica-addons/advancedcontentfilter/vendor/fxp/composer-asset-plugin/Type/AbstractAssetType.php
Hypolite Petovan 20862be7d0 [advancedcontentfilter] Add Composer dependencies
- slim/slim: ^3.1
- symfony/expression-language: ^3.4
- fxp/composer-asset-plugin: ~1.3
- bower-asset/vue: ^2.5
- bower-asset/vue-resource: ^1.5
2018-04-16 22:11:51 -04:00

106 lines
2.4 KiB
PHP

<?php
/*
* This file is part of the Fxp Composer Asset Plugin package.
*
* (c) François Pluchino <francois.pluchino@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Fxp\Composer\AssetPlugin\Type;
use Fxp\Composer\AssetPlugin\Converter\PackageConverterInterface;
use Fxp\Composer\AssetPlugin\Converter\SemverConverter;
use Fxp\Composer\AssetPlugin\Converter\VersionConverterInterface;
/**
* Abstract asset type.
*
* @author François Pluchino <francois.pluchino@gmail.com>
*/
abstract class AbstractAssetType implements AssetTypeInterface
{
/**
* @var PackageConverterInterface
*/
protected $packageConverter;
/**
* @var VersionConverterInterface
*/
protected $versionConverter;
/**
* Constructor.
*
* @param PackageConverterInterface $packageConverter
* @param VersionConverterInterface $versionConverter
*/
public function __construct(PackageConverterInterface $packageConverter = null, VersionConverterInterface $versionConverter = null)
{
$this->packageConverter = !$packageConverter ? $this->createPackageConverter() : $packageConverter;
$this->versionConverter = !$versionConverter ? new SemverConverter() : $versionConverter;
}
/**
* {@inheritdoc}
*/
public function getComposerVendorName()
{
return $this->getName().'-asset';
}
/**
* {@inheritdoc}
*/
public function getComposerType()
{
return $this->getName().'-asset-library';
}
/**
* {@inheritdoc}
*/
public function getFilename()
{
return $this->getName().'.json';
}
/**
* {@inheritdoc}
*/
public function getPackageConverter()
{
return $this->packageConverter;
}
/**
* {@inheritdoc}
*/
public function getVersionConverter()
{
return $this->versionConverter;
}
/**
* {@inheritdoc}
*/
public function formatComposerName($name)
{
$prefix = $this->getComposerVendorName().'/';
if (preg_match('/(\:\/\/)|\@/', $name) || 0 === strpos($name, $prefix)) {
return $name;
}
return $prefix.$name;
}
/**
* @return PackageConverterInterface
*/
abstract protected function createPackageConverter();
}