Sha256: 3f9ab562f540d90e1ede4b87f34bf0ce16a659b30995631e1dca201838076780

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

class IndexerLogger<Logger
  def initialize
    super($stdout)
    @level=Picolena::LOGLEVEL
    @found_languages={}
    @supported_filetypes={}
    @unsupported_filetypes={}
  end

  def start_indexing
    @start_time=Time.now
    debug "Indexing every directory"
  end

  def add_document(document)
    debug ["Added : #{document[:complete_path]}",document[:language] && " ("<<document[:language]<<")"].join
    @found_languages.add(document[:language]) if document[:language]
    @supported_filetypes.add(document[:filetype])
  end

  def reject_document(document, error)
    @unsupported_filetypes.add(document[:filetype])
    debug "Added without content (#{error.message}) : #{document[:complete_path]}"
  end
  
  def show_report
    describe :found_languages, :supported_filetypes, :unsupported_filetypes
    info "Time needed              : #{Time.now-@start_time} s."
  end
  
  private

  def describe(*instance_variable_names)
    instance_variable_names.each{|var_name|
      hash=instance_variable_get("@#{var_name}")
      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?
    }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
picolena-0.2.0 lib/picolena/templates/lib/indexer_logger.rb
picolena-0.2.2 lib/picolena/templates/lib/indexer_logger.rb