Today we ran into an interesting problem that turned out to have an elegant solution. We had a list of links that we wanted displayed as comma separated. Long story short, the resulting output contained spaces before the commas (i.e. Dick , Mary , and Jane). We wanted to take that output and run a regex replace on it.
Turns out this is pretty easy to do in rails. We added the following to our helper file
def suppress_comma_spacing(&block) res = capture(&block) concat(res.gsub(/\s+,/m, ','), block.binding) end
then wrapped the code whose output needed modification in a code block in the erb file (trivial example below)
<% suppress_comma_spacing do %>
<%= link_to "Dick", user_path(dick) %> , <%= link_to "Mary", user_path(mary) %> , and <%= link_to "Jane", user_path(jane) %>
<% end %>
The result is Dick, Mary, and Jane with the spaces before the commas stripped. Capture allows you to get the processed erb from executing the block. Pretty useful.