Skip to content

Commit

Permalink
Rename GetterSetter::getPathValue and setPathValue to get and set
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason-Rev committed Sep 15, 2015
1 parent 5a06d23 commit 4b0a7e6
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 8 deletions.
27 changes: 24 additions & 3 deletions src/GetterSetter.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
use Revinate\GetterSetter as gs;

class GetterSetter implements GetterSetterInterface {

protected $pathSeparator = '.';

/**
* @description Gets the value for the field $fieldName.
* @param array|object $data
Expand Down Expand Up @@ -60,10 +63,11 @@ public function setValueByArrayPath($data, $pathToField, $value) {
* @param array|object $data
* @param string|array $pathToField
* @param null|mixed $default
* @param string $pathSeparator
* @param string|null $pathSeparator Optional path separator.
* @return mixed
*/
public function getPathValue($data, $pathToField, $default = null, $pathSeparator = '.') {
public function get($data, $pathToField, $default = null, $pathSeparator = null) {
$pathSeparator = $pathSeparator ?: $this->pathSeparator;
return gs\get($data, $pathToField, $default, $pathSeparator);
}

Expand All @@ -75,7 +79,24 @@ public function getPathValue($data, $pathToField, $default = null, $pathSeparato
* @param string $pathSeparator
* @return mixed
*/
public function setPathValue($data, $pathToField, $value, $pathSeparator = '.') {
public function set($data, $pathToField, $value, $pathSeparator = null) {
$pathSeparator = $pathSeparator ?: $this->pathSeparator;
return gs\set($data, $pathToField, $value, $pathSeparator);
}

/**
* @return string
*/
public function getPathSeparator() {
return $this->pathSeparator;
}

/**
* @param string $pathSeparator
*/
public function setPathSeparator($pathSeparator) {
$this->pathSeparator = $pathSeparator;
}


}
4 changes: 2 additions & 2 deletions src/GetterSetterInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public function setValueByArrayPath($data, $pathToField, $value);
* @param string $pathSeparator
* @return mixed - the updated $data array or object.
*/
public function getPathValue($data, $pathToField, $default = null, $pathSeparator = '.');
public function get($data, $pathToField, $default = null, $pathSeparator = '.');

/**
* @description Sets the field value based upon the path.
Expand All @@ -63,5 +63,5 @@ public function getPathValue($data, $pathToField, $default = null, $pathSeparato
* @param string $pathSeparator
* @return mixed - the updated $data array or object.
*/
public function setPathValue($data, $pathToField, $value, $pathSeparator = '.');
public function set($data, $pathToField, $value, $pathSeparator = '.');
}
24 changes: 21 additions & 3 deletions test/GetterSetterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,32 @@ public function testGetSetValue() {
$dataObj2 = $gs->setValue($dataObj, 'c', array('ca' => 'ca'));
$this->assertEquals($dataObj2, $dataObj);

$gs->setPathValue($dataObj, 'a.a', 'a.a');
$gs->set($dataObj, 'a.a', 'a.a');
$gs->setValueByArrayPath($dataObj, array('a','c'), 'a.c');
$this->assertEquals('a.a', $gs->getPathValue($dataObj, 'a.a'));
$this->assertEquals('a.c', $gs->getPathValue($dataObj, 'a.c'));
$this->assertEquals('a.a', $gs->get($dataObj, 'a.a'));
$this->assertEquals('a.c', $gs->get($dataObj, 'a.c'));
$this->assertEquals(null, $gs->getValueByArrayPath($dataObj, array('a','b')));
$this->assertEquals('ab', $gs->getValueByArrayPath($dataObj, array('a','ab')));
$this->assertEquals('a.c', $gs->getValueByArrayPath($dataObj, array('a','c')));

$this->assertEquals($dataObj->b, $gs->getValue($dataObj, 'b'));
}

public function testSeparator() {
$gs = new GetterSetter();
$dataObject = $this->getData();

$this->assertEquals('.', $gs->getPathSeparator());
$gs->setPathSeparator('/');
$this->assertEquals('/', $gs->getPathSeparator());
$this->assertEquals('baa', $gs->get($dataObject, 'b/ba/baa'));
$gs->set($dataObject, 'b/b/b', 'b.b.b');
$gs->setPathSeparator('|');
$this->assertEquals('b.b.b', $gs->get($dataObject, 'b|b|b'));
$this->assertEquals('b.b.b', $gs->get($dataObject, 'b,b,b', null, ','));
$gs->set($dataObject, 'b+a+c', 'b.a.c', '+');
$this->assertEquals('b.a.c', $gs->get($dataObject, 'b|a|c'));
}


}

0 comments on commit 4b0a7e6

Please sign in to comment.