From 43afd69f3ae5082b23e96df218569b93283a459e Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Mon, 1 Dec 2014 15:45:29 -0200 Subject: [PATCH] Refactor extended SearchController --- lib/ext/search_controller.rb | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/lib/ext/search_controller.rb b/lib/ext/search_controller.rb index 1d70fb3..07a5b2d 100644 --- a/lib/ext/search_controller.rb +++ b/lib/ext/search_controller.rb @@ -3,20 +3,7 @@ require_dependency 'search_controller' class SearchController def communities - unfiltered_list = visible_profiles(Community) - unless params[:query].nil? - unfiltered_list = unfiltered_list.select do |com| - com.name.downcase =~ /#{params[:query].downcase}/ - end - end - - list_without_software_and_institution = [] - unfiltered_list.each do |p| - if p.class == Community and !p.software? and !p.institution? - list_without_software_and_institution << p - end - end - results = list_without_software_and_institution + results = filter_communities_list{|community| !community.software? and !community.institution?} results = results.paginate(:per_page => 24, :page => params[:page]) @searches[@asset] = {:results => results} @search = results @@ -24,22 +11,26 @@ class SearchController def software_infos @titles[:software_infos] = "Software Infos" + + results = filter_communities_list{|community| community.software?} + results = results.paginate(:per_page => 24, :page => params[:page]) + @searches[@asset] = {:results => results} + @search = results + end + + def filter_communities_list unfiltered_list = visible_profiles(Community) unless params[:query].nil? unfiltered_list = unfiltered_list.select do |com| com.name.downcase =~ /#{params[:query].downcase}/ end end - - list_community_of_software = [] - unfiltered_list.each do |p| - if p.class == Community and p.software? - list_community_of_software << p + communities_list = [] + unfiltered_list.each do |profile| + if profile.class == Community and yield(profile) + communities_list << profile end end - results = list_community_of_software - results = results.paginate(:per_page => 24, :page => params[:page]) - @searches[@asset] = {:results => results} - @search = results + communities_list end end \ No newline at end of file -- libgit2 0.21.2