From 80ff3883ac4b525deb868f9562265e7afd8c4dfd Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Mon, 9 May 2011 22:39:32 -0500 Subject: [PATCH] Add Language#extensions --- lib/linguist/language.rb | 13 +++++++------ test/test_language.rb | 6 ++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 66606b9a..b4c2d5f0 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -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 diff --git a/test/test_language.rb b/test/test_language.rb index f2f7138d..b3010e43 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -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