it3s / meppit

3 stars 1 forks source link

list views #35

Closed LuizArmesto closed 10 years ago

LuizArmesto commented 10 years ago
andersoncardoso commented 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.

LuizArmesto commented 10 years ago

Estava refatorando o lists/_item.html.erb agora pouco. Coloquei a lógica em helpers, mas vou ver como que fica com o ViewObject.

andersoncardoso commented 10 years ago

:+1:

andersoncardoso commented 10 years ago

https://github.com/it3s/meppit/pull/75/