/**
* @param string $name
*
* @return RangeName
*
* @example
* 'user{1..10}' => new RangeName('user', 1, 10)
*/
private function buildRange(string $name) : RangeName
{
$matches = [];
if (false === $this->canDenormalize($name, $matches)) {
throw LogicExceptionFactory::createForCannotDenormalizerForChainableFixtureBuilderDenormalizer(__METHOD__);
}
$reference = str_replace(sprintf('{%s}', $matches['range']), $this->token, $name);
return new RangeName($reference, (int) $matches['from'], (int) $matches['to']);
}