class Rouge::Guessers::Disambiguation
Public Class Methods
Source
# File lib/rouge/guessers/disambiguation.rb, line 39 def self.disambiguate(*patterns, &decider) @disambiguators << Disambiguator.new(patterns, &decider) end
Source
# File lib/rouge/guessers/disambiguation.rb, line 43 def self.disambiguators @disambiguators end
Source
# File lib/rouge/guessers/disambiguation.rb, line 9 def initialize(filename, source) @filename = File.basename(filename) @source = source end
Public Instance Methods
Source
# File lib/rouge/guessers/disambiguation.rb, line 30 def contains?(text) return @analyzer.include?(text) end
Source
# File lib/rouge/guessers/disambiguation.rb, line 14 def filter(lexers) return lexers if lexers.size == 1 return lexers if lexers.size == Lexer.all.size @analyzer = TextAnalyzer.new(get_source(@source)) self.class.disambiguators.each do |disambiguator| next unless disambiguator.match?(@filename) filtered = disambiguator.decide!(self) return filtered if filtered end return lexers end
Source
# File lib/rouge/guessers/disambiguation.rb, line 34 def matches?(re) return !!(@analyzer =~ re) end