class Rouge::Guessers::Disambiguation

Public Class Methods

disambiguate(*patterns, &decider) click to toggle source
# File lib/rouge/guessers/disambiguation.rb, line 39
def self.disambiguate(*patterns, &decider)
  @disambiguators << Disambiguator.new(patterns, &decider)
end
disambiguators() click to toggle source
# File lib/rouge/guessers/disambiguation.rb, line 43
def self.disambiguators
  @disambiguators
end
new(filename, source) click to toggle source
# File lib/rouge/guessers/disambiguation.rb, line 9
def initialize(filename, source)
  @filename = File.basename(filename)
  @source = source
end

Public Instance Methods

contains?(text) click to toggle source
# File lib/rouge/guessers/disambiguation.rb, line 30
def contains?(text)
  return @analyzer.include?(text)
end
filter(lexers) click to toggle 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
matches?(re) click to toggle source
# File lib/rouge/guessers/disambiguation.rb, line 34
def matches?(re)
  return !!(@analyzer =~ re)
end