class Liquid::Template::TagRegistry
Public Class Methods
new()
click to toggle source
# File lib/liquid/template.rb, line 25 def initialize @tags = {} @cache = {} end
Public Instance Methods
[](tag_name)
click to toggle source
# File lib/liquid/template.rb, line 30 def [](tag_name) return nil unless @tags.has_key?(tag_name) return @cache[tag_name] if Liquid.cache_classes lookup_class(@tags[tag_name]).tap { |o| @cache[tag_name] = o } end
[]=(tag_name, klass)
click to toggle source
# File lib/liquid/template.rb, line 37 def []=(tag_name, klass) @tags[tag_name] = klass.name @cache[tag_name] = klass end
delete(tag_name)
click to toggle source
# File lib/liquid/template.rb, line 42 def delete(tag_name) @tags.delete(tag_name) @cache.delete(tag_name) end
Private Instance Methods
lookup_class(name)
click to toggle source
# File lib/liquid/template.rb, line 49 def lookup_class(name) name.split("::").reject(&:empty?).reduce(Object) { |scope, const| scope.const_get(const) } end