Add Language#extensions

This commit is contained in:
Joshua Peek
2011-05-09 22:39:32 -05:00
parent 34b8d422bd
commit 80ff3883ac
2 changed files with 13 additions and 6 deletions

View File

@@ -4,8 +4,8 @@ module Linguist
class Language class Language
@name_index = {} @name_index = {}
def self.create(name) def self.create(attributes = {})
language = new(name) language = new(attributes)
@name_index[language.name.downcase] = language @name_index[language.name.downcase] = language
@@ -20,14 +20,15 @@ module Linguist
find_by_name(name) find_by_name(name)
end end
attr_reader :name attr_reader :name, :extensions
def initialize(name) def initialize(attributes = {})
@name = name @name = attributes[:name]
@extensions = attributes[:extensions] || []
end end
end end
YAML.load_file(File.expand_path("../extensions.yml", __FILE__)).each do |name, options| YAML.load_file(File.expand_path("../extensions.yml", __FILE__)).each do |name, options|
Language.create(name) Language.create(:name => name, :extensions => options[:ext])
end end
end end

View File

@@ -16,4 +16,10 @@ class TestLanguage < Test::Unit::TestCase
assert_equal "Python", Language['Python'].name assert_equal "Python", Language['Python'].name
assert_equal "Ruby", Language['Ruby'].name assert_equal "Ruby", Language['Ruby'].name
end end
def test_extensions
assert Language['Perl'].extensions.include?('.pl')
assert Language['Python'].extensions.include?('.py')
assert Language['Ruby'].extensions.include?('.rb')
end
end end