+++ /dev/null
-<?php
-
-/*
- * This file is part of the Behat.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Behat\Definition\Printer;
-
-use Behat\Behat\Definition\Definition;
-use Behat\Behat\Definition\Pattern\PatternTransformer;
-use Behat\Behat\Definition\Translator\DefinitionTranslator;
-use Behat\Gherkin\Keywords\KeywordsInterface;
-use Behat\Testwork\Suite\Suite;
-use Symfony\Component\Console\Formatter\OutputFormatterStyle;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- * Represents console-based definition printer.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-abstract class ConsoleDefinitionPrinter implements DefinitionPrinter
-{
- /**
- * @var OutputInterface
- */
- private $output;
- /**
- * @var PatternTransformer
- */
- private $patternTransformer;
- /**
- * @var DefinitionTranslator
- */
- private $translator;
- /**
- * @var KeywordsInterface
- */
- private $keywords;
-
- /**
- * Initializes printer.
- *
- * @param OutputInterface $output
- * @param PatternTransformer $patternTransformer
- * @param DefinitionTranslator $translator
- * @param KeywordsInterface $keywords
- */
- public function __construct(
- OutputInterface $output,
- PatternTransformer $patternTransformer,
- DefinitionTranslator $translator,
- KeywordsInterface $keywords
- ) {
- $this->output = $output;
- $this->patternTransformer = $patternTransformer;
- $this->translator = $translator;
- $this->keywords = $keywords;
-
- $output->getFormatter()->setStyle('def_regex', new OutputFormatterStyle('yellow'));
- $output->getFormatter()->setStyle(
- 'def_regex_capture',
- new OutputFormatterStyle('yellow', null, array('bold'))
- );
- $output->getFormatter()->setStyle(
- 'def_dimmed',
- new OutputFormatterStyle('black', null, array('bold'))
- );
- }
-
- /**
- * Writes text to the console.
- *
- * @param string $text
- */
- final protected function write($text)
- {
- $this->output->writeln($text);
- $this->output->writeln('');
- }
-
- final protected function getDefinitionType(Definition $definition, $onlyOne = false)
- {
- $this->keywords->setLanguage($this->translator->getLocale());
-
- $method = 'get'.ucfirst($definition->getType()).'Keywords';
-
- $keywords = explode('|', $this->keywords->$method());
-
- if ($onlyOne) {
- return current($keywords);
- }
-
- return 1 < count($keywords) ? '['.implode('|', $keywords).']' : implode('|', $keywords);
- }
-
- /**
- * Translates definition using translator.
- *
- * @param Suite $suite
- * @param Definition $definition
- *
- * @return Definition
- */
- final protected function translateDefinition(Suite $suite, Definition $definition)
- {
- return $this->translator->translateDefinition($suite, $definition);
- }
-
- /**
- * Returns whether verbosity is verbose (-v).
- *
- * @return bool true if verbosity is set to VERBOSITY_VERBOSE, false otherwise
- */
- final protected function isVerbose()
- {
- return $this->output->isVerbose();
- }
-}