function parse_defaults($doc) { $defaults = array(); foreach (parse_section('options:', $doc) as $s) { # FIXME corner case "bla: options: --foo" list(, $s) = explode(':', $s, 2); $splitTmp = array_slice(preg_split("@\n[ \t]*(-\\S+?)@", "\n" . $s, null, PREG_SPLIT_DELIM_CAPTURE), 1); $split = array(); for ($cnt = count($splitTmp), $i = 0; $i < $cnt; $i += 2) { $split[] = $splitTmp[$i] . (isset($splitTmp[$i + 1]) ? $splitTmp[$i + 1] : ''); } $options = array(); foreach ($split as $s) { if (strpos($s, '-') === 0) { $options[] = Option::parse($s); } } $defaults = array_merge($defaults, $options); } return new \ArrayIterator($defaults); }
function parse_defaults($doc) { $splitTmp = array_slice(preg_split('@\\n[ ]*(<\\S+?>|-\\S+?)@', $doc, null, PREG_SPLIT_DELIM_CAPTURE), 1); $split = array(); for ($cnt = count($splitTmp), $i = 0; $i < $cnt; $i += 2) { $split[] = $splitTmp[$i] . (isset($splitTmp[$i + 1]) ? $splitTmp[$i + 1] : ''); } $options = new \ArrayIterator(); foreach ($split as $s) { if (strpos($s, '-') === 0) { $options[] = Option::parse($s); } } return $options; }
public function testParse() { $this->object->parse(5); $this->assertEquals(5, $this->check); }