Method: Thredded::SearchParser#parse_keywords

Defined in:
app/models/concerns/thredded/search_parser.rb

#parse_keywordsObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/models/concerns/thredded/search_parser.rb', line 16

def parse_keywords
  found_terms_hash = {}

  @keywords.each do |keyword|
    regex = Regexp.new(keyword + '\s*:\s*\w+', Regexp::IGNORECASE)
    keyword_scan = @query.scan(regex)
    @query = @query.gsub(regex, '')

    next if keyword_scan.blank?
    keyword_scan.each do |term|
      found_terms_hash[keyword] ||= []
      found_terms_hash[keyword] << term.delete(' ').split(':')[1]
    end
  end

  found_terms_hash
end