From 087205893ff91ec618b4b39204c1f07c9d452e09 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Mon, 19 Mar 2012 09:35:46 -0500 Subject: [PATCH] Fix name escaping --- lib/linguist/language.rb | 4 ++-- test/test_language.rb | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) 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