mustangostang / spyc

A simple YAML loader/dumper class for PHP
MIT License
701 stars 206 forks source link

multiline scalar support #61

Open FossPrime opened 7 years ago

FossPrime commented 7 years ago

From https://github.com/osTicket/osTicket/commit/6a480cf759f56ace74d50e80b166233be0cd1aa2#diff-494c9c83350e6fa8223f944f74193e6c

For Crowdin Yaml files such as this

notes: |
  Benachrichtigung, die an Agenten versendet wird, wenn eine interne Aktivität wie etwa eine interne Notiz oder eine Antwort eines Agenten an ein Ticket angefügt wird.
subject: |
  Benachrichtigung bei neuer interner Aktivität
body: |2
  <h3><strong>Hallo %{recipient.name},</strong></h3>
  ein Agent hat eine Aktivität zum Ticket <a
  href="%{ticket.staff_link}">#%{ticket.number}</a> hinzugefügt.

The output should be this

php > var_dump($Data);
php shell code:1:
array(3) {
  'notes' =>
  string(167) "Benachrichtigung, die an Agenten versendet wird, wenn eine interne Aktivität wie etwa eine interne Notiz oder eine Antwort eines Agenten an ein Ticket angefügt wird."
  'subject' =>
  string(46) "Benachrichtigung bei neuer interner Aktivität"
  'body' =>
  string(121) "<h3><strong>Hallo %{recipient.name},</strong></h3>
ein Agent hat eine Aktivität zum Ticket <a
href="%{ticket.staff_link}">#%{ticket.number}</a> hinzugefügt."
}

Instead of this

array(3) {
  'notes' =>
  array(1) {
    [0] =>
    string(167) "Benachrichtigung, die an Agenten versendet wird, wenn eine interne Aktivität wie etwa eine interne Notiz oder eine Antwort eines Agenten an ein Ticket angefügt wird."
  }
  'subject' =>
  array(1) {
    [0] =>
    string(46) "Benachrichtigung bei neuer interner Aktivität"
  }
  'body' =>
  array(25) {
    [0] =>
    string(50) "<h3><strong>Hallo %{recipient.name},</strong></h3>"
    [1] =>
    string(43) "ein Agent hat eine Aktivität zum Ticket <a"
    [2] =>
    string(28) "href="%{ticket.staff_link}">"
  }
}
jackmcdade commented 7 years ago

Can you add a test for this situation?