From 822a3e56e2bf0301a8917be8e1023b441d381fbb Mon Sep 17 00:00:00 2001 From: Daniele Alessandri Date: Wed, 23 Dec 2009 21:54:53 +0100 Subject: [PATCH] Implemented the "WITHSCORES" option for ZRANGE and ZREVRANGE. --- lib/Predis.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/Predis.php b/lib/Predis.php index c9acb1b4..48dd4235 100644 --- a/lib/Predis.php +++ b/lib/Predis.php @@ -1152,10 +1152,36 @@ class ZSetRemove extends \Predis\BulkCommand { class ZSetRange extends \Predis\InlineCommand { public function getCommandId() { return 'ZRANGE'; } + public function parseResponse($data) { + $arguments = $this->getArguments(); + if (count($arguments) === 4) { + if (strtolower($arguments[3]) === 'withscores') { + $result = array(); + for ($i = 0; $i < count($data); $i++) { + $result[] = array($data[$i], $data[++$i]); + } + return $result; + } + } + return $data; + } } class ZSetReverseRange extends \Predis\InlineCommand { public function getCommandId() { return 'ZREVRANGE'; } + public function parseResponse($data) { + $arguments = $this->getArguments(); + if (count($arguments) === 4) { + if (strtolower($arguments[3]) === 'withscores') { + $result = array(); + for ($i = 0; $i < count($data); $i++) { + $result[] = array($data[$i], $data[++$i]); + } + return $result; + } + } + return $data; + } } class ZSetRangeByScore extends \Predis\InlineCommand {