I don't think that's the only problem with using dryml partials. Given that DRYML parts are so much nicer than Rails partials, this hasn't been a high priority area to fix. I think yours is the first bug report.

What's your use case for partials -- have you tried using parts?

Bryan


On 11-01-17 11:00 PM, Peter Williams wrote:
It appears that having a semi-colon in a dryml partial outside of a
dryml tag causes serious problems in 1.0.2.  To reproduce this i
created a controller with a `#show` action that does nothing, a
matching `show.dryml` template that contains

     <%= render :partial =>  'tab_your_company' %>

and a partial `_tab_your_company.dryml` that contains

     <p>test ;</p>

When i request that action i get a compile error on line 1 of
_tab_your_company.dryml.[1]

A quick search on lighthouse did not turn up anything that seemed like
my problem so i started investigating.  I tracked the problem down to
`Hobo::Dryml::DRYMLBuilder#erb_process`.  On line 64 of
`dryml_builder.rb` there is code that removes everything before first
and after the last semi-colon from the erb output.  This has the
effect of making the remaining erb output syntactically illegal for
partials whose last element contains a semi-colon that if that element
is not a dryml tag.

It does work just fine if the semi-colon is wrapped in a dryml tag.
For example, if i change the `_tab_your_company.dryml` file to look
like

     <do>
     <p>test ;</p>
     </do>

everything works just fine.

I have run across this as during an upgrade from a pre-1.0 version of
hobo.  Many of our partials seem to elicit this failure.  I am hoping
to fix this without having to add a do tag around every single partial
in our large application.  However, i am not sure exactly how to fix
this issue because i am not sure why the code in `#erb_process` strips
the beginning and end of the erb output.  Anyone have any ideas about
how i might solve this problem?  Or at the very least, what that code
achieves?

Thanks in advance for the info.

Peter


[1]: Stack trace for semi-colon
ActionView::TemplateError (compile error
app/views/licenses/_tab_your_company.dryml:1: unterminated string
meets end of file
app/views/licenses/_tab_your_company.dryml:1: syntax error, unexpected
$end, expecting kEND
...test ; output_buffer; end; end
                               ^) on line #1 of app/views/licenses/
_tab_your_company.dryml:
1:<p>  test ;</p>

     app/views/licenses/_tab_your_company.dryml:1:in `build'
     hobo (1.0.2) lib/hobo/dryml/dryml_builder.rb:78:in `each'
     hobo (1.0.2) lib/hobo/dryml/dryml_builder.rb:78:in `build'
     hobo (1.0.2) lib/hobo/dryml/template.rb:73:in `compile'
     hobo (1.0.2) lib/hobo/dryml.rb:173:in `compile_renderer_class'
     hobo (1.0.2) lib/hobo/dryml.rb:159:in `make_renderer_class'
     hobo (1.0.2) lib/hobo/dryml.rb:112:in `page_renderer'
     hobo (1.0.2) lib/hobo/dryml.rb:78:in `page_renderer_for_template'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:19:in
`render_for_rails22'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:142:in
`render_dryml'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:138:in
`render_dryml'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:106:in `render'
     hobo (1.0.2) lib/hobo/dryml/template_environment.rb:605:in `send'
     hobo (1.0.2) lib/hobo/dryml/template_environment.rb:605:in
`method_missing'
     app/views/licenses/show.dryml:1:in `render_page'
     hobo (1.0.2) lib/hobo/dryml/template_environment.rb:267:in
`new_object_context'
     hobo (1.0.2) lib/hobo/dryml/template_environment.rb:248:in
`new_context'
     hobo (1.0.2) lib/hobo/dryml/template_environment.rb:248:in
`new_context'
     hobo (1.0.2) lib/hobo/dryml/template_environment.rb:255:in
`new_object_context'
     app/views/licenses/show.dryml:1:in `render_page'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:22:in
`render_for_rails22'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:142:in
`render_dryml'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:138:in
`render_dryml'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:106:in `render'
     hobo (1.0.2) lib/hobo/dryml/template_handler.rb:83:in
`render_for_file'
     hobo (1.0.2) lib/hobo/model_controller.rb:818:in `render'
     hobo (1.0.2) lib/hobo/controller.rb:23:in `call'
     hobo (1.0.2) lib/hobo/controller.rb:23:in `included_in_class'
     extras/cache_helper.rb:205:in `olex_auto_cache'
     config/initializers/reconnect_before_every_request.rb:12:in
`process'
     lib/current_corp_support.rb:45:in `process'
     extras/cache_helper.rb:453:in `process'


--
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to