Merge branch 'master' into brightscript_support

Conflicts:
	lib/linguist/samples.json
This commit is contained in:
Max Peterson
2013-12-05 13:02:00 -06:00
9 changed files with 78 additions and 23 deletions

View File

@@ -1,2 +1,7 @@
source 'https://rubygems.org' source 'https://rubygems.org'
gemspec gemspec
if RUBY_VERSION < "1.9.3"
# escape_utils 1.0.0 requires 1.9.3 and above
gem "escape_utils", "0.3.2"
end

View File

@@ -1,5 +1,7 @@
require 'rake/clean' require 'rake/clean'
require 'rake/testtask' require 'rake/testtask'
require 'yaml'
require 'json'
task :default => :test task :default => :test
@@ -13,6 +15,13 @@ task :samples do
File.open('lib/linguist/samples.json', 'w') { |io| io.write json } File.open('lib/linguist/samples.json', 'w') { |io| io.write json }
end end
task :build_gem do
languages = YAML.load_file("lib/linguist/languages.yml")
File.write("lib/linguist/languages.json", JSON.dump(languages))
`gem build github-linguist.gemspec`
File.delete("lib/linguist/languages.json")
end
namespace :classifier do namespace :classifier do
LIMIT = 1_000 LIMIT = 1_000

View File

@@ -1,6 +1,6 @@
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = 'github-linguist' s.name = 'github-linguist'
s.version = '2.9.8' s.version = '2.10.0'
s.summary = "GitHub Language detection" s.summary = "GitHub Language detection"
s.authors = "GitHub" s.authors = "GitHub"
@@ -10,10 +10,10 @@ Gem::Specification.new do |s|
s.executables << 'linguist' s.executables << 'linguist'
s.add_dependency 'charlock_holmes', '~> 0.6.6' s.add_dependency 'charlock_holmes', '~> 0.6.6'
s.add_dependency 'escape_utils', '~> 0.3.1' s.add_dependency 'escape_utils', '>= 0.3.1'
s.add_dependency 'mime-types', '~> 1.19' s.add_dependency 'mime-types', '~> 1.19'
s.add_dependency 'pygments.rb', '~> 0.5.2' s.add_dependency 'pygments.rb', '~> 0.5.4'
s.add_development_dependency 'json' s.add_development_dependency 'json'
s.add_development_dependency 'mocha' s.add_development_dependency 'mocha'
s.add_development_dependency 'rake' s.add_development_dependency 'rake'

View File

@@ -1,6 +1,10 @@
require 'escape_utils' require 'escape_utils'
require 'pygments' require 'pygments'
require 'yaml' require 'yaml'
begin
require 'json'
rescue LoadError
end
require 'linguist/classifier' require 'linguist/classifier'
require 'linguist/samples' require 'linguist/samples'
@@ -455,7 +459,16 @@ module Linguist
filenames = Samples::DATA['filenames'] filenames = Samples::DATA['filenames']
popular = YAML.load_file(File.expand_path("../popular.yml", __FILE__)) popular = YAML.load_file(File.expand_path("../popular.yml", __FILE__))
YAML.load_file(File.expand_path("../languages.yml", __FILE__)).each do |name, options| languages_yml = File.expand_path("../languages.yml", __FILE__)
languages_json = File.expand_path("../languages.json", __FILE__)
if File.exist?(languages_json) && defined?(JSON)
languages = JSON.load(File.read(languages_json))
else
languages = YAML.load_file(languages_yml)
end
languages.each do |name, options|
options['extensions'] ||= [] options['extensions'] ||= []
options['filenames'] ||= [] options['filenames'] ||= []

View File

@@ -70,6 +70,7 @@ Ada:
Agda: Agda:
type: programming type: programming
color: "#467C91"
primary_extension: .agda primary_extension: .agda
ApacheConf: ApacheConf:
@@ -384,7 +385,7 @@ D-ObjDump:
DM: DM:
type: programming type: programming
color: "#075ff1" color: "#075ff1"
lexer: Text only lexer: C++
primary_extension: .dm primary_extension: .dm
aliases: aliases:
- byond - byond
@@ -752,6 +753,8 @@ JSON:
- .sublime_session - .sublime_session
- .sublime-settings - .sublime-settings
- .sublime-workspace - .sublime-workspace
filenames:
- composer.lock
Jade: Jade:
group: HTML group: HTML
@@ -947,15 +950,17 @@ Matlab:
Max: Max:
type: programming type: programming
color: "#ce279c" color: "#ce279c"
lexer: Text only lexer: JSON
aliases: aliases:
- max/msp - max/msp
- maxmsp - maxmsp
search_term: max/msp search_term: max/msp
primary_extension: .mxt primary_extension: .maxpat
extensions: extensions:
- .maxhelp - .maxhelp
- .maxpat - .maxproj
- .mxt
- .pat
MiniD: # Legacy MiniD: # Legacy
searchable: false searchable: false
@@ -1478,6 +1483,7 @@ Tcsh:
TeX: TeX:
type: markup type: markup
color: "#3D6117"
ace_mode: latex ace_mode: latex
aliases: aliases:
- latex - latex
@@ -1545,6 +1551,14 @@ VHDL:
lexer: vhdl lexer: vhdl
color: "#543978" color: "#543978"
primary_extension: .vhdl primary_extension: .vhdl
extensions:
- .vhd
- .vhf
- .vhi
- .vho
- .vhs
- .vht
- .vhw
Vala: Vala:
type: programming type: programming
@@ -1616,6 +1630,7 @@ XML:
- .grxml - .grxml
- .jelly - .jelly
- .kml - .kml
- .launch
- .mxml - .mxml
- .plist - .plist
- .pluginspec - .pluginspec
@@ -1625,6 +1640,7 @@ XML:
- .rdf - .rdf
- .rss - .rss
- .scxml - .scxml
- .srdf
- .svg - .svg
- .tmCommand - .tmCommand
- .tmLanguage - .tmLanguage
@@ -1633,12 +1649,14 @@ XML:
- .tmTheme - .tmTheme
- .tml - .tml
- .ui - .ui
- .urdf
- .vxml - .vxml
- .wsdl - .wsdl
- .wxi - .wxi
- .wxl - .wxl
- .wxs - .wxs
- .x3d - .x3d
- .xacro
- .xaml - .xaml
- .xlf - .xlf
- .xliff - .xliff
@@ -1691,6 +1709,7 @@ YAML:
primary_extension: .yml primary_extension: .yml
extensions: extensions:
- .reek - .reek
- .rviz
- .yaml - .yaml
eC: eC:

View File

@@ -152,9 +152,7 @@
".script!" ".script!"
], ],
"JSON": [ "JSON": [
".json", ".json"
".maxhelp",
".maxpat"
], ],
"Julia": [ "Julia": [
".jl" ".jl"
@@ -208,6 +206,8 @@
".m" ".m"
], ],
"Max": [ "Max": [
".maxhelp",
".maxpat",
".mxt" ".mxt"
], ],
"Monkey": [ "Monkey": [
@@ -23186,10 +23186,10 @@
"logger": 2 "logger": 2
}, },
"JSON": { "JSON": {
"{": 143, "{": 17,
"}": 143, "}": 17,
"[": 165, "[": 2,
"]": 165, "]": 2,
"true": 3 "true": 3
}, },
"Julia": { "Julia": {
@@ -28521,6 +28521,10 @@
"contents.colheaders": 1 "contents.colheaders": 1
}, },
"Max": { "Max": {
"{": 126,
"}": 126,
"[": 163,
"]": 163,
"max": 1, "max": 1,
"v2": 1, "v2": 1,
";": 39, ";": 39,
@@ -43668,7 +43672,7 @@
"Jade": 3, "Jade": 3,
"Java": 8987, "Java": 8987,
"JavaScript": 76934, "JavaScript": 76934,
"JSON": 619, "JSON": 41,
"Julia": 247, "Julia": 247,
"Kotlin": 155, "Kotlin": 155,
"KRL": 25, "KRL": 25,
@@ -43685,7 +43689,7 @@
"Makefile": 50, "Makefile": 50,
"Markdown": 1, "Markdown": 1,
"Matlab": 11942, "Matlab": 11942,
"Max": 136, "Max": 714,
"Monkey": 207, "Monkey": 207,
"MoonScript": 1718, "MoonScript": 1718,
"Nemerle": 17, "Nemerle": 17,
@@ -43795,7 +43799,7 @@
"Jade": 1, "Jade": 1,
"Java": 6, "Java": 6,
"JavaScript": 20, "JavaScript": 20,
"JSON": 5, "JSON": 3,
"Julia": 1, "Julia": 1,
"Kotlin": 1, "Kotlin": 1,
"KRL": 1, "KRL": 1,
@@ -43812,7 +43816,7 @@
"Makefile": 2, "Makefile": 2,
"Markdown": 1, "Markdown": 1,
"Matlab": 39, "Matlab": 39,
"Max": 1, "Max": 3,
"Monkey": 1, "Monkey": 1,
"MoonScript": 1, "MoonScript": 1,
"Nemerle": 1, "Nemerle": 1,
@@ -43877,5 +43881,5 @@
"Xtend": 2, "Xtend": 2,
"YAML": 1 "YAML": 1
}, },
"md5": "d77910fe214f3654d7538485c7388f89" "md5": "647da23cd1eb02653f50ff9bfbb6e70d"
} }

View File

@@ -1,4 +1,8 @@
require 'yaml' begin
require 'json'
rescue LoadError
require 'yaml'
end
require 'linguist/md5' require 'linguist/md5'
require 'linguist/classifier' require 'linguist/classifier'
@@ -14,7 +18,8 @@ module Linguist
# Hash of serialized samples object # Hash of serialized samples object
if File.exist?(PATH) if File.exist?(PATH)
DATA = YAML.load_file(PATH) serializer = defined?(JSON) ? JSON : YAML
DATA = serializer.load(File.read(PATH))
end end
# Public: Iterate over each sample. # Public: Iterate over each sample.