Permalink
Browse files

Memoize the result of gsubbing @virtual_path

This gets called many times for each virtual_path, creating a new string
each time that `translate` is called. We can memoize this so that it
only happens once per virtual_path instead.
  • Loading branch information...
oniofchaos committed Mar 20, 2018
1 parent 9d9f752 commit 05eaa07627376626902bd7acde35406edf1bb2f2
Showing with 5 additions and 2 deletions.
  1. +5 −2 actionview/lib/action_view/helpers/translation_helper.rb
@@ -122,9 +122,12 @@ def localize(*args)
private
def scope_key_by_partial(key)
if key.to_s.first == "."
stringified_key = key.to_s
if stringified_key.first == "."
if @virtual_path
@virtual_path.gsub(%r{/_?}, ".") + key.to_s
@_scope_key_by_partial_cache ||= {}
@_scope_key_by_partial_cache[@virtual_path] ||= @virtual_path.gsub(%r{/_?}, ".")
"#{@_scope_key_by_partial_cache[@virtual_path]}#{stringified_key}"
else
raise "Cannot use t(#{key.inspect}) shortcut because path is not available"
end

0 comments on commit 05eaa07

Please sign in to comment.