1 require 'workers/search_helper_job'
4 def shorten_description(text, chars)
5 text.sub /^(.{0,#{chars}}\b).*/m, '\1'
9 desc.gsub(/([\w.]+)@([\w.]+)/,'\1 [at] xxx').gsub(/\n/, "<br/>")
12 # returns an array of tokens: :prev, :next, :dots or
14 def paginator_list(page_count, current_page)
15 range = 3 #show 4 pages around current page
17 return list if page_count == 1
19 list << :prev unless current_page == 1
21 # add start block unless midrange includes first page
22 if current_page > range+1
23 1.upto current_page-range-1 do |page|
32 midstart = current_page-range < 1 ? 1 : current_page-range
33 midend = page_count-range < current_page ? page_count : current_page+range
34 midstart.upto midend do |page|
38 list << :dots if midend < page_count-range-1
40 if page_count > current_page+range
41 (page_count-range).upto page_count do |page|
42 next if page <= midend
47 list << :next if current_page != page_count
51 def default_baseproject
56 r = Rails.cache.read('top_downloads')
58 # it's possible we will have to enqueue one on cold caches
59 Delayed::Job.enqueue SearchHelperJob.new unless r