「特定の条件を満たした時に中身を表示、満たしていないときには何も出さない」という処理を、同じ条件で中身は違うというものをいろんなところに書きたかったのでHelperに実装してみました。
some_view.html.haml
= lock do
条件を満たした!
erbなら以下のようになると思います。
some_view.html.erb
<%= lock do %>
条件を満たした!
<% end %>
としておいて、helper側は以下のようにします。
application_helper.rb
def lock(&block)
if some_condition?
capture(&block)
else
'今は見れません!'
end
end
capture(&block)
がミソですね。