public function testSettingOptions() { $stream = $this->createStream("Test"); $iterator = new LineStreamIterator($stream); static::assertEquals("\n", $iterator->getEnding()); static::assertEquals(true, $iterator->isIgnoreBlank()); static::assertEquals(false, $iterator->isIncludeEnding()); static::assertSame($iterator, $iterator->setEnding("---")); static::assertEquals('---', $iterator->getEnding()); static::assertSame($iterator, $iterator->setIgnoreBlank(false)); static::assertFalse($iterator->isIgnoreBlank()); static::assertSame($iterator, $iterator->setIncludeEnding(true)); static::assertTrue($iterator->isIncludeEnding()); }
/** * @param resource $stream * * @return Iterator */ public function parse($stream) { if ($this->format->isEachLine()) { $iterator = new LineStreamIterator($stream, [LineStreamIterator::OPTION_ENDING => "\n", LineStreamIterator::OPTION_IGNORE_BLANK => $this->format->isIgnoreBlankLines(), LineStreamIterator::OPTION_INCLUDE_ENDING => false]); $iterator->setIgnoreBlank($this->format->isIgnoreBlankLines()); return new MapIterator($iterator, [$this, 'decodeJson']); } else { $json = $this->decodeJson(stream_get_contents($stream)); if (is_array($json)) { return new ArrayIterator($json); } else { throw new RuntimeException("Expecting a json array to parse, unknown format detected"); } } }