Class: Rouge::Guessers::Filename

Inherits:
Rouge::Guesser show all
Defined in:
lib/rouge/guessers/filename.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Rouge::Guesser

#collect_best, guess

Constructor Details

#initialize(filename) ⇒ Filename


7
8
9
# File 'lib/rouge/guessers/filename.rb', line 7

def initialize(filename)
  @filename = filename
end

Instance Attribute Details

#fnameObject (readonly)

Returns the value of attribute fname


6
7
8
# File 'lib/rouge/guessers/filename.rb', line 6

def fname
  @fname
end

Instance Method Details

#filter(lexers) ⇒ Object

returns a list of lexers that match the given filename with equal specificity (i.e. number of wildcards in the pattern). This helps disambiguate between, e.g. the Nginx lexer, which matches nginx.conf, and the Conf lexer, which matches *.conf. In this case, nginx will win because the pattern has no wildcards, while *.conf has one.


17
18
19
20
21
22
23
24
# File 'lib/rouge/guessers/filename.rb', line 17

def filter(lexers)
  mapping = {}
  lexers.each do |lexer|
    mapping[lexer.name] = lexer.filenames || []
  end

  GlobMapping.new(mapping, @filename).filter(lexers)
end