From 1ddde91303883b47f2215779cf45d7008377bd0d Mon Sep 17 00:00:00 2001 From: Michael Koziarski Date: Thu, 11 Sep 2008 16:03:38 +0200 Subject: [PATCH] Flesh out the parameterize method to support non-ascii text and underscores. --- activesupport/lib/active_support/inflector.rb | 2 +- activesupport/test/inflector_test_cases.rb | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/activesupport/lib/active_support/inflector.rb b/activesupport/lib/active_support/inflector.rb index e5f0063285..8a917a9eb2 100644 --- a/activesupport/lib/active_support/inflector.rb +++ b/activesupport/lib/active_support/inflector.rb @@ -257,7 +257,7 @@ def demodulize(class_name_in_module) # <%= link_to(@person.name, person_path %> # # => Donald E. Knuth def parameterize(string, sep = '-') - string.gsub(/[^a-z0-9]+/i, sep).downcase + string.chars.normalize(:kd).to_s.gsub(/[^\x00-\x7F]+/, '').gsub(/[^a-z0-9_\-]+/i, sep).downcase end # Create the name of a table like Rails does for models to table names. This method diff --git a/activesupport/test/inflector_test_cases.rb b/activesupport/test/inflector_test_cases.rb index d399c90385..8057809dbd 100644 --- a/activesupport/test/inflector_test_cases.rb +++ b/activesupport/test/inflector_test_cases.rb @@ -144,7 +144,10 @@ module InflectorTestCases StringToParameterized = { "Donald E. Knuth" => "donald-e-knuth", - "Random text with *(bad)* characters" => "random-text-with-bad-characters" + "Random text with *(bad)* characters" => "random-text-with-bad-characters", + "Malmö" => "malmo", + "Garçons" => "garcons", + "Allow_Under_Scores" => "allow_under_scores" } UnderscoreToHuman = { -- GitLab