def call(data)
      matched = @rules.find do |rule|
        rule['pattern'].match(data)
      end
      if !matched.nil?
        languages = matched['language']
        if languages.is_a?(Array)
          languages.map{ |l| Language[l] }
        else
          Language[languages]
        end
      end
    end
def call(data)
      matched = @rules.find do |rule|
        rule['pattern'].match(data)
      end
      if !matched.nil?
        languages = matched['language']
        if languages.is_a?(Array)
          languages.map{ |l| Language[l] }
        else
          Language[languages]
        end
      end
    end
Internal: Perform the heuristic