Updated Spanish translation (Manuel Garcia Ortega).
[gitredmine.git] / app / helpers / search_helper.rb
blob75412c70afeb08efb6f14b6fd131f0bb326d8064
1 # redMine - project management software
2 # Copyright (C) 2006-2007  Jean-Philippe Lang
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 module SearchHelper
19   def highlight_tokens(text, tokens)
20     return text unless text && tokens && !tokens.empty?
21     regexp = Regexp.new "(#{tokens.join('|')})", Regexp::IGNORECASE    
22     result = ''
23     text.split(regexp).each_with_index do |words, i|
24       if result.length > 1200
25         # maximum length of the preview reached
26         result << '...'
27         break
28       end
29       result << (i.even? ? h(words.length > 100 ? "#{words[0..44]} ... #{words[-45..-1]}" : words) : content_tag('span', h(words), :class => 'highlight'))
30     end
31     result
32   end
33 end