in lib/linguist/language.rb [36:78]
def self.create(attributes = {})
language = new(attributes)
@languages << language
if @name_index.key?(language.name)
raise ArgumentError, "Duplicate language name: #{language.name}"
end
@index[language.name] = @name_index[language.name] = language
language.aliases.each do |name|
if @alias_index.key?(name)
raise ArgumentError, "Duplicate alias: #{name}"
end
@index[name] = @alias_index[name] = language
end
language.extensions.each do |extension|
if extension !~ /^\./
raise ArgumentError, "Extension is missing a '.': #{extension.inspect}"
end
@extension_index[extension] << language
end
if @primary_extension_index.key?(language.primary_extension)
raise ArgumentError, "Duplicate primary extension: #{language.primary_extension}"
end
@primary_extension_index[language.primary_extension] = language
language.filenames.each do |filename|
@filename_index[filename] << language
end
language
end