Ruby 1.9.2: avoid Array#to_s and Array(nil)

This commit is contained in:
Jeremy Kemper
2009-11-08 21:31:06 -08:00
parent c44fb4ced5
commit 7ad461b44d

View File

@@ -195,10 +195,19 @@ module I18n
# Merges the given locale, key and scope into a single array of keys.
# Splits keys that contain dots into multiple keys. Makes sure all
# keys are Symbols.
def normalize_translation_keys(locale, key, scope)
keys = [locale] + Array(scope) + [key]
keys = keys.map { |k| k.to_s.split(/\./) }
keys.flatten.map { |k| k.to_sym }
def normalize_translation_keys(*keys)
normalized = []
keys.each do |key|
case key
when Array
normalized.concat normalize_translation_keys(*key)
when nil
# skip
else
normalized.concat key.to_s.split('.').map { |sub| sub.to_sym }
end
end
normalized
end
end
end