mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 00:55:11 -07:00
Initialize Liquid::Template class attributes eagerly instead of lazily (#1223)
This commit is contained in:
+17
-27
@@ -18,8 +18,6 @@ module Liquid
|
|||||||
attr_accessor :root
|
attr_accessor :root
|
||||||
attr_reader :resource_limits, :warnings
|
attr_reader :resource_limits, :warnings
|
||||||
|
|
||||||
@@file_system = BlankFileSystem.new
|
|
||||||
|
|
||||||
class TagRegistry
|
class TagRegistry
|
||||||
include Enumerable
|
include Enumerable
|
||||||
|
|
||||||
@@ -63,7 +61,10 @@ module Liquid
|
|||||||
# :lax acts like liquid 2.5 and silently ignores malformed tags in most cases.
|
# :lax acts like liquid 2.5 and silently ignores malformed tags in most cases.
|
||||||
# :warn is the default and will give deprecation warnings when invalid syntax is used.
|
# :warn is the default and will give deprecation warnings when invalid syntax is used.
|
||||||
# :strict will enforce correct syntax.
|
# :strict will enforce correct syntax.
|
||||||
attr_writer :error_mode
|
attr_accessor :error_mode
|
||||||
|
Template.error_mode = :lax
|
||||||
|
|
||||||
|
attr_reader :taint_mode
|
||||||
|
|
||||||
# Sets how strict the taint checker should be.
|
# Sets how strict the taint checker should be.
|
||||||
# :lax is the default, and ignores the taint flag completely
|
# :lax is the default, and ignores the taint flag completely
|
||||||
@@ -78,52 +79,41 @@ module Liquid
|
|||||||
@taint_mode = mode
|
@taint_mode = mode
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Template.taint_mode = :lax
|
||||||
|
|
||||||
attr_accessor :default_exception_renderer
|
attr_accessor :default_exception_renderer
|
||||||
Template.default_exception_renderer = lambda do |exception|
|
Template.default_exception_renderer = lambda do |exception|
|
||||||
exception
|
exception
|
||||||
end
|
end
|
||||||
|
|
||||||
def file_system
|
attr_accessor :file_system
|
||||||
@@file_system
|
Template.file_system = BlankFileSystem.new
|
||||||
end
|
|
||||||
|
|
||||||
def file_system=(obj)
|
attr_accessor :tags
|
||||||
@@file_system = obj
|
Template.tags = TagRegistry.new
|
||||||
end
|
private :tags=
|
||||||
|
|
||||||
def register_tag(name, klass)
|
def register_tag(name, klass)
|
||||||
tags[name.to_s] = klass
|
tags[name.to_s] = klass
|
||||||
end
|
end
|
||||||
|
|
||||||
def tags
|
attr_accessor :registers
|
||||||
@tags ||= TagRegistry.new
|
Template.registers = {}
|
||||||
end
|
private :registers=
|
||||||
|
|
||||||
def add_register(name, klass)
|
def add_register(name, klass)
|
||||||
registers[name.to_sym] = klass
|
registers[name.to_sym] = klass
|
||||||
end
|
end
|
||||||
|
|
||||||
def registers
|
|
||||||
@registers ||= {}
|
|
||||||
end
|
|
||||||
|
|
||||||
def error_mode
|
|
||||||
@error_mode ||= :lax
|
|
||||||
end
|
|
||||||
|
|
||||||
def taint_mode
|
|
||||||
@taint_mode ||= :lax
|
|
||||||
end
|
|
||||||
|
|
||||||
# Pass a module with filter methods which should be available
|
# Pass a module with filter methods which should be available
|
||||||
# to all liquid views. Good for registering the standard library
|
# to all liquid views. Good for registering the standard library
|
||||||
def register_filter(mod)
|
def register_filter(mod)
|
||||||
StrainerFactory.add_global_filter(mod)
|
StrainerFactory.add_global_filter(mod)
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_resource_limits
|
attr_accessor :default_resource_limits
|
||||||
@default_resource_limits ||= {}
|
Template.default_resource_limits = {}
|
||||||
end
|
private :default_resource_limits=
|
||||||
|
|
||||||
# creates a new <tt>Template</tt> object from liquid source code
|
# creates a new <tt>Template</tt> object from liquid source code
|
||||||
# To enable profiling, pass in <tt>profile: true</tt> as an option.
|
# To enable profiling, pass in <tt>profile: true</tt> as an option.
|
||||||
|
|||||||
Reference in New Issue
Block a user