Qu'est ce que c' &bloc en Ruby? Et comment ça se passait dans une méthode ici?

Vu ce morceau de code en Ruby on Rails livre. Le premier est un point de vue et le second est un module d'aide. Je ne comprends pas comment que &block et la attributes={} chose que le travail. Quelqu'un peut-il me guider vers un tutoriel de quelque sorte expliquer cela?

<% hidden_div_if(@cart.items.empty?, :id => "cart") do %>
 <%= render(:partial => "cart", :object => @cart) %>
<% end %>

module StoreHelper
 def hidden_div_if(condition, attributes = {}, &block)
  if condition
   attributes["style"] = "display: none"
  end
   content_tag("div", attributes, &block)
  end
end