lib/social_stream/search.rb in social_stream-base-1.1.11 vs lib/social_stream/search.rb in social_stream-base-2.0.0.beta1

- old
+ new

@@ -1,17 +1,26 @@ module SocialStream module Search + #TODO: sync with ThinkingSphinx min_infix_len and min_prefix_len options + MIN_QUERY = 3 + class << self def keys(search_type) case search_type when :quick SocialStream.quick_search_models when :extended extended_search_models.keys end end + def options_for_type_select + keys(:extended).map{ |k| + [ I18n.t("#{ k }", count: :other), k ] + }.unshift([ I18n.t("search.show_all"), "" ]) + end + def models(search_type, key = nil) case search_type when :quick quick_search_models when :extended @@ -26,10 +35,12 @@ end end else extended_search_models.values.flatten end + when :repository + SocialStream.repository_models.map{ |m| m.to_s.classify.constantize } else raise "Unknown search type #{ search_type }" end end @@ -39,11 +50,10 @@ def count(query, subject, options = {}) ThinkingSphinx.count *args_for_search(query, subject, options) end - private def quick_search_models @quick_search_models ||= parse_quick_search_models @@ -71,24 +81,24 @@ # :user => [ User ], # :resource => [ Post, Comment, Picture ] # } # def parse_extended_search_models - SocialStream.extended_search_models.inject({}) do |hash, entry| - case entry - when Hash - hash.update entry.inject({}){ |h, e| - h[e.first] = Array.wrap(e.last).map{ |f| f.to_s.classify.constantize } - h - } - when Symbol - hash[entry] = Array.wrap(entry.to_s.classify.constantize) - else - raise "Unknown entry in config.extended_search_models #{ entry }" - end - - hash + SocialStream.extended_search_models.inject({}) do |hash, entry| + case entry + when Hash + hash.update entry.inject({}){ |h, e| + h[e.first] = Array.wrap(e.last).map{ |f| f.to_s.classify.constantize } + h + } + when Symbol + hash[entry] = Array.wrap(entry.to_s.classify.constantize) + else + raise "Unknown entry in config.extended_search_models #{ entry }" end + + hash + end end def args_for_search(query, subject, options = {}) options[:mode] ||= :extended