Commit 43afd69f3ae5082b23e96df218569b93283a459e
1 parent
fed2d986
Exists in
master
and in
5 other branches
Refactor extended SearchController
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
Showing
1 changed file
with
14 additions
and
23 deletions
Show diff stats
lib/ext/search_controller.rb
| ... | ... | @@ -3,20 +3,7 @@ require_dependency 'search_controller' |
| 3 | 3 | class SearchController |
| 4 | 4 | |
| 5 | 5 | def communities |
| 6 | - unfiltered_list = visible_profiles(Community) | |
| 7 | - unless params[:query].nil? | |
| 8 | - unfiltered_list = unfiltered_list.select do |com| | |
| 9 | - com.name.downcase =~ /#{params[:query].downcase}/ | |
| 10 | - end | |
| 11 | - end | |
| 12 | - | |
| 13 | - list_without_software_and_institution = [] | |
| 14 | - unfiltered_list.each do |p| | |
| 15 | - if p.class == Community and !p.software? and !p.institution? | |
| 16 | - list_without_software_and_institution << p | |
| 17 | - end | |
| 18 | - end | |
| 19 | - results = list_without_software_and_institution | |
| 6 | + results = filter_communities_list{|community| !community.software? and !community.institution?} | |
| 20 | 7 | results = results.paginate(:per_page => 24, :page => params[:page]) |
| 21 | 8 | @searches[@asset] = {:results => results} |
| 22 | 9 | @search = results |
| ... | ... | @@ -24,22 +11,26 @@ class SearchController |
| 24 | 11 | |
| 25 | 12 | def software_infos |
| 26 | 13 | @titles[:software_infos] = "Software Infos" |
| 14 | + | |
| 15 | + results = filter_communities_list{|community| community.software?} | |
| 16 | + results = results.paginate(:per_page => 24, :page => params[:page]) | |
| 17 | + @searches[@asset] = {:results => results} | |
| 18 | + @search = results | |
| 19 | + end | |
| 20 | + | |
| 21 | + def filter_communities_list | |
| 27 | 22 | unfiltered_list = visible_profiles(Community) |
| 28 | 23 | unless params[:query].nil? |
| 29 | 24 | unfiltered_list = unfiltered_list.select do |com| |
| 30 | 25 | com.name.downcase =~ /#{params[:query].downcase}/ |
| 31 | 26 | end |
| 32 | 27 | end |
| 33 | - | |
| 34 | - list_community_of_software = [] | |
| 35 | - unfiltered_list.each do |p| | |
| 36 | - if p.class == Community and p.software? | |
| 37 | - list_community_of_software << p | |
| 28 | + communities_list = [] | |
| 29 | + unfiltered_list.each do |profile| | |
| 30 | + if profile.class == Community and yield(profile) | |
| 31 | + communities_list << profile | |
| 38 | 32 | end |
| 39 | 33 | end |
| 40 | - results = list_community_of_software | |
| 41 | - results = results.paginate(:per_page => 24, :page => params[:page]) | |
| 42 | - @searches[@asset] = {:results => results} | |
| 43 | - @search = results | |
| 34 | + communities_list | |
| 44 | 35 | end |
| 45 | 36 | end |
| 46 | 37 | \ No newline at end of file | ... | ... |