blob: 90a51cdc990a2a7e7e01bc9263ebd7a7264a5956 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# 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
|