Commit 1cfc5e1db92a7dae8d8e34723443a453575e208c

Authored by Antonio Terceiro
1 parent ff995715

Fix String#to_slug to work with multi-byte UTF-8 characters

lib/noosfero/core_ext/string.rb
... ... @@ -37,7 +37,7 @@ class String
37 37 end
38 38  
39 39 def to_slug
40   - transliterate.downcase.gsub(/[^a-z0-9~\s:;+=_."'`-]/, '').gsub(/[\s:;+=_"'`-]+/, '-').gsub(/-$/, '').gsub(/^-/, '').to_s
  40 + transliterate.downcase.gsub(/[^\w~\s:;+=_."'`-]/, '').gsub(/[\s:;+=_"'`-]+/, '-').gsub(/-$/, '').gsub(/^-/, '').to_s
41 41 end
42 42  
43 43 end
... ...
test/unit/string_core_ext_test.rb
... ... @@ -24,6 +24,10 @@ class StringCoreExtTest < Test::Unit::TestCase
24 24 assert_equal 'a.b', 'a.b'.to_slug
25 25 end
26 26  
  27 + should 'handle multy-byte UTF-8 characters properly' do
  28 + assert_equal '日本語ローカライズチーム-home', '日本語ローカライズチーム_HOME'.to_slug
  29 + end
  30 +
27 31 # tests for String#transliterate
28 32 should 'transliterate' do
29 33 assert_equal 'aaaaaaAAAAAeeeeEEOOoocaaaiIIiuuyYnNcC', 'ªáàäâåÁÀÄÂÅéèëêÊËÖÔöôçäàâîÏÎïûüÿŸñÑçÇ'.transliterate
... ...