aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/inflector/transliterate.rb
diff options
context:
space:
mode:
authorKaan Ozkan <kaan.ozkan@shopify.com>2019-03-11 11:44:28 -0400
committerKaan Ozkan <kaan.ozkan@shopify.com>2019-03-11 11:47:31 -0400
commitbc9711fb7d6dd89094ccc9c8f3147bcf3ddd63bc (patch)
tree967ab886109c6b2fdbb2ed0c61b5ae1e59da6f9d /activesupport/lib/active_support/inflector/transliterate.rb
parent4304373788fda6fa0fb1d6bac4ef78fb1ecac3dd (diff)
downloadrails-bc9711fb7d6dd89094ccc9c8f3147bcf3ddd63bc.tar.gz
rails-bc9711fb7d6dd89094ccc9c8f3147bcf3ddd63bc.tar.bz2
rails-bc9711fb7d6dd89094ccc9c8f3147bcf3ddd63bc.zip
Add locale option to parameterize
Parameterize is triggering I18n#transliterate. This method already accepts a locale. It would be cleaner if similar to other string inflection methods #parameterize also accepted 'locale' as a parameter.
Diffstat (limited to 'activesupport/lib/active_support/inflector/transliterate.rb')
-rw-r--r--activesupport/lib/active_support/inflector/transliterate.rb15
1 files changed, 7 insertions, 8 deletions
diff --git a/activesupport/lib/active_support/inflector/transliterate.rb b/activesupport/lib/active_support/inflector/transliterate.rb
index 0d2a17970f..09e6cbeaaf 100644
--- a/activesupport/lib/active_support/inflector/transliterate.rb
+++ b/activesupport/lib/active_support/inflector/transliterate.rb
@@ -51,19 +51,18 @@ module ActiveSupport
#
# Now you can have different transliterations for each locale:
#
- # I18n.locale = :en
- # transliterate('Jürgen')
+ # transliterate('Jürgen', locale: :en)
# # => "Jurgen"
#
- # I18n.locale = :de
- # transliterate('Jürgen')
+ # transliterate('Jürgen', locale: :de)
# # => "Juergen"
- def transliterate(string, replacement = "?")
+ def transliterate(string, replacement = "?", locale: nil)
raise ArgumentError, "Can only transliterate strings. Received #{string.class.name}" unless string.is_a?(String)
I18n.transliterate(
ActiveSupport::Multibyte::Unicode.tidy_bytes(string).unicode_normalize(:nfc),
- replacement: replacement
+ replacement: replacement,
+ locale: locale
)
end
@@ -89,9 +88,9 @@ module ActiveSupport
# parameterize("^très|Jolie-- ", separator: "_") # => "tres_jolie--"
# parameterize("^très_Jolie-- ", separator: ".") # => "tres_jolie--"
#
- def parameterize(string, separator: "-", preserve_case: false)
+ def parameterize(string, separator: "-", preserve_case: false, locale: nil)
# Replace accented chars with their ASCII equivalents.
- parameterized_string = transliterate(string)
+ parameterized_string = transliterate(string, locale)
# Turn unwanted chars into the separator.
parameterized_string.gsub!(/[^a-z0-9\-_]+/i, separator)