/** * Finds an option based on a flag * * @param String $flag The flag to look up * @return \r8\CLI\Option Returns NULL if there were no ptions with that * flag registered */ public function findByFlag($flag) { $flag = \r8\CLI\Option::normalizeFlag($flag, FALSE); if (isset($this->options[$flag])) { return $this->options[$flag]; } foreach ($this->options as $option) { if ($option->hasFlag($flag)) { return $option; } } return NULL; }
/** * A helper method for finding the appropriate data set index based on a flag * * @param String $flag * @return String */ private function findFlagIndex($flag) { $flag = \r8\CLI\Option::normalizeFlag($flag, FALSE); if (isset($this->flags[$flag])) { return $flag; } foreach ($this->flags as $primary => $option) { if ($option['opt']->hasFlag($flag)) { return $primary; } } return NULL; }
public function testNormalizeFlag() { $this->assertSame("a", \r8\CLI\Option::normalizeFlag("a")); $this->assertSame("A", \r8\CLI\Option::normalizeFlag("A")); $this->assertSame("test", \r8\CLI\Option::normalizeFlag("TesT")); $this->assertSame("with-spaces", \r8\CLI\Option::normalizeFlag("with spaces")); $this->assertSame("trim-this", \r8\CLI\Option::normalizeFlag("--trim-this--")); try { \r8\CLI\Option::normalizeFlag(" "); $this->fail("An expected exception was not thrown"); } catch (\r8\Exception\Argument $err) { } $this->assertSame("", \r8\CLI\Option::normalizeFlag(NULL, FALSE)); }