/**
  * @param string $ruleSpace
  * @param string $ruleName
  *
  * @return \Hoa\Ruler\Model\Model
  */
 public function getRuleFromCache($ruleSpace, $ruleName)
 {
     // 7200 minutes = 5 days
     return $this->_cache->remember('ruler' . '_' . $ruleSpace . '-' . $ruleName, '7200', function () use($ruleSpace, $ruleName) {
         $rules = $this->_loadRuleFiles($ruleSpace);
         $model = HoaRuler::interpret($rules[$ruleName]);
         return $model;
     });
 }
示例#2
0
 /**
  * @param \Hoa\Ruler\Context $context Context.
  *
  * @return \Hoa\Ruler\Visitor\Asserter
  */
 public static function getDefaultAsserter(Context $context = null)
 {
     if (null === static::$_defaultAsserter && static::$usePropertyAccess === true) {
         static::$_defaultAsserter = new Visitor\Asserter($context);
     }
     return parent::getDefaultAsserter($context);
 }
示例#3
0
 /**
  * @param test   $test
  * @param string $methodNameToCheck
  * @return bool
  * @throws \RuntimeException
  */
 public function isMethodIgnored(test $test, $methodNameToCheck)
 {
     $contexts = array();
     foreach ($test->getTestMethods() as $methodName) {
         $contexts[$methodName] = new HoaContext();
         $contexts[$methodName]['method'] = $methodName;
         $contexts[$methodName]['class'] = $test->getClass();
         $contexts[$methodName]['namespace'] = $test->getClassNamespace();
         $contexts[$methodName]['testedclass'] = $test->getTestedClassName();
         $contexts[$methodName]['testedclassnamespace'] = $test->getTestedClassNamespace();
     }
     foreach ($test->getMandatoryMethodExtensions() as $methodName => $extensions) {
         $contexts[$methodName]['extensions'] = $extensions;
     }
     foreach ($test->getMethodTags() as $methodName => $tags) {
         $contexts[$methodName]['tags'] = $tags;
     }
     if (!isset($contexts[$methodNameToCheck])) {
         throw new \RuntimeException(sprintf('Method not found : %s', $methodNameToCheck));
     }
     return false === $this->ruler->assert($this->rule, $contexts[$methodNameToCheck]);
 }
 /**
  * Based on the data provided as arguments, decides if assertion is true.
  * 
  * @param string $context
  * @param string $operator
  * @param integer $value
  * @param integer $contextValue
  * @return boolean
  */
 public function assertion($context, $operator, $value, $contextValue)
 {
     $ruler = new Ruler();
     $cont = new Context();
     $rule = $context . " " . $operator . " " . $value;
     $cont[$context] = $contextValue;
     return $ruler->assert($rule, $cont);
 }
 public function loadRuleModel($ruleSpace, $ruleName)
 {
     $rule = $this->loadRule($ruleSpace, $ruleName);
     return $rule ? HoaRuler::interpret($rule) : null;
 }
 /**
  * @param HoaRuler   $ruler
  * @param HoaContext $context
  * @param string $ruleSpace
  * @param string $ruleName
  *
  * @return bool
  */
 public function isRespectingTheRule(HoaRuler $ruler, HoaContext $context, $ruleSpace, $ruleName)
 {
     $model = $this->getRuleFromCache($ruleSpace, $ruleName);
     return $ruler->assert($model, $context);
 }