Merge pull request #1608 from github/just-yajl

Use yajl since it is already a dependency
This commit is contained in:
Brandon Keepers
2014-10-31 18:03:28 -04:00
5 changed files with 14 additions and 19 deletions

View File

@@ -1,8 +1,8 @@
require 'bundler/setup' require 'bundler/setup'
require 'json'
require 'rake/clean' require 'rake/clean'
require 'rake/testtask' require 'rake/testtask'
require 'yaml' require 'yaml'
require 'yajl'
task :default => :test task :default => :test
@@ -20,15 +20,13 @@ end
task :samples do task :samples do
require 'linguist/samples' require 'linguist/samples'
require 'yajl' json = Yajl.dump(Linguist::Samples.data, :pretty => true)
data = Linguist::Samples.data File.write 'lib/linguist/samples.json', json
json = Yajl::Encoder.encode(data, :pretty => true)
File.open('lib/linguist/samples.json', 'w') { |io| io.write json }
end end
task :build_gem => :samples do task :build_gem => :samples do
languages = YAML.load_file("lib/linguist/languages.yml") languages = YAML.load_file("lib/linguist/languages.yml")
File.write("lib/linguist/languages.json", JSON.dump(languages)) File.write("lib/linguist/languages.json", Yajl.dump(languages))
`gem build github-linguist.gemspec` `gem build github-linguist.gemspec`
File.delete("lib/linguist/languages.json") File.delete("lib/linguist/languages.json")
end end
@@ -72,11 +70,11 @@ namespace :benchmark do
reference_file = ENV["REFERENCE"] reference_file = ENV["REFERENCE"]
candidate_file = ENV["CANDIDATE"] candidate_file = ENV["CANDIDATE"]
reference = JSON.parse(File.read(reference_file)) reference = Yajl.load(File.read(reference_file))
reference_counts = Hash.new(0) reference_counts = Hash.new(0)
reference.each { |filename, language| reference_counts[language] += 1 } reference.each { |filename, language| reference_counts[language] += 1 }
candidate = JSON.parse(File.read(candidate_file)) candidate = Yajl.load(File.read(candidate_file))
candidate_counts = Hash.new(0) candidate_counts = Hash.new(0)
candidate.each { |filename, language| candidate_counts[language] += 1 } candidate.each { |filename, language| candidate_counts[language] += 1 }
@@ -126,14 +124,12 @@ namespace :classifier do
def each_public_gist def each_public_gist
require 'open-uri' require 'open-uri'
require 'json'
url = "https://api.github.com/gists/public" url = "https://api.github.com/gists/public"
loop do loop do
resp = open(url) resp = open(url)
url = resp.meta['link'][/<([^>]+)>; rel="next"/, 1] url = resp.meta['link'][/<([^>]+)>; rel="next"/, 1]
gists = JSON.parse(resp.read) gists = Yajl.load(resp.read)
for gist in gists for gist in gists
for filename, attrs in gist['files'] for filename, attrs in gist['files']

View File

@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
s.add_dependency 'pygments.rb', '~> 0.6.0' s.add_dependency 'pygments.rb', '~> 0.6.0'
s.add_dependency 'rugged', '~> 0.21.1b2' s.add_dependency 'rugged', '~> 0.21.1b2'
s.add_development_dependency 'json'
s.add_development_dependency 'mocha' s.add_development_dependency 'mocha'
s.add_development_dependency 'pry' s.add_development_dependency 'pry'
s.add_development_dependency 'rake' s.add_development_dependency 'rake'

View File

@@ -2,7 +2,7 @@ require 'escape_utils'
require 'pygments' require 'pygments'
require 'yaml' require 'yaml'
begin begin
require 'json' require 'yajl'
rescue LoadError rescue LoadError
end end
@@ -533,8 +533,8 @@ module Linguist
languages_yml = File.expand_path("../languages.yml", __FILE__) languages_yml = File.expand_path("../languages.yml", __FILE__)
languages_json = File.expand_path("../languages.json", __FILE__) languages_json = File.expand_path("../languages.json", __FILE__)
if File.exist?(languages_json) && defined?(JSON) if File.exist?(languages_json) && defined?(Yajl)
languages = JSON.load(File.read(languages_json)) languages = Yajl.load(File.read(languages_json))
else else
languages = YAML.load_file(languages_yml) languages = YAML.load_file(languages_yml)
end end

View File

@@ -1,5 +1,5 @@
begin begin
require 'json' require 'yajl'
rescue LoadError rescue LoadError
require 'yaml' require 'yaml'
end end
@@ -19,7 +19,7 @@ module Linguist
# Hash of serialized samples object # Hash of serialized samples object
def self.cache def self.cache
@cache ||= begin @cache ||= begin
serializer = defined?(JSON) ? JSON : YAML serializer = defined?(Yajl) ? Yajl : YAML
serializer.load(File.read(PATH)) serializer.load(File.read(PATH))
end end
end end

View File

@@ -16,11 +16,11 @@ class TestSamples < Test::Unit::TestCase
warn "Samples database is out of date. Run `bundle exec rake samples`." warn "Samples database is out of date. Run `bundle exec rake samples`."
expected = Tempfile.new('expected.json') expected = Tempfile.new('expected.json')
expected.write Yajl::Encoder.encode(serialized, :pretty => true) expected.write Yajl.dump(serialized, :pretty => true)
expected.close expected.close
actual = Tempfile.new('actual.json') actual = Tempfile.new('actual.json')
actual.write Yajl::Encoder.encode(latest, :pretty => true) actual.write Yajl.dump(latest, :pretty => true)
actual.close actual.close
expected.unlink expected.unlink