public function assess($value)
{
$options = $this->getOptions();
/*if ($options['recursive']) {
foreach ($subject->getSelector()->getPath() as $crumble) {
if (!isset($options['haystack'][$crumble]) || !is_array($options['haystack'][$crumble])) {
throw new \Gajus\Vlad\Exception\InvalidArgumentException('Selector path does not resolve an array within the haystack.');
}
$options['haystack'] = $options['haystack'][$crumble];
}
}
if ($options['inverse']) {
$options['haystack'] = array_flip($options['haystack']);
}*/
if ((is_string($value) || is_int($value)) && !array_filter($options['haystack'], 'is_array') && $options['strict'] && $options['c14n']) {
$value = (string) $value;
$options['haystack'] = array_map('strval', $options['haystack']);
if (!in_array($value, $options['haystack'], true)) {
return false;
}
} else {
if (!in_array($value, $options['haystack'], $options['strict'])) {
return false;
}
}
return true;
}