mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add Language#find_by_extension
This commit is contained in:
@@ -2,22 +2,42 @@ require 'yaml'
|
||||
|
||||
module Linguist
|
||||
class Language
|
||||
@name_index = {}
|
||||
@name_index = {}
|
||||
@extension_index = {}
|
||||
|
||||
def self.create(attributes = {})
|
||||
language = new(attributes)
|
||||
|
||||
@name_index[language.name.downcase] = language
|
||||
|
||||
language.extensions.each do |extension|
|
||||
@extension_index[extension] = language
|
||||
@extension_index[extension.sub(/^./, '')] = language
|
||||
end
|
||||
|
||||
language
|
||||
end
|
||||
|
||||
def self.[](name)
|
||||
find_by_name(name)
|
||||
end
|
||||
|
||||
def self.find_by_name(name)
|
||||
@name_index[name.downcase]
|
||||
end
|
||||
|
||||
def self.[](name)
|
||||
find_by_name(name)
|
||||
def self.find_by_extension(filename)
|
||||
basename = File.basename(filename)
|
||||
|
||||
if basename[0] == ?.
|
||||
ext = basename
|
||||
elsif basename.include?('.')
|
||||
ext = File.extname(basename)
|
||||
else
|
||||
ext = basename
|
||||
end
|
||||
|
||||
@extension_index[ext]
|
||||
end
|
||||
|
||||
attr_reader :name, :extensions
|
||||
|
||||
Reference in New Issue
Block a user