self.detect

in lib/linguist/language.rb [88:109]


    def self.detect(name, data, mode = nil)
      
      
      
      if File.extname(name).empty? && mode && (mode.to_i(8) & 05) == 05
        name += ".script!"
      end

      possible_languages = find_by_filename(name)

      if possible_languages.length > 1
        data = data.call() if data.respond_to?(:call)
        if data.nil? || data == ""
          nil
        elsif result = Classifier.classify(Samples::DATA, data, possible_languages.map(&:name)).first
          Language[result[0]]
        end
      else
        possible_languages.first
      end
    end