From 69f4c9cc6e0bf8c3a0d3ae8ab775ab9baca31cd2 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Wed, 22 Jun 2011 10:37:20 -0500 Subject: [PATCH] Rename major to common --- lib/linguist/common.yml | 62 ------------------------------- lib/linguist/language.rb | 30 ++++++++++----- lib/linguist/languages.yml | 59 +++++++++++++++++++++++++++++ lib/linguist/repository.rb | 4 +- test/test_language.rb | 76 ++++++++++++++++++++++++++++++++++---- 5 files changed, 150 insertions(+), 81 deletions(-) delete mode 100644 lib/linguist/common.yml diff --git a/lib/linguist/common.yml b/lib/linguist/common.yml deleted file mode 100644 index e954af51..00000000 --- a/lib/linguist/common.yml +++ /dev/null @@ -1,62 +0,0 @@ -# The languages which will appear on http://github.com/languages -# -# This file should only be edited by GitHub staff - -- Ada -- ActionScript -- Arc -- Assembly -- ASP -- Boo -- C -- "C#" -- C++ -- Clojure -- CoffeeScript -- ColdFusion -- Common Lisp -- D -- Delphi -- Dylan -- Eiffel -- Emacs Lisp -- Erlang -- "F#" -- Factor -- FORTRAN -- Go -- Groovy -- Haskell -- HaXe -- Io -- Java -- JavaScript -- Lua -- Max/MSP -- Mirah -- Nu -- Objective-C -- Objective-J -- OCaml -- ooc -- Perl -- PHP -- Pure Data -- Python -- R -- Racket -- Ruby -- Scala -- Scheme -- sclang -- Self -- Shell -- Smalltalk -- SuperCollider -- Tcl -- Vala -- Verilog -- VHDL -- VimL -- Visual Basic -- XQuery diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index a5ecf7c1..bdbecae0 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -193,14 +193,14 @@ module Linguist @extensions = attributes[:extensions] || [] @filenames = attributes[:filenames] || [] - # Set popular, common, and searchable flags + # Set popular, major, and searchable flags @popular = attributes.key?(:popular) ? attributes[:popular] : false - @common = attributes.key?(:common) ? attributes[:common] : false + @major = attributes.key?(:major) ? attributes[:major] : false @searchable = attributes.key?(:searchable) ? attributes[:searchable] : true # If group name is set, save the name so we can lazy load it later if attributes[:group_name] - if common? + if major? warn "#{name} is a major langauage, it should not be grouped with #{attributes[:group_name]}" end @@ -303,11 +303,24 @@ module Linguist !popular? end - # Public: Is it common? + # Public: Is it major language? + # + # Major languages should be actual programming + # languages. Configuration formats should be excluded. # # Returns true or false - def common? - @common + def major? + @major + end + + # Public: Is it a minor language? + # + # Minor langauage include variants of major languages and + # markup languages like HTML and YAML. + # + # Returns true or false + def minor? + !major? end # Public: Is it searchable? @@ -358,7 +371,6 @@ module Linguist end popular = YAML.load_file(File.expand_path("../popular.yml", __FILE__)) - common = YAML.load_file(File.expand_path("../common.yml", __FILE__)) YAML.load_file(File.expand_path("../languages.yml", __FILE__)).each do |name, options| Language.create( @@ -370,8 +382,8 @@ module Linguist :search_term => options['search_term'], :extensions => options['extensions'], :filenames => options['filenames'], - :popular => popular.include?(name), - :common => common.include?(name) + :major => options['major'], + :popular => popular.include?(name) ) end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2ff8a8cc..0d1434db 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -9,6 +9,7 @@ # aliases - An Array of additional aliases (implicitly # includes name.downcase) # extension - An Array of associated extensions +# major - Boolean flag major programming languages # searchable - Boolean flag to enable searching (defaults to true) # search_term - Deprecated: Some langauges maybe indexed under a # different alias. Avoid defining new exceptions. @@ -19,6 +20,7 @@ # Please keep this list alphabetized. ASP: + major: true lexer: aspx-vb search_term: aspx-vb aliases: @@ -34,6 +36,7 @@ ASP: - .asp ActionScript: + major: true lexer: ActionScript 3 search_term: as3 aliases: @@ -42,6 +45,7 @@ ActionScript: - .as Ada: + major: true extensions: - .adb - .ads @@ -52,11 +56,13 @@ AppleScript: - .applescript Arc: + major: true lexer: Text only extensions: - .arc Assembly: + major: true lexer: NASM search_term: nasm aliases: @@ -82,6 +88,7 @@ BlitzMax: - .bmx Boo: + major: true extensions: - .boo @@ -91,11 +98,13 @@ Brainfuck: - .bf C: + major: true extensions: - .c - .h C#: + major: true search_term: csharp aliases: - csharp @@ -103,6 +112,7 @@ C#: - .cs C++: + major: true search_term: cpp aliases: - cpp @@ -133,16 +143,19 @@ ChucK: - .ck Clojure: + major: true extensions: - .clj CoffeeScript: + major: true extensions: - .coffee filenames: - Cakefile ColdFusion: + major: true lexer: Coldfusion HTML search_term: cfm aliases: @@ -152,6 +165,7 @@ ColdFusion: - .cfc Common Lisp: + major: true aliases: - lisp extensions: @@ -178,6 +192,7 @@ Cython: - .pxi D: + major: true extensions: - .d - .di @@ -196,6 +211,7 @@ Darcs Patch: - .dpatch Delphi: + major: true extensions: - .pas @@ -205,15 +221,18 @@ Diff: - .patch Dylan: + major: true extensions: - .dylan Eiffel: + major: true lexer: Text only extensions: - .e Emacs Lisp: + major: true lexer: Scheme aliases: - elisp @@ -222,11 +241,13 @@ Emacs Lisp: - .emacs Erlang: + major: true extensions: - .hrl - .erl F#: + major: true lexer: OCaml search_term: ocaml extensions: @@ -235,6 +256,7 @@ F#: - .fsx FORTRAN: + major: true lexer: Fortran extensions: - .f @@ -243,6 +265,7 @@ FORTRAN: - .F90 Factor: + major: true extensions: - .factor @@ -278,6 +301,7 @@ Gettext Catalog: - .pot Go: + major: true extensions: - .go @@ -293,6 +317,7 @@ Groff: - .7 Groovy: + major: true lexer: Java extensions: - .groovy @@ -323,6 +348,7 @@ HTML+PHP: - .phtml HaXe: + major: true lexer: haXe extensions: - .hx @@ -334,6 +360,7 @@ Haml: - .haml Haskell: + major: true extensions: - .hs - .hsc @@ -355,6 +382,7 @@ IRC log: - .weechatlog Io: + major: true extensions: - .io @@ -366,6 +394,7 @@ JSON: - .json Java: + major: true extensions: - .java - .pde @@ -380,6 +409,7 @@ Java Server Pages: - .jsp JavaScript: + major: true aliases: - js - node @@ -406,6 +436,7 @@ Literate Haskell: - .lhs Lua: + major: true extensions: - .lua - .nse @@ -434,6 +465,7 @@ Matlab: - .matlab Max/MSP: + major: true lexer: Text only extensions: - .mxt @@ -442,6 +474,7 @@ MiniD: # Legacy searchable: false Mirah: + major: true lexer: Ruby search_term: ruby extensions: @@ -463,6 +496,7 @@ Nimrod: - .nim Nu: + major: true lexer: Scheme aliases: - nush @@ -479,6 +513,7 @@ NumPy: - .numpyw OCaml: + major: true extensions: - .ml - .mly @@ -491,11 +526,13 @@ ObjDump: - .objdump Objective-C: + major: true extensions: - .m - .mm Objective-J: + major: true extensions: - .j - .sj @@ -507,6 +544,7 @@ OpenCL: - .cl PHP: + major: true extensions: - .php - .aw @@ -525,6 +563,7 @@ Parrot Internal Representation: - .pasm Perl: + major: true extensions: - .pl - .ph @@ -536,11 +575,13 @@ Perl: - .psgi Pure Data: + major: true lexer: Text only extensions: - .pd Python: + major: true extensions: - .py - .pyw @@ -555,6 +596,7 @@ Python traceback: - .pytb R: + major: true lexer: S extensions: - .r @@ -566,6 +608,7 @@ RHTML: - .rhtml Racket: + major: true lexer: Scheme extensions: - .rkt @@ -591,6 +634,7 @@ Redcode: - .cw Ruby: + major: true aliases: - jruby - macruby @@ -624,10 +668,12 @@ Sass: - .sass Scala: + major: true extensions: - .scala Scheme: + major: true extensions: - .sls - .ss @@ -635,11 +681,13 @@ Scheme: - .scm Self: + major: true lexer: Text only extensions: - .self Shell: + major: true lexer: Bash search_term: bash aliases: @@ -658,6 +706,7 @@ Shell: - .zshrc Smalltalk: + major: true extensions: - .st @@ -674,15 +723,18 @@ Standard ML: - .sml SuperCollider: + major: true lexer: Text only extensions: - .sc Tcl: + major: true extensions: - .tcl Tcsh: + group: Shell extensions: - .tcsh - .csh @@ -706,21 +758,25 @@ Textile: - .textile VHDL: + major: true lexer: Text only extensions: - .vhdl - .vhd Vala: + major: true extensions: - .vala Verilog: + major: true lexer: Text only extensions: - .v VimL: + major: true search_term: vim aliases: - vim @@ -731,6 +787,7 @@ VimL: - .gvimrc Visual Basic: + major: true lexer: Text only extensions: - .bas @@ -752,6 +809,7 @@ XML: - .rdf XQuery: + major: true extensions: - .xq - .xqm @@ -776,6 +834,7 @@ mupad: - .mu ooc: + major: true lexer: Ooc extensions: - .ooc diff --git a/lib/linguist/repository.rb b/lib/linguist/repository.rb index 2c00cf69..62519256 100644 --- a/lib/linguist/repository.rb +++ b/lib/linguist/repository.rb @@ -90,8 +90,8 @@ module Linguist language = blob.language - # Only include common langauges - if language && language.common? + # Only include major langauges + if language && language.major? @sizes[language] += blob.size end end diff --git a/test/test_language.rb b/test/test_language.rb index b9b66745..17d16cf4 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -196,9 +196,9 @@ class TestLanguage < Test::Unit::TestCase assert_equal Language['reStructuredText'], Language.find_by_alias('rst') end - def test_common_groups + def test_major_groups Language.all.each do |language| - if language.common? + if language.major? assert_equal language, language.group end end @@ -216,6 +216,7 @@ class TestLanguage < Test::Unit::TestCase assert_equal Language['Shell'], Language['Batchfile'].group assert_equal Language['Shell'], Language['Gentoo Ebuild'].group assert_equal Language['Shell'], Language['Gentoo Eclass'].group + assert_equal Language['Shell'], Language['Tcsh'].group end # Used for code search indexing. Changing any of these values may @@ -267,12 +268,71 @@ class TestLanguage < Test::Unit::TestCase assert Language['Brainfuck'].unpopular? end - def test_common - assert Language['Perl'].common? - assert Language['Python'].common? - assert Language['Ruby'].common? - assert !Language['Brainfuck'].common? - assert !Language['Makefile'].common? + def test_major + # Add an assertion to this list if you add/change any major + # settings in languages.yml. Please keep this list alphabetized. + assert Language['ASP'].major? + assert Language['ActionScript'].major? + assert Language['Ada'].major? + assert Language['Arc'].major? + assert Language['Assembly'].major? + assert Language['Boo'].major? + assert Language['C#'].major? + assert Language['C'].major? + assert Language['C++'].major? + assert Language['Clojure'].major? + assert Language['CoffeeScript'].major? + assert Language['ColdFusion'].major? + assert Language['Common Lisp'].major? + assert Language['D'].major? + assert Language['Delphi'].major? + assert Language['Dylan'].major? + assert Language['Eiffel'].major? + assert Language['Emacs Lisp'].major? + assert Language['Erlang'].major? + assert Language['F#'].major? + assert Language['FORTRAN'].major? + assert Language['Factor'].major? + assert Language['Go'].major? + assert Language['Groovy'].major? + assert Language['HaXe'].major? + assert Language['Haskell'].major? + assert Language['Io'].major? + assert Language['Java'].major? + assert Language['JavaScript'].major? + assert Language['Lua'].major? + assert Language['Max/MSP'].major? + assert Language['Nu'].major? + assert Language['OCaml'].major? + assert Language['Objective-C'].major? + assert Language['Objective-J'].major? + assert Language['PHP'].major? + assert Language['Perl'].major? + assert Language['Pure Data'].major? + assert Language['Python'].major? + assert Language['R'].major? + assert Language['Racket'].major? + assert Language['Ruby'].major? + assert Language['Scala'].major? + assert Language['Scheme'].major? + assert Language['Self'].major? + assert Language['Smalltalk'].major? + assert Language['SuperCollider'].major? + assert Language['Tcl'].major? + assert Language['VHDL'].major? + assert Language['Vala'].major? + assert Language['Verilog'].major? + assert Language['VimL'].major? + assert Language['Visual Basic'].major? + assert Language['XQuery'].major? + assert Language['ooc'].major? + end + + def test_minor + assert Language['Brainfuck'].minor? + assert Language['HTML'].minor? + assert Language['Makefile'].minor? + assert Language['YAML'].minor? end def test_searchable