From 6adc431a19f59a68cd487242c537ba96c82e3dc7 Mon Sep 17 00:00:00 2001 From: Gaurav Chande Date: Fri, 22 Apr 2016 17:16:17 -0400 Subject: [PATCH] Make tag registry enumerable --- lib/liquid/template.rb | 6 ++++++ test/unit/template_unit_test.rb | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 9b82241..40985ed 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -19,6 +19,8 @@ module Liquid @@file_system = BlankFileSystem.new class TagRegistry + include Enumerable + def initialize @tags = {} @cache = {} @@ -41,6 +43,10 @@ module Liquid @cache.delete(tag_name) end + def each(&block) + @tags.each(&block) + end + private def lookup_class(name) diff --git a/test/unit/template_unit_test.rb b/test/unit/template_unit_test.rb index 42cc613..26c084a 100644 --- a/test/unit/template_unit_test.rb +++ b/test/unit/template_unit_test.rb @@ -67,4 +67,10 @@ class TemplateUnitTest < Minitest::Test Template.tags.delete('fake') assert_nil Template.tags['fake'] 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"]) + end end