Help needed with this ERB code

Is there any code in this ERB snippet that causes text after the EOF
to be included in the template.

Unless my understanding of ERB is inadequate there has to be some bug in it.
It has me at my wit's end.

···

=============

template = ERB.new <<-EOF

     # rsync push mode

     #rsync_push_command check

     # <%= rsync_push_command %>

     # rsync_forced_command
     # <%= rsync_forced_command %>
     #

EOF

some program code here

=====
After execution the text "some program code here" appears in the
template's output

Are there some circumstances under which ERB goes haywire?

Is there an alternate syntax to the ERB.NEW <<-EOF ... EOF syntax for
when the text is on multiple lines. - Frank

Is there some way the ERB internal stack or whatever can be reset
between calls to ensure that there is nothing left in there to cause
errors.

···

On 21/07/07, Frank Church <voipfc@googlemail.com> wrote:

Is there any code in this ERB snippet that causes text after the EOF
to be included in the template.

Unless my understanding of ERB is inadequate there has to be some bug in it.
It has me at my wit's end.

=============

template = ERB.new <<-EOF

     # rsync push mode

     #rsync_push_command check

     # <%= rsync_push_command %>

     # rsync_forced_command
     # <%= rsync_forced_command %>
     #

EOF

some program code here

=====
After execution the text "some program code here" appears in the
template's output

Are there some circumstances under which ERB goes haywire?

Is there an alternate syntax to the ERB.NEW <<-EOF ... EOF syntax for
when the text is on multiple lines. - Frank