mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-19 02:40:41 -07:00
Merge pull request #748 from Shopify/expose-tags
Make Template.tags loop-able
This commit is contained in:
@@ -19,6 +19,8 @@ module Liquid
|
|||||||
@@file_system = BlankFileSystem.new
|
@@file_system = BlankFileSystem.new
|
||||||
|
|
||||||
class TagRegistry
|
class TagRegistry
|
||||||
|
include Enumerable
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@tags = {}
|
@tags = {}
|
||||||
@cache = {}
|
@cache = {}
|
||||||
@@ -41,6 +43,10 @@ module Liquid
|
|||||||
@cache.delete(tag_name)
|
@cache.delete(tag_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def each(&block)
|
||||||
|
@tags.each(&block)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def lookup_class(name)
|
def lookup_class(name)
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ class BlockUnitTest < Minitest::Test
|
|||||||
def test_with_custom_tag
|
def test_with_custom_tag
|
||||||
Liquid::Template.register_tag("testtag", Block)
|
Liquid::Template.register_tag("testtag", Block)
|
||||||
assert Liquid::Template.parse("{% testtag %} {% endtesttag %}")
|
assert Liquid::Template.parse("{% testtag %} {% endtesttag %}")
|
||||||
|
ensure
|
||||||
|
Liquid::Template.tags.delete('testtag')
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -67,4 +67,12 @@ class TemplateUnitTest < Minitest::Test
|
|||||||
Template.tags.delete('fake')
|
Template.tags.delete('fake')
|
||||||
assert_nil Template.tags['fake']
|
assert_nil Template.tags['fake']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_tags_can_be_looped_over
|
||||||
|
Template.register_tag('fake', FakeTag)
|
||||||
|
result = Template.tags.map { |name, klass| [name, klass] }
|
||||||
|
assert result.include?(["fake", "TemplateUnitTest::FakeTag"])
|
||||||
|
ensure
|
||||||
|
Template.tags.delete('fake')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user