mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-19 19:00:39 -07:00
Allow multiple tags to be disabled at once
This commit is contained in:
@@ -9,11 +9,11 @@ module Liquid
|
|||||||
@disabled_tags[tag] > 0
|
@disabled_tags[tag] > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def disable(tag)
|
def disable(tags)
|
||||||
increment(tag)
|
tags.each { |tag| increment(tag) }
|
||||||
yield
|
yield
|
||||||
ensure
|
ensure
|
||||||
decrement(tag)
|
tags.each { |tag| decrement(tag) }
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -48,6 +48,12 @@ module Liquid
|
|||||||
"#{tag_name} #{options[:locale].t('errors.disabled.tag')}"
|
"#{tag_name} #{options[:locale].t('errors.disabled.tag')}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def disable_tags(context, tags)
|
||||||
|
context.registers['disabled_tags'].disable(tags) do
|
||||||
|
yield
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# For backwards compatibility with custom tags. In a future release, the semantics
|
# For backwards compatibility with custom tags. In a future release, the semantics
|
||||||
# of the `render_to_output_buffer` method will become the default and the `render`
|
# of the `render_to_output_buffer` method will become the default and the `render`
|
||||||
# method will be removed.
|
# method will be removed.
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def render_to_output_buffer(context, output)
|
def render_to_output_buffer(context, output)
|
||||||
context.registers['disabled_tags'].disable('include') do
|
disable_tags(context, %w(include)) do
|
||||||
render_tag(context, output)
|
render_tag(context, output)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,23 +7,24 @@ class DisabledTagsTest < Minitest::Test
|
|||||||
|
|
||||||
def test_disables_tag_specified
|
def test_disables_tag_specified
|
||||||
register = DisabledTags.new
|
register = DisabledTags.new
|
||||||
register.disable("foo") do
|
register.disable(%w(foo bar)) do
|
||||||
assert_equal true, register.disabled?("foo")
|
assert_equal true, register.disabled?("foo")
|
||||||
assert_equal false, register.disabled?("bar")
|
assert_equal true, register.disabled?("bar")
|
||||||
|
assert_equal false, register.disabled?("unknown")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_disables_nested_tags
|
def test_disables_nested_tags
|
||||||
register = DisabledTags.new
|
register = DisabledTags.new
|
||||||
register.disable("foo") do
|
register.disable(["foo"]) do
|
||||||
register.disable("foo") do
|
register.disable(["foo"]) do
|
||||||
assert_equal true, register.disabled?("foo")
|
assert_equal true, register.disabled?("foo")
|
||||||
assert_equal false, register.disabled?("bar")
|
assert_equal false, register.disabled?("bar")
|
||||||
end
|
end
|
||||||
register.disable("bar") do
|
register.disable(["bar"]) do
|
||||||
assert_equal true, register.disabled?("foo")
|
assert_equal true, register.disabled?("foo")
|
||||||
assert_equal true, register.disabled?("bar")
|
assert_equal true, register.disabled?("bar")
|
||||||
register.disable("foo") do
|
register.disable(["foo"]) do
|
||||||
assert_equal true, register.disabled?("foo")
|
assert_equal true, register.disabled?("foo")
|
||||||
assert_equal true, register.disabled?("bar")
|
assert_equal true, register.disabled?("bar")
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user