/** * @param callable|string $selector * @param Direction $direction * * @return \Cubiche\Core\Comparable\ComparatorInterface */ public static function by($selector, Direction $direction = null) { if (\is_string($selector)) { $selector = new Property($selector); } return Comparator::by($selector, $direction); }
/** * {@inheritdoc} */ protected function comparator() { return Comparator::by(Criteria::property('age')); }
/** * Test by method. */ public function testBy() { $this->given($selector = function ($value) { return $value['foo']; })->when($comparator = Comparator::by($selector))->then()->object($comparator)->isInstanceOf(SelectorComparator::class)->object($comparator->selector())->isIdenticalTo($selector)->object($comparator->direction())->isEqualTo(Direction::ASC())->when($comparator = Comparator::by($selector, Direction::DESC()))->then()->object($comparator->direction())->isEqualTo(Direction::DESC()); }