Commit 28004418058f4f1e576a28aa68f992da7b6773d3
Committed by
Gabriela Navarro
1 parent
d675b078
Exists in
master
and in
5 other branches
Refactor scope search_by_query in SoftwareInfo to includes use the constant SEAR…
…CHABLE_SOFTWARE_CLASSES Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
Showing
1 changed file
with
16 additions
and
1 deletions
Show diff stats
lib/software_info.rb
| @@ -20,10 +20,25 @@ class SoftwareInfo < ActiveRecord::Base | @@ -20,10 +20,25 @@ class SoftwareInfo < ActiveRecord::Base | ||
| 20 | if query.empty? | 20 | if query.empty? |
| 21 | SoftwareInfo.all | 21 | SoftwareInfo.all |
| 22 | else | 22 | else |
| 23 | - includes(:community, :programming_languages, :database_descriptions).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')") | 23 | + searchable_software_objects = SoftwareInfo.transform_list_in_methods_list(SEARCHABLE_SOFTWARE_CLASSES) |
| 24 | + includes(searchable_software_objects).where("to_tsvector('simple', #{search_fields}) @@ to_tsquery('#{filtered_query}')") | ||
| 24 | end | 25 | end |
| 25 | } | 26 | } |
| 26 | 27 | ||
| 28 | + def self.transform_list_in_methods_list list | ||
| 29 | + methods_list = [] | ||
| 30 | + | ||
| 31 | + list.each do |element| | ||
| 32 | + if SoftwareInfo.instance_methods.include?(element.to_s.underscore.to_sym) | ||
| 33 | + methods_list << element.to_s.underscore.to_sym | ||
| 34 | + elsif SoftwareInfo.instance_methods.include?(element.to_s.underscore.pluralize.to_sym) | ||
| 35 | + methods_list << element.to_s.underscore.pluralize.to_sym | ||
| 36 | + end | ||
| 37 | + end | ||
| 38 | + | ||
| 39 | + methods_list | ||
| 40 | + end | ||
| 41 | + | ||
| 27 | def self.pg_search_plugin_fields | 42 | def self.pg_search_plugin_fields |
| 28 | SEARCHABLE_SOFTWARE_CLASSES.collect { |one_class| | 43 | SEARCHABLE_SOFTWARE_CLASSES.collect { |one_class| |
| 29 | self.get_searchable_fields(one_class) | 44 | self.get_searchable_fields(one_class) |