diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 4b389a36..306baa41 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -1,5 +1,5 @@ +require 'escape_utils' require 'pygments' -require 'uri' require 'yaml' module Linguist @@ -333,7 +333,7 @@ module Linguist # # Returns the escaped String. def escaped_name - URI.escape(name) + EscapeUtils.escape_url(name).gsub('+', '%20') end # Internal: Get default alias name diff --git a/test/test_language.rb b/test/test_language.rb index 3593ff8a..6108ce69 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -291,6 +291,15 @@ class TestLanguage < Test::Unit::TestCase assert_equal 'Ruby', Language['Ruby'].name end + def test_escaped_name + assert_equal 'C', Language['C'].escaped_name + assert_equal 'C%23', Language['C#'].escaped_name + assert_equal 'C%2B%2B', Language['C++'].escaped_name + assert_equal 'Objective-C', Language['Objective-C'].escaped_name + assert_equal 'Common%20Lisp', Language['Common Lisp'].escaped_name + assert_equal 'Max%2FMSP', Language['Max/MSP'].escaped_name + end + def test_error_without_name assert_raise ArgumentError do Language.new :name => nil