root/trunk/lib/picolena/templates/lib/indexer_logger.rb

Revision 336, 1.2 kB (checked in by eric.dumin..@gmail.com, 7 months ago)

Defining IndexerLogger? level in environments/*.rb

Line 
1 class IndexerLogger<Logger
2   def initialize
3     super($stdout)
4     @level=Picolena::LOGLEVEL
5     @found_languages={}
6     @supported_filetypes={}
7     @unsupported_filetypes={}
8   end
9
10   def start_indexing
11     @start_time=Time.now
12     debug "Indexing every directory"
13   end
14
15   def add_document(document)
16     debug ["Added : #{document[:complete_path]}",document[:language] && " ("<<document[:language]<<")"].join
17     @found_languages.add(document[:language]) if document[:language]
18     @supported_filetypes.add(document[:filetype])
19   end
20
21   def reject_document(document, error)
22     @unsupported_filetypes.add(document[:filetype])
23     debug "Added without content (#{error.message}) : #{document[:complete_path]}"
24   end
25  
26   def show_report
27     describe :found_languages, :supported_filetypes, :unsupported_filetypes
28     info "Time needed              : #{Time.now-@start_time} s."
29   end
30  
31   private
32
33   def describe(*instance_variable_names)
34     instance_variable_names.each{|var_name|
35       hash=instance_variable_get("@#{var_name}")
36       info var_name.to_s.humanize.ljust(25)<<": "<<hash.reject{|k,v| k.blank?}.sort_by{|k,v| v[:size]}.reverse.collect{|k,v| "#{k.downcase} (#{v[:size]})"}.join(", ") unless hash.empty?
37     }
38   end
39 end
Note: See TracBrowser for help on using the browser.