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) |