+++ /dev/null
-<?php
-
-/*
- * This file is part of the Behat Gherkin.
- * (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\Gherkin\Keywords;
-
-use Symfony\Component\Yaml\Exception\ParseException;
-use Symfony\Component\Yaml\Yaml;
-
-/**
- * Cucumber-translations reader.
- *
- * $keywords = new Behat\Gherkin\Keywords\CucumberKeywords($i18nYmlPath);
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class CucumberKeywords extends ArrayKeywords
-{
- /**
- * Initializes holder with yaml string OR file.
- *
- * @param string $yaml Yaml string or file path
- */
- public function __construct($yaml)
- {
- // Handle filename explicitly for BC reasons, as Symfony Yaml 3.0 does not do it anymore
- $file = null;
- if (strpos($yaml, "\n") === false && is_file($yaml)) {
- if (false === is_readable($yaml)) {
- throw new ParseException(sprintf('Unable to parse "%s" as the file is not readable.', $yaml));
- }
-
- $file = $yaml;
- $yaml = file_get_contents($file);
- }
-
- try {
- $content = Yaml::parse($yaml);
- } catch (ParseException $e) {
- if ($file) {
- $e->setParsedFile($file);
- }
-
- throw $e;
- }
-
- parent::__construct($content);
- }
-
- /**
- * Returns Feature keywords (splitted by "|").
- *
- * @return string
- */
- public function getGivenKeywords()
- {
- return $this->prepareStepString(parent::getGivenKeywords());
- }
-
- /**
- * Returns When keywords (splitted by "|").
- *
- * @return string
- */
- public function getWhenKeywords()
- {
- return $this->prepareStepString(parent::getWhenKeywords());
- }
-
- /**
- * Returns Then keywords (splitted by "|").
- *
- * @return string
- */
- public function getThenKeywords()
- {
- return $this->prepareStepString(parent::getThenKeywords());
- }
-
- /**
- * Returns And keywords (splitted by "|").
- *
- * @return string
- */
- public function getAndKeywords()
- {
- return $this->prepareStepString(parent::getAndKeywords());
- }
-
- /**
- * Returns But keywords (splitted by "|").
- *
- * @return string
- */
- public function getButKeywords()
- {
- return $this->prepareStepString(parent::getButKeywords());
- }
-
- /**
- * Trim *| from the begining of the list.
- *
- * @param string $keywordsString Keywords string
- *
- * @return string
- */
- private function prepareStepString($keywordsString)
- {
- if (0 === mb_strpos($keywordsString, '*|', 0, 'UTF-8')) {
- $keywordsString = mb_substr($keywordsString, 2, mb_strlen($keywordsString, 'utf8') - 2, 'utf8');
- }
-
- return $keywordsString;
- }
-}