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

Returns a new instance of Filename.


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

def initialize(filename)
  @filename = filename
end

Instance Attribute Details

#fnameObject (readonly)

Returns the value of attribute fname


4
5
6
# File 'lib/rouge/guessers/filename.rb', line 4

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.


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

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

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