/** * Get a simple copy of the package. * * @return Package */ public function getPackageCopy() { $copy = new Package($this->package->getName(), $this->package->getVersion(), $this->package->getPrettyVersion()); $copy->setType($this->package->getType()); $copy->setExtra($this->package->getExtra()); return $copy; }
/** * Tests memory package versioning semantics * @dataProvider providerVersioningSchemes */ public function testPackageHasExpectedVersioningSemantics($name, $version) { $versionParser = new VersionParser(); $normVersion = $versionParser->normalize($version); $package = new Package($name, $normVersion, $version); $this->assertEquals($version, $package->getPrettyVersion()); $this->assertEquals($normVersion, $package->getVersion()); }
public function testGetPackageCopy() { $this->initJob([], $this->atLeastOnce()); $this->package->expects($this->atLeastOnce())->method('getName')->will($this->returnValue('foo/bar')); $this->package->expects($this->atLeastOnce())->method('getVersion')->will($this->returnValue('1.0.0')); $this->package->expects($this->atLeastOnce())->method('getPrettyVersion')->will($this->returnValue('1')); $this->package->expects($this->atLeastOnce())->method('getType')->will($this->returnValue('lib')); $copy = $this->job->getPackageCopy(); // test $this->assertInstanceOf('\\Composer\\Package\\Package', $copy); $this->assertEquals($this->package->getName(), $copy->getName()); $this->assertEquals($this->package->getVersion(), $copy->getVersion()); $this->assertEquals($this->package->getPrettyVersion(), $copy->getPrettyVersion()); $this->assertEquals($this->package->getType(), $copy->getType()); $this->assertEquals($this->package->getExtra(), $copy->getExtra()); }
/** * @param \Composer\Package\Package $package */ public function addDistToPackage(\Composer\Package\Package $package) { $this->initializeData(); $versionDigits = explode('.', $package->getPrettyVersion()); if (count($versionDigits) === 3) { $branchVersion = $versionDigits[0] . '.' . $versionDigits[1]; $patchlevelVersion = $versionDigits[0] . '.' . $versionDigits[1] . '.' . $versionDigits[2]; if (isset($this->data[$branchVersion]) && isset($this->data[$branchVersion]['releases'][$patchlevelVersion])) { $releaseData = $this->data[$branchVersion]['releases'][$patchlevelVersion]; if (isset($releaseData['checksums']['tar']['sha1']) && isset($releaseData['url']['tar'])) { $package->setDistType('tar'); $package->setDistReference($patchlevelVersion); $package->setDistUrl($releaseData['url']['tar']); $package->setDistSha1Checksum($releaseData['checksums']['tar']['sha1']); } } } }
/** * Creates or update a package in MongoDB from the Package passed in parameter. * * @param Package $package * @return array */ public function createOrUpdatePackage(Package $package) { $packageVersion = $this->get($package->getName(), $package->getPrettyVersion()); if (!$packageVersion) { $packageVersion = ["packageName" => $package->getName(), "packageVersion" => $package->getPrettyVersion()]; } $packageVersion['releaseDate'] = new \MongoDate($package->getReleaseDate()->getTimestamp()); $packageVersion['type'] = $package->getType(); $packageVersion['sourceUrl'] = $package->getSourceUrl(); $packageVersion['realVersion'] = $package->getVersion(); if ($package instanceof CompletePackage) { $packageVersion['description'] = $package->getDescription(); } $this->collection->save($packageVersion); // Boost = 1 + download/10 + favers // TODO: we could improve the score of packages by the number of times they are referred by other packages. $score = 1; if (isset($packageVersion['downloads'])) { $score += $packageVersion['downloads'] / 10; } if (isset($packageVersion['favers'])) { $score += $packageVersion['favers']; } $this->itemDao->applyScore($package->getName(), $score); $this->elasticSearchService->storeItemName($package->getName(), 'package', $score); return $packageVersion; }