Add Language#lexer

This commit is contained in:
Joshua Peek
2011-05-09 23:12:37 -05:00
parent 09618cfed5
commit 7c0fe466a4
2 changed files with 15 additions and 3 deletions

View File

@@ -44,15 +44,20 @@ module Linguist
find_by_extension(ext)
end
attr_reader :name, :extensions
def initialize(attributes = {})
@name = attributes[:name] || raise(ArgumentError, "missing name")
@lexer = attributes[:lexer] || default_lexer
@extensions = attributes[:extensions] || []
end
attr_reader :name, :lexer, :extensions
def default_lexer
name.downcase.gsub(/\s/, '-')
end
end
YAML.load_file(File.expand_path("../extensions.yml", __FILE__)).each do |name, options|
Language.create(:name => name, :extensions => options[:ext])
Language.create(:name => name, :lexer => options[:lexer], :extensions => options[:ext])
end
end

View File

@@ -44,6 +44,13 @@ class TestLanguage < Test::Unit::TestCase
end
end
def test_lexer
assert_equal 'perl', Language['Perl'].lexer
assert_equal 'python', Language['Python'].lexer
assert_equal 'ruby', Language['Ruby'].lexer
assert_equal 'cpp', Language['C++'].lexer
end
def test_extensions
assert Language['Perl'].extensions.include?('.pl')
assert Language['Python'].extensions.include?('.py')