mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Separate out language guessing
This commit is contained in:
@@ -224,7 +224,7 @@ module Linguist
|
|||||||
def indexable?
|
def indexable?
|
||||||
if !text?
|
if !text?
|
||||||
false
|
false
|
||||||
elsif !Language.find_by_extension(extname)
|
elsif !language?
|
||||||
false
|
false
|
||||||
elsif !language.searchable?
|
elsif !language.searchable?
|
||||||
false
|
false
|
||||||
@@ -262,28 +262,43 @@ module Linguist
|
|||||||
#
|
#
|
||||||
# Returns a Language object
|
# Returns a Language object
|
||||||
def language
|
def language
|
||||||
|
guess_language || Language['Text']
|
||||||
|
end
|
||||||
|
|
||||||
|
# Internal: Guess language
|
||||||
|
#
|
||||||
|
# Returns a Language or nil
|
||||||
|
def guess_language
|
||||||
if text?
|
if text?
|
||||||
# If its a header file (.h) try to guess the language
|
# If its a header file (.h) try to guess the language
|
||||||
if language = header_language
|
if language = header_language
|
||||||
language
|
language
|
||||||
|
|
||||||
# See if there is a Language for the extension
|
# See if there is a Language for the extension
|
||||||
elsif Language.find_by_extension(extname)
|
elsif language = Language.find_by_extension(extname)
|
||||||
pathname.language
|
language
|
||||||
|
|
||||||
# Try to detect Language from shebang line
|
# Try to detect Language from shebang line
|
||||||
elsif language = shebang_language
|
elsif language = shebang_language
|
||||||
language
|
language
|
||||||
|
|
||||||
# Default to Pathname#language
|
|
||||||
else
|
else
|
||||||
pathname.language
|
nil
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
Language['Text']
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Internal: Has a language.
|
||||||
|
#
|
||||||
|
# Will return false if language was guessed to be Text.
|
||||||
|
#
|
||||||
|
# Returns true or false.
|
||||||
|
def language?
|
||||||
|
guess_language ? true : false
|
||||||
|
end
|
||||||
|
|
||||||
# Deprecated: Get the lexer of the blob.
|
# Deprecated: Get the lexer of the blob.
|
||||||
#
|
#
|
||||||
# Returns a Lexer.
|
# Returns a Lexer.
|
||||||
|
|||||||
@@ -68,6 +68,15 @@ module Linguist
|
|||||||
Language.find_by_extension(extname) || Language['Text']
|
Language.find_by_extension(extname) || Language['Text']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Internal: Has a language.
|
||||||
|
#
|
||||||
|
# Will return false if language was guessed to be Text.
|
||||||
|
#
|
||||||
|
# Returns true or false.
|
||||||
|
def language?
|
||||||
|
Language.find_by_extension(extname) ? true : false
|
||||||
|
end
|
||||||
|
|
||||||
# Deprecated: Get the lexer of the path
|
# Deprecated: Get the lexer of the path
|
||||||
#
|
#
|
||||||
# Returns a Lexer.
|
# Returns a Lexer.
|
||||||
@@ -101,12 +110,19 @@ module Linguist
|
|||||||
@content_type ||= Mime.content_type_for(extname)
|
@content_type ||= Mime.content_type_for(extname)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Determine if the Pathname is a binary mime type.
|
||||||
|
#
|
||||||
|
# Returns true or false.
|
||||||
|
def binary?
|
||||||
|
@binary ||= language? ? false : Mime.binary?(extname)
|
||||||
|
end
|
||||||
|
|
||||||
# Public: Determine if the Pathname should be served as an
|
# Public: Determine if the Pathname should be served as an
|
||||||
# attachment.
|
# attachment.
|
||||||
#
|
#
|
||||||
# Returns true or false.
|
# Returns true or false.
|
||||||
def attachment?
|
def attachment?
|
||||||
@attachment ||= Mime.attachment?(extname)
|
@attachment ||= language? ? false : Mime.attachment?(extname)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Public: Get the Content-Disposition header value
|
# Public: Get the Content-Disposition header value
|
||||||
|
|||||||
Reference in New Issue
Block a user