mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
Add Language#lexer
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user