File: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/rouge-3.26.1/lib/rouge/guessers/source.rb
# frozen_string_literal: true
module Rouge
module Guessers
class Source < Guesser
include Util
attr_reader :source
def initialize(source)
@source = source
end
def filter(lexers)
# don't bother reading the input if
# we've already filtered to 1
return lexers if lexers.size == 1
source_text = get_source(@source)
Lexer.assert_utf8!(source_text)
source_text = TextAnalyzer.new(source_text)
collect_best(lexers) do |lexer|
next unless lexer.detectable?
lexer.detect?(source_text) ? 1 : nil
end
end
end
end
end