diff --git a/lib/linguist/pathname.rb b/lib/linguist/pathname.rb index 749d43f6..7c6ee3d8 100644 --- a/lib/linguist/pathname.rb +++ b/lib/linguist/pathname.rb @@ -22,6 +22,22 @@ module Linguist Language.find_by_extension(extname) end + def lexer + if language + language.lexer + else + 'plain' + end + end + + def lexer_name + if language + language.name + else + 'Text' + end + end + def to_s @path.dup end diff --git a/test/test_pathname.rb b/test/test_pathname.rb index 8aad93be..70db3c87 100644 --- a/test/test_pathname.rb +++ b/test/test_pathname.rb @@ -41,4 +41,21 @@ class TestPathname < Test::Unit::TestCase assert_equal Language['Nu'], Pathname.new("itty.nu").language assert_nil Pathname.new("defun.kt").language end + + def test_lexer + assert_equal 'ruby', Pathname.new("file.rb").lexer + assert_equal 'ruby', Pathname.new("Rakefile").lexer + assert_equal 'bash', Pathname.new("file.ebuild").lexer + assert_equal 'python', Pathname.new("itty.py").lexer + assert_equal 'scheme', Pathname.new("itty.nu").lexer + assert_equal 'plain', Pathname.new("defun.kt").lexer + end + + def test_lexer_name + assert_equal 'Ruby', Pathname.new("file.rb").lexer_name + assert_equal 'Gentoo Ebuild', Pathname.new("file.ebuild").lexer_name + assert_equal 'Ruby', Pathname.new("Rakefile").lexer_name + assert_equal 'Nu', Pathname.new("itty.nu").lexer_name + assert_equal 'Text', Pathname.new("defun.kt").lexer_name + end end