lib/rouge/lexer.rb in rouge-0.5.3 vs lib/rouge/lexer.rb in rouge-0.5.4
- old
+ new
@@ -161,11 +161,12 @@
guess :source => source
end
private
def filter_by_mimetype(lexers, mt)
- lexers.select { |lexer| lexer.mimetypes.include? mt }
+ filtered = lexers.select { |lexer| lexer.mimetypes.include? mt }
+ filtered.any? ? filtered : lexers
end
# 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
@@ -193,13 +194,22 @@
elsif score == best_seen
out << lexer
end
end
- out
+ out.any? ? out : lexers
end
def best_by_source(lexers, source, threshold=0)
+ source = case source
+ when String
+ source
+ when ->(s){ s.respond_to? :read }
+ source.read
+ else
+ raise 'invalid source'
+ end
+
assert_utf8!(source)
source = TextAnalyzer.new(source)
best_result = threshold