diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 35a6fd2e..f7286f01 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -43,6 +43,18 @@ module Linguist @lexer_index.to_a end + def self.lexer2name(lexer) + if language = find_by_lexer(lexer) + language.name + end + end + + def self.name2lexer(name) + if language = find_by_name(name) + language.lexer + end + end + def initialize(attributes = {}) @name = attributes[:name] || raise(ArgumentError, "missing name") @lexer = attributes[:lexer] || default_lexer diff --git a/test/test_language.rb b/test/test_language.rb index c85bd972..9f6f1359 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -29,6 +29,18 @@ class TestLanguage < Test::Unit::TestCase assert_nil Language.find_by_lexer('kt') end + def test_lexer2name + assert_equal 'Ruby', Language.lexer2name('ruby') + assert_equal 'Python', Language.lexer2name('python') + assert_nil Language.lexer2name('kt') + end + + def test_name2lexer + assert_equal 'ruby', Language.name2lexer('Ruby') + assert_equal 'python', Language.name2lexer('Python') + assert_nil Language.name2lexer('defunkt') + end + def test_name assert_equal "Perl", Language['Perl'].name assert_equal "Python", Language['Python'].name