quickstrap/quickstrap

View on GitHub
holder/src/Commands/ContinuousIntegration/TravisCi/Config/Matrix.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace QuickStrap\Commands\ContinuousIntegration\TravisCi\Config;

class Matrix extends AbstractOptions
{
    /** @var  string[] */
    private $allow_failures = [];

    /**
     * @return string[]
     */
    public function getAllowFailures()
    {
        return $this->allow_failures;
    }

    /**
     * @param string $language
     * @param string[] $builds
     */
    public function setAllowFailures($language, array $builds)
    {
        $this->allow_failures = [];
        
        foreach ($builds as $build) {
            $this->addAllowFailure($language, $build);
        }
    }

    /**
     * @param string $language
     * @param string $build
     * @return bool
     */
    public function addAllowFailure($language, $build)
    {
        foreach ($this->allow_failures as $allow_failure) {
            if (array_key_exists($language, $allow_failure) && $allow_failure[$language] === $build) {
                return false;
            }
        }
        
        $this->allow_failures[] = [
            $language => $build
        ];
        
        return true;
    }
}