/** * Test adding multiple options. * * @return void */ public function testAddOptions() { $parser = new ConsoleOptionParser('something', FALSE); $result = $parser->addOptions(array('name' => array('help' => 'The name'), 'other' => array('help' => 'The other arg'))); $this->assertEquals($parser, $result, 'addOptions is not chainable.'); $result = $parser->options(); $this->assertEquals(3, count($result), 'Not enough options'); }
/** * Build a parser from an array. Uses an array like * * {{{ * $spec = array( * 'description' => 'text', * 'epilog' => 'text', * 'arguments' => array( * // list of arguments compatible with addArguments. * ), * 'options' => array( * // list of options compatible with addOptions * ), * 'subcommands' => array( * // list of subcommands to add. * ) * ); * }}} * * @param array $spec The spec to build the OptionParser with. * @return ConsoleOptionParser */ public static function buildFromArray($spec) { $parser = new ConsoleOptionParser($spec['command']); if (!empty($spec['arguments'])) { $parser->addArguments($spec['arguments']); } if (!empty($spec['options'])) { $parser->addOptions($spec['options']); } if (!empty($spec['subcommands'])) { $parser->addSubcommands($spec['subcommands']); } if (!empty($spec['description'])) { $parser->description($spec['description']); } if (!empty($spec['epilog'])) { $parser->epilog($spec['epilog']); } return $parser; }