Skip to content

Commit e1e9d8c

Browse files
authored
Merge pull request #67 from qschmick/fix/compile-params-console-bug
Fix/compile params console bug
2 parents a437c9e + 3280035 commit e1e9d8c

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/Task.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ public function compileParameters($console = false)
7575
$parameters = collect($matches)->mapWithKeys(function ($parameter) use ($console, &$argument_index) {
7676
$param = explode('=', $parameter[0]);
7777

78-
return count($param) > 1 ? [$param[0] => $param[1]]
78+
return count($param) > 1
79+
? ($console ? (starts_with($param[0], '--') ? [$param[0] => $param[1]] : [$argument_index++ => $param[1]]) : [$param[0] => $param[1]])
7980
: (starts_with($param[0], '--') && ! $console ? [$param[0] => true] : [$argument_index++ => $param[0]]);
8081
})->toArray();
8182

tests/Feature/CompileParametersTest.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,25 @@ public function test_all_mixed_arguments()
103103
$this->assertSame('15', $parameters['arg3']);
104104
$this->assertSame('arg4', $parameters[1]);
105105
$this->assertSame('warm', $parameters['--someplace']);
106-
$this->assertTrue($parameters['--flag']);
107106
$this->assertArrayHasKey('--flag', $parameters);
107+
$this->assertSame(true, $parameters['--flag']);
108+
$this->assertSame(true, $parameters['--flag2']);
109+
}
110+
111+
public function test_all_mixed_arguments_console()
112+
{
113+
$task = factory(Task::class)->create();
114+
$task->parameters = 'arg1 arg2=test arg3=15 arg4 --flag --flag2 --option=yes --someplace=warm';
115+
$parameters = $task->compileParameters(true);
116+
117+
$this->assertCount(8, $parameters);
118+
$this->assertSame('arg1', $parameters[0]);
119+
$this->assertSame('test', $parameters[1]);
120+
$this->assertSame('15', $parameters[2]);
121+
$this->assertSame('arg4', $parameters[3]);
122+
$this->assertSame('--flag', $parameters[4]);
123+
$this->assertSame('--flag2', $parameters[5]);
124+
$this->assertSame('yes', $parameters['--option']);
125+
$this->assertSame('warm', $parameters['--someplace']);
108126
}
109127
}

0 commit comments

Comments
 (0)