Skip to content

Commit

Permalink
Merge pull request #46 from SoCloz/master
Browse files Browse the repository at this point in the history
Fixed problem about extra '|' at the start #41
  • Loading branch information
mustangostang committed Aug 13, 2015
2 parents eeb9f7c + 4fe15f4 commit 699184c
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 2 deletions.
12 changes: 10 additions & 2 deletions Spyc.php
Expand Up @@ -315,7 +315,7 @@ private function _yamlizeArray($array,$indent) {
private function _dumpNode($key, $value, $indent, $previous_key = -1, $first_key = 0, $source_array = null) {
// do some folding here, for blocks
if (is_string ($value) && ((strpos($value,"\n") !== false || strpos($value,": ") !== false || strpos($value,"- ") !== false ||
strpos($value,"*") !== false || strpos($value,"#") !== false || strpos($value,"<") !== false || strpos($value,">") !== false || strpos ($value, ' ') !== false ||
strpos($value,"*") !== false || strpos($value,"#") !== false || strpos($value,"<") !== false || strpos($value,">") !== false || strpos ($value, '%') !== false || strpos ($value, ' ') !== false ||
strpos($value,"[") !== false || strpos($value,"]") !== false || strpos($value,"{") !== false || strpos($value,"}") !== false) || strpos($value,"&") !== false || strpos($value, "'") !== false || strpos($value, "!") === 0 ||
substr ($value, -1, 1) == ':')
) {
Expand Down Expand Up @@ -371,9 +371,17 @@ private function _doLiteralBlock($value,$indent) {
}
$exploded = explode("\n",$value);
$newValue = '|';
$indent += $this->_dumpIndent;
if (isset($exploded[0]) && ($exploded[0] == "|" || $exploded[0] == "|-" || $exploded[0] == ">")) {
$newValue = $exploded[0];
unset($exploded[0]);
}
$indent += $this->_dumpIndent;
$spaces = str_repeat(' ',$indent);
foreach ($exploded as $line) {
$line = trim($line);
if (strpos($line, '"') === 0 && strrpos($line, '"') == (strlen($line)-1) || strpos($line, "'") === 0 && strrpos($line, "'") == (strlen($line)-1)) {
$line = substr($line, 1, -1);
}
$newValue .= "\n" . $spaces . ($line);
}
return $newValue;
Expand Down
3 changes: 3 additions & 0 deletions composer.json
Expand Up @@ -19,6 +19,9 @@
"autoload": {
"files": [ "Spyc.php" ]
},
"require-dev": {
"phpunit/phpunit": "4.3.*@dev"
},
"extra": {
"branch-alias": {
"dev-master": "0.5.x-dev"
Expand Down
60 changes: 60 additions & 0 deletions tests/DumpTest.php
Expand Up @@ -133,4 +133,64 @@ public function testHashesInKeys() {
$this->assertEquals ($awaiting, $dump);
}

public function testParagraph() {
$dump = Spyc::YAMLDump(array ('key' => "|\n value"));
$awaiting = "---\nkey: |\n value\n";
$this->assertEquals ($awaiting, $dump);
}

public function testParagraphTwo() {
$dump = Spyc::YAMLDump(array ('key' => 'Congrats, pimpt bedrijventerreinen pimpt bedrijventerreinen pimpt bedrijventerreinen!'));
$awaiting = "---\nkey: >\n Congrats, pimpt bedrijventerreinen pimpt\n bedrijventerreinen pimpt\n bedrijventerreinen!\n";
$this->assertEquals ($awaiting, $dump);
}

public function testString() {
$dump = Spyc::YAMLDump(array ('key' => array('key_one' => 'Congrats, pimpt bedrijventerreinen!')));
$awaiting = "---\nkey:\n key_one: Congrats, pimpt bedrijventerreinen!\n";
$this->assertEquals ($awaiting, $dump);
}

public function testStringLong() {
$dump = Spyc::YAMLDump(array ('key' => array('key_one' => 'Congrats, pimpt bedrijventerreinen pimpt bedrijventerreinen pimpt bedrijventerreinen!')));
$awaiting = "---\nkey:\n key_one: >\n Congrats, pimpt bedrijventerreinen pimpt\n bedrijventerreinen pimpt\n bedrijventerreinen!\n";
$this->assertEquals ($awaiting, $dump);
}

public function testStringDoubleQuote() {
$dump = Spyc::YAMLDump(array ('key' => array('key_one' => array('key_two' => '"Système d\'e-réservation"'))));
$awaiting = "---\nkey:\n key_one:\n key_two: |\n Système d'e-réservation\n";
$this->assertEquals ($awaiting, $dump);
}

public function testLongStringDoubleQuote() {
$dump = Spyc::YAMLDump(array ('key' => array('key_one' => array('key_two' => '"Système d\'e-réservation bedrijventerreinen pimpt" bedrijventerreinen!'))));
$awaiting = "---\nkey:\n key_one:\n key_two: |\n \"Système d'e-réservation bedrijventerreinen pimpt\" bedrijventerreinen!\n";
$this->assertEquals ($awaiting, $dump);
}

public function testStringStartingWithSpace() {
$dump = Spyc::YAMLDump(array ('key' => array('key_one' => " Congrats, pimpt bedrijventerreinen \n pimpt bedrijventerreinen pimpt bedrijventerreinen!")));
$awaiting = "---\nkey:\n key_one: |\n Congrats, pimpt bedrijventerreinen\n pimpt bedrijventerreinen pimpt bedrijventerreinen!\n";
$this->assertEquals ($awaiting, $dump);
}

public function testPerCentOne() {
$dump = Spyc::YAMLDump(array ('key' => "%name%, pimpts bedrijventerreinen!"));
$awaiting = "---\nkey: '%name%, pimpts bedrijventerreinen!'\n";
$this->assertEquals ($awaiting, $dump);
}

public function testPerCentAndSimpleQuote() {
$dump = Spyc::YAMLDump(array ('key' => "%name%, pimpt's bedrijventerreinen!"));
$awaiting = "---\nkey: \"%name%, pimpt's bedrijventerreinen!\"\n";
$this->assertEquals ($awaiting, $dump);
}

public function testPerCentAndDoubleQuote() {
$dump = Spyc::YAMLDump(array ('key' => '%name%, pimpt\'s "bed"rijventerreinen!'));
$awaiting = "---\nkey: |\n %name%, pimpt's \"bed\"rijventerreinen!\n";
$this->assertEquals ($awaiting, $dump);
}

}

0 comments on commit 699184c

Please sign in to comment.