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
@name_index = {}
def self.create(name)
language = new(name)
def self.create(attributes = {})
language = new(attributes)
@name_index[language.name.downcase] = language
@@ -20,14 +20,15 @@ module Linguist
find_by_name(name)
end
attr_reader :name
attr_reader :name, :extensions
def initialize(name)
@name = name
def initialize(attributes = {})
@name = attributes[:name]
@extensions = attributes[:extensions] || []
end
end
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

View File

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