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());
 }
Example #2
0
 /**
  * @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");
         }
     }
 }