コード例 #1
0
 function let(ResourceInterface $resource)
 {
     $resource->getSrcNamespace()->willReturn('Foo');
     $resource->getSpecNamespace()->willReturn('spec/Foo');
     $resource->getName()->willReturn('Bar');
     $this->beConstructedWith($resource, self::CONTENT);
 }
コード例 #2
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());
     if (!($content = $this->getTemplateRenderer()->render('specification', $values))) {
         $content = $this->getTemplateRenderer()->renderString($this->getTemplate(), $values);
     }
     return $content;
 }
コード例 #3
0
 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);
 }
コード例 #4
0
    /**
     * @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;
    }
コード例 #5
0
 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));
 }
コード例 #6
0
 /**
  * @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;
 }
コード例 #8
0
 /**
  * @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());
 }
コード例 #9
0
 /**
  * @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);
 }