mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
Add escaping of symbols
This commit is contained in:
+4
-3
@@ -24,9 +24,10 @@ module Liquid
|
|||||||
|
|
||||||
private
|
private
|
||||||
def interpolate(name, vars)
|
def interpolate(name, vars)
|
||||||
name.gsub(/:(\w+)/) do
|
name.gsub(/([^\\]):(\w+)/) {
|
||||||
vars[$1.to_sym] or raise TranslationError, translate("errors.i18n.undefined_interpolation", :key => $1, :name => name)
|
raise TranslationError, translate("errors.i18n.undefined_interpolation", :key => $1, :name => name) unless vars[$2.to_sym]
|
||||||
end
|
"#{$1}#{vars[$2.to_sym]}"
|
||||||
|
}.gsub("\\:", ":")
|
||||||
end
|
end
|
||||||
|
|
||||||
def deep_fetch_translation(name)
|
def deep_fetch_translation(name)
|
||||||
|
|||||||
@@ -34,4 +34,12 @@ class I18nTest < Test::Unit::TestCase
|
|||||||
def test_sets_default_path_to_en
|
def test_sets_default_path_to_en
|
||||||
assert_equal I18n::DEFAULT_LOCALE, I18n.new.path
|
assert_equal I18n::DEFAULT_LOCALE, I18n.new.path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_escaping_of_symbols
|
||||||
|
assert_equal "do replaced! not :gsub", @i18n.send(:interpolate,
|
||||||
|
'do :replace not \\:gsub',
|
||||||
|
{
|
||||||
|
:replace => "replaced!"
|
||||||
|
})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user