class Rouge::Guessers::Source
def filter(lexers)
def filter(lexers) # don't bother reading the input if # we've already filtered to 1 return lexers if lexers.size == 1 # If we're filtering against *all* lexers, we only use confident return # values from analyze_text. But if we've filtered down already, we can trust # the analysis more. threshold = lexers.size < 10 ? 0 : 0.5 source_text = case @source when String @source when ->(s){ s.respond_to? :read } @source.read else raise 'invalid source' end Lexer.assert_utf8!(source_text) source_text = TextAnalyzer.new(source_text) collect_best(lexers, threshold: threshold) do |lexer| next unless lexer.methods(false).include? :analyze_text lexer.analyze_text(source_text) end end
def initialize(source)
def initialize(source) @source = source end