1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 21:22:40 +00:00

Change "rebind" to "retype" to better reflect what actually happens

This commit is contained in:
J. King 2017-12-30 17:04:21 -05:00
parent 31aea0a06a
commit bc9fcb975f
6 changed files with 14 additions and 14 deletions

View file

@ -18,18 +18,18 @@ abstract class AbstractStatement implements Statement {
return $this->runArray($values); return $this->runArray($values);
} }
public function rebind(...$bindings): bool { public function retype(...$bindings): bool {
return $this->rebindArray($bindings); return $this->retypeArray($bindings);
} }
public function rebindArray(array $bindings, bool $append = false): bool { public function retypeArray(array $bindings, bool $append = false): bool {
if (!$append) { if (!$append) {
$this->types = []; $this->types = [];
} }
foreach ($bindings as $binding) { foreach ($bindings as $binding) {
if (is_array($binding)) { if (is_array($binding)) {
// recursively flatten any arrays, which may be provided for SET or IN() clauses // recursively flatten any arrays, which may be provided for SET or IN() clauses
$this->rebindArray($binding, true); $this->retypeArray($binding, true);
} else { } else {
$binding = trim(strtolower($binding)); $binding = trim(strtolower($binding));
if (strpos($binding, "strict ")===0) { if (strpos($binding, "strict ")===0) {

View file

@ -24,7 +24,7 @@ class PDOStatement extends AbstractStatement {
public function __construct(\PDO $db, \PDOStatement $st, array $bindings = []) { public function __construct(\PDO $db, \PDOStatement $st, array $bindings = []) {
$this->db = $db; $this->db = $db;
$this->st = $st; $this->st = $st;
$this->rebindArray($bindings); $this->retypeArray($bindings);
} }
public function __destruct() { public function __destruct() {

View file

@ -31,7 +31,7 @@ class Statement extends \JKingWeb\Arsse\Db\AbstractStatement {
public function __construct(\SQLite3 $db, \SQLite3Stmt $st, array $bindings = []) { public function __construct(\SQLite3 $db, \SQLite3Stmt $st, array $bindings = []) {
$this->db = $db; $this->db = $db;
$this->st = $st; $this->st = $st;
$this->rebindArray($bindings); $this->retypeArray($bindings);
} }
public function __destruct() { public function __destruct() {

View file

@ -29,6 +29,6 @@ interface Statement {
public function run(...$values): Result; public function run(...$values): Result;
public function runArray(array $values = []): Result; public function runArray(array $values = []): Result;
public function rebind(...$bindings): bool; public function retype(...$bindings): bool;
public function rebindArray(array $bindings): bool; public function retypeArray(array $bindings): bool;
} }

View file

@ -35,10 +35,10 @@ class TestStatement extends \JKingWeb\Arsse\Test\AbstractTest {
$s = new self::$imp($this->c, $nativeStatement); $s = new self::$imp($this->c, $nativeStatement);
$types = array_unique(Statement::TYPES); $types = array_unique(Statement::TYPES);
foreach ($types as $type) { foreach ($types as $type) {
$s->rebindArray([$strict ? "strict $type" : $type]); $s->retypeArray([$strict ? "strict $type" : $type]);
$val = $s->runArray([$input])->getRow()['value']; $val = $s->runArray([$input])->getRow()['value'];
$this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison."); $this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison.");
$s->rebind(...[$strict ? "strict $type" : $type]); $s->retype(...[$strict ? "strict $type" : $type]);
$val = $s->run(...[$input])->getRow()['value']; $val = $s->run(...[$input])->getRow()['value'];
$this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison."); $this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison.");
} }
@ -56,7 +56,7 @@ class TestStatement extends \JKingWeb\Arsse\Test\AbstractTest {
) as pass" ) as pass"
); );
$s = new self::$imp($this->c, $nativeStatement); $s = new self::$imp($this->c, $nativeStatement);
$s->rebindArray([$type, $type]); $s->retypeArray([$type, $type]);
$act = (bool) $s->run(...[$value, $value])->getRow()['pass']; $act = (bool) $s->run(...[$value, $value])->getRow()['pass'];
$this->assertTrue($act); $this->assertTrue($act);
} }

View file

@ -36,10 +36,10 @@ class TestStatement extends \JKingWeb\Arsse\Test\AbstractTest {
$s = new self::$imp($this->c, $nativeStatement); $s = new self::$imp($this->c, $nativeStatement);
$types = array_unique(Statement::TYPES); $types = array_unique(Statement::TYPES);
foreach ($types as $type) { foreach ($types as $type) {
$s->rebindArray([$strict ? "strict $type" : $type]); $s->retypeArray([$strict ? "strict $type" : $type]);
$val = $s->runArray([$input])->getRow()['value']; $val = $s->runArray([$input])->getRow()['value'];
$this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison."); $this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison.");
$s->rebind(...[$strict ? "strict $type" : $type]); $s->retype(...[$strict ? "strict $type" : $type]);
$val = $s->run(...[$input])->getRow()['value']; $val = $s->run(...[$input])->getRow()['value'];
$this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison."); $this->assertSame($expectations[$type], $val, "Binding from type $type failed comparison.");
} }
@ -57,7 +57,7 @@ class TestStatement extends \JKingWeb\Arsse\Test\AbstractTest {
) as pass" ) as pass"
); );
$s = new self::$imp($this->c, $nativeStatement); $s = new self::$imp($this->c, $nativeStatement);
$s->rebind(...[$type, $type]); $s->retype(...[$type, $type]);
$act = (bool) $s->run(...[$value, $value])->getRow()['pass']; $act = (bool) $s->run(...[$value, $value])->getRow()['pass'];
$this->assertTrue($act); $this->assertTrue($act);
} }