Skip to content

Commit 0915d15

Browse files
committed
implemented "removeFirstArgument"
1 parent f9f5bb3 commit 0915d15

File tree

3 files changed

+37
-7
lines changed

3 files changed

+37
-7
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ Thanks to [apigen](https://github.com/apigen/apigen), the api is available in th
169169

170170
* upcomming
171171
* replace "setArguments" with "parse" like [nette](https://github.com/nette/command-line/blob/master/src/CommandLine/Parser.php) is doing it
172+
* [1.1.0](https://github.com/bazzline/php_component_cli_argument/tree/1.0.2) - released at 02.07.2015
173+
* added second argument to Arguments::__construct() and Arguments::setArguments called "removeFirstArgument"
172174
* [1.0.2](https://github.com/bazzline/php_component_cli_argument/tree/1.0.2) - released at 02.07.2015
173175
* updated dependencies
174176
* [1.0.1](https://github.com/bazzline/php_component_cli_argument/tree/1.0.1) - released at 22.05.2015

source/Net/Bazzline/Component/Cli/Arguments/Arguments.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ class Arguments
2222

2323
/**
2424
* @param null|array $argv
25+
* @param boolean $removeFirstArgument
2526
*/
26-
public function __construct($argv = null)
27+
public function __construct($argv = null, $removeFirstArgument = true)
2728
{
2829
if (is_array($argv)) {
29-
$this->setArguments($argv);
30+
$this->setArguments($argv, $removeFirstArgument);
3031
} else {
3132
$this->initiate();
3233
}
@@ -123,9 +124,17 @@ public function hasValues()
123124
return (!empty($this->values));
124125
}
125126

126-
public function setArguments(array $argv)
127+
/**
128+
* @param array $argv
129+
* @param boolean $removeFirstArgument
130+
* @return $this
131+
*/
132+
public function setArguments(array $argv, $removeFirstArgument = true)
127133
{
128-
array_shift($argv);
134+
if ($removeFirstArgument) {
135+
array_shift($argv);
136+
}
137+
129138
$this->initiate();
130139
$this->arguments = $argv;
131140
$this->generate($this->arguments);
@@ -140,6 +149,7 @@ public function setArguments(array $argv)
140149
private function addToList($name, $value)
141150
{
142151
$value = trim($value, '"'); //remove >"< if exists
152+
143153
if (isset($this->lists[$name])) {
144154
$this->lists[$name][] = $value;
145155
} else {

test/Test/Net/Bazzline/Component/Cli/Arguments/ArgumentsTest.php

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,13 @@ public function testWithArgumentsProvider()
207207
* @param array $expectedLists
208208
* @param array $expectedValues
209209
*/
210-
public function testWithArguments(array $argv, array $expectedArguments, array $expectedFlags, array $expectedLists, array $expectedValues)
210+
public function testWithArguments(
211+
array $argv,
212+
array $expectedArguments,
213+
array $expectedFlags,
214+
array $expectedLists,
215+
array $expectedValues
216+
)
211217
{
212218
$arguments = $this->createArguments($argv);
213219

@@ -231,12 +237,24 @@ public function testWithArguments(array $argv, array $expectedArguments, array $
231237
}
232238
}
233239

240+
public function testWithArgumentsAndNotRemovingFirstArgument()
241+
{
242+
$argv = array('foo', 'bar');
243+
$arguments = $this->createArguments($argv, false);
244+
245+
$this->assertEquals($argv, $arguments->getArguments());
246+
$this->assertEquals($argv, $arguments->getValues());
247+
$this->assertEmpty($arguments->getFlags());
248+
$this->assertEmpty($arguments->getLists());
249+
}
250+
234251
/**
235252
* @param null|array $argv
253+
* @param boolean $removeFirstArgument
236254
* @return Arguments
237255
*/
238-
private function createArguments($argv = null)
256+
private function createArguments($argv = null, $removeFirstArgument = true)
239257
{
240-
return new Arguments($argv);
258+
return new Arguments($argv, $removeFirstArgument);
241259
}
242260
}

0 commit comments

Comments
 (0)