Moving linguist detection into rake task and ignoring diff for now.

This commit is contained in:
Arfon Smith
2014-07-22 15:33:58 -05:00
parent 8d524d618e
commit 84ea710d42
2 changed files with 11 additions and 7 deletions

View File

@@ -26,8 +26,6 @@ end
namespace :benchmark do namespace :benchmark do
require 'git' require 'git'
require 'linguist/language' require 'linguist/language'
require 'linguist/diff'
require 'json'
git = Git.open('.') git = Git.open('.')
@@ -59,6 +57,7 @@ namespace :benchmark do
git.reset_hard(compare) git.reset_hard(compare)
# RUN BENCHMARK AGAIN # RUN BENCHMARK AGAIN
# `rake benchmark:index`
Rake::Task["benchmark:index"].execute(:commit => compare) Rake::Task["benchmark:index"].execute(:commit => compare)
git.branch(current_branch).checkout git.branch(current_branch).checkout
@@ -73,7 +72,7 @@ namespace :benchmark do
desc "Build benchmark index" desc "Build benchmark index"
task :index, [:commit] do |t, args| task :index, [:commit] do |t, args|
require 'shellwords' require 'linguist/language'
results = Hash.new results = Hash.new
languages = Dir.glob('benchmark/samples/*') languages = Dir.glob('benchmark/samples/*')
@@ -86,12 +85,15 @@ namespace :benchmark do
files.each do |file| files.each do |file|
next unless File.file?(file) next unless File.file?(file)
puts " #{file}" puts " #{file}"
result = %x{bundle exec linguist #{Shellwords.escape(file)} --simple}
blob = Linguist::FileBlob.new(file, Dir.pwd)
result = blob.language
filename = File.basename(file) filename = File.basename(file)
if result.chomp.empty? # No results if result.nil? # No results
results[lang][filename] = "No language" results[lang][filename] = "No language"
else else
results[lang][filename] = result.chomp results[lang][filename] = result.name
end end
end end
end end
@@ -101,6 +103,8 @@ namespace :benchmark do
desc "Compare results" desc "Compare results"
task :results do task :results do
# `diff -u file1 file2`
reference, compare = ENV['compare'].split('...') reference, compare = ENV['compare'].split('...')
reference_classifications_file = "benchmark/results/#{reference}_output.json" reference_classifications_file = "benchmark/results/#{reference}_output.json"

View File

@@ -42,7 +42,7 @@ module Linguist
# Returns an array of Languages or [] # Returns an array of Languages or []
def self.disambiguate_c(data, languages) def self.disambiguate_c(data, languages)
matches = [] matches = []
matches << Language["Objective-C"] if data.include?("i") matches << Language["Objective-C"] if data.include?("@interface")
matches << Language["C++"] if data.include?("#include <cstdint>") matches << Language["C++"] if data.include?("#include <cstdint>")
matches matches
end end