I noticed these files all had strings such as "", " ", "_" that were
allocated each time some common methods were called, over 1000x on a
page in my app. This comment freezes all of these strings such that
they're only allocated once, saving many KB of memory allocation.
This change allows the wrappers to not output their rendered HTML when
when the block yields no content.
e.g. when defining an optional component :
ba.wrapper tag: :div, class: 'form-helper -message -hint' do |bb|
bb.optional :hint, wrap_with: { tag: :p }
end
and that component is not used in a template :
<%= form.input :name %>
Then the HTML output still contains the wrapper output :
<div class="form-helper -message -help"></div>
If this behaviour is not desired, then the output of the empty tags can
be disabled via the `remove_empty` option.
ba.wrapper tag: :div, class: 'form-helper -message -hint', remove_empty: true do |bb|
bb.optional :hint, wrap_with: { tag: :p }
end
The above config will not output any wrapper HTML.