On 2013-24-04 1:28, Luke Kanies wrote:

I'm curious at the chosen syntax here -- is @() a common syntax for heredocs?  
I'm more used to things like:

$foo = <<END
…
END

Was that more common syntax not a possibility for us?

There is a note about that in the ARM (i.e. the issues with the Ruby Heredoc).

Basically, it is difficult to use << which is also left shift.

Ruby heredoc also lacks several features that I implemented in the Puppet Heredoc. In Ruby you typically have to do post processing to remove the left margin (and other similar cleanups). (I hate doing that in Ruby every time as it is brittle (indent the source text and it breaks, etc).

So, I wanted a heredoc that was more feature rich and that was unambiguous at the lexical level and at the same time supporting the features I wanted to see (setting syntax and controlling escapes).

Example with whitespaces

@( This is the end : json /nrt )
  text with a tab: \t and newline \n embedded as single chars
  This is the end

With the @() notation, there is an unambiguous end to search for.

It is naturally possible to change it to any other non ambiguous tokens, but I would like it to have an end character (if not I fear some other features in the ARM proposal may have to be dropped).

Regards
- henrik

--
You received this message because you are subscribed to the Google Groups "Puppet 
Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to