function let(ResourceInterface $resource) { $resource->getSrcNamespace()->willReturn('Foo'); $resource->getSpecNamespace()->willReturn('spec/Foo'); $resource->getName()->willReturn('Bar'); $this->beConstructedWith($resource, self::CONTENT); }
/** * @param ResourceInterface $resource * @param string $filepath * * @return string */ protected function renderTemplate(ResourceInterface $resource, $filepath) { $values = array('%filepath%' => $filepath, '%name%' => $resource->getSpecName(), '%namespace%' => $resource->getSpecNamespace(), '%subject%' => $resource->getSrcClassname()); if (!($content = $this->getTemplateRenderer()->render('specification', $values))) { $content = $this->getTemplateRenderer()->renderString($this->getTemplate(), $values); } return $content; }
function it_asks_confirmation_if_spec_already_exists($io, $tpl, $fs, ResourceInterface $resource) { $resource->getSpecName()->willReturn('App'); $resource->getSpecFilename()->willReturn('/project/spec/Acme/App.php'); $resource->getSpecNamespace()->willReturn('spec\\Acme'); $resource->getSrcClassname()->willReturn('Acme\\App'); $fs->pathExists('/project/spec/Acme/App.php')->willReturn(true); $io->askConfirmation(Argument::type('string'), false)->willReturn(false); $fs->putFileContents(Argument::cetera())->shouldNotBeCalled(); $this->generate($resource); }
/** * @param ResourceInterface $resource * @param string $filepath * * @return string */ protected function renderTemplate(ResourceInterface $resource, $filepath) { $controller = <<<CONTROLLER function let(\\Fuel\\Core\\Request \$request, \\Fuel\\Core\\Response \$response){ \$this->beConstructedWith(\$request, \$response); } CONTROLLER; $values = array('%filepath%' => $filepath, '%name%' => $resource->getSpecName(), '%namespace%' => $resource->getSpecNamespace(), '%subject%' => $resource->getSrcClassname(), "%constructor%" => preg_match("!^Controller_!i", $resource->getSpecName()) ? $controller : ""); if (!($content = $this->getTemplateRenderer()->render('specification', $values))) { $content = $this->getTemplateRenderer()->renderString($this->getTemplate(), $values); } return $content; }
public function generate(ResourceInterface $resource, array $data = array()) { $filepath = $resource->getSpecFilename(); if ($this->filesystem->pathExists($filepath)) { $message = sprintf('File "%s" already exists. Overwrite?', basename($filepath)); if (!$this->io->askConfirmation($message, false)) { return; } $this->io->writeln(); } $path = dirname($filepath); if (!$this->filesystem->isDirectory($path)) { $this->filesystem->makeDirectory($path); } $values = array('%filepath%' => $filepath, '%name%' => $resource->getSpecName(), '%namespace%' => $resource->getSpecNamespace(), '%subject%' => $resource->getSrcClassname()); if (!($content = $this->templates->render('controller_specification', $values))) { $content = $this->templates->renderString(file_get_contents(__DIR__ . '/templates/controller_spec.template'), $values); } $this->filesystem->putFileContents($filepath, $content); $this->io->writeln(sprintf("<info>ControllerSpecification for <value>%s</value> created in <value>'%s'</value>.</info>\n", $resource->getSrcClassname(), $filepath)); }
/** * @param CollaboratorNotFoundException $exception * @param ResourceInterface $resource * @return bool */ private function resourceIsInSpecNamespace($exception, $resource) { return strpos($exception->getCollaboratorName(), $resource->getSpecNamespace()) === 0; }
/** * @param ResourceInterface $resource * @param string $filepath * * @return string */ protected function renderTemplate(ResourceInterface $resource, $filepath) { $values = array('%filepath%' => $filepath, '%name%' => $resource->getSpecName(), '%namespace%' => $resource->getSpecNamespace(), '%subject%' => $resource->getSrcClassname(), '%command%' => $this->commandName ? $this->getCommandExample() : '', '%commandImport%' => $this->commandName ? "\nuse {$this->commandName};" : ''); $content = $this->getTemplateRenderer()->renderString($this->getTemplate(), $values); return $content; }
/** * @param ResourceInterface $oldResource * @param ResourceInterface $newResource * * @return string */ private function modifySpecContent(ResourceInterface $oldResource, ResourceInterface $newResource) { return $this->modifyResourceContent($oldResource, file_get_contents($oldResource->getSpecFilename()), $newResource->getSpecNamespace(), $newResource->getName()); }
/** * @param $namespace */ public function setNamespace($namespace) { $this->content = preg_replace(sprintf('/namespace (%s|%s)/', preg_quote($this->resource->getSrcNamespace(), '/'), preg_quote($this->resource->getSpecNamespace(), '/')), sprintf('namespace %s', $namespace), $this->content); }