84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/tagalong/tagger.rb', line 84
def tags_matching(search_phrase, limit = nil)
if Tagalong.sunspot_enabled?
tmp_tagger_type = self.class.to_s
tag_search = Sunspot.search(Tagalong::TagalongTag) do
fulltext "\"#{search_phrase}\""
with :tagger_id, self.id
with :tagger_type, tmp_tagger_type
order_by(:number_of_references, :desc)
paginate(:page => 1, :per_page => limit) if limit
end
tag_search.results.map { |r| { :name => r.name, :number_of_references => r.number_of_references } }
else
if limit
self.tagalong_tags.order("number_of_references DESC").where("name like ?", ["%#{search_phrase}%"]).limit(limit).map { |r| { :name => r.name } }
else
self.tagalong_tags.order("number_of_references DESC").where("name like ?", ["%#{search_phrase}%"]).map { |r| { :name => r.name } }
end
end
end
|