Closed LuizArmesto closed 10 years ago
Eu dei uma olhada na parte de listas e elas tão precisando de uma refatorada. Por exemplo o template de lists/_item.html.erb ele tem assignements e muita logica.
Uma alternativa legal pra evitar isso seria usar um ViewObject, pode ser um PORO (plain old ruby object) mesmo que encapsule essas coisas. algo como:
# view_objects/list_item.rb
module ViewObjects
class ListItem
def initialize(object)
@object
end
# logica e metodos para serem chamados nos templates.
# ...
end
end
ai no template vc elimina toda logica e assignments e só ficam chamadas de metodos do ViewObject.
outro aspecto é evitar renderizar partials implicitamente usando collections:
<%= render @contributions, :size => :small, :control => :counters %>
eu prefiro mil vezes chamar explicitamente o partial, fica mais fácil de encontrar as coisas. Usando a ideia do viewObject:
<% @contibutions.each do |contrib| %> <%= render 'meu_list_partial', item => ViewObjects::ListItem.new(contrib) %> <% end %>
Depois dou mais uma fuçada geral nessa parte.
Estava refatorando o lists/_item.html.erb agora pouco. Coloquei a lógica em helpers, mas vou ver como que fica com o ViewObject.
:+1: