diff --git a/.rubocop.yml b/.rubocop.yml index c10e423..1c0f832 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,9 +7,6 @@ require: rubocop-performance Performance: Enabled: true -Layout/ExtraSpacing: - ForceEqualSignAlignment: true - AllCops: TargetRubyVersion: 2.4 Exclude: diff --git a/Rakefile b/Rakefile index 780ec35..66ae0fa 100755 --- a/Rakefile +++ b/Rakefile @@ -11,7 +11,7 @@ desc('run test suite with default parser') Rake::TestTask.new(:base_test) do |t| t.libs << '.' << 'lib' << 'test' t.test_files = FileList['test/{integration,unit}/**/*_test.rb'] - t.verbose = false + t.verbose = false end desc('run test suite with warn error mode') diff --git a/example/server/liquid_servlet.rb b/example/server/liquid_servlet.rb index 4965fff..55e21d2 100644 --- a/example/server/liquid_servlet.rb +++ b/example/server/liquid_servlet.rb @@ -12,16 +12,16 @@ class LiquidServlet < WEBrick::HTTPServlet::AbstractServlet private def handle(_type, req, res) - @request = req + @request = req @response = res @request.path_info =~ /(\w+)\z/ - @action = Regexp.last_match(1) || 'index' + @action = Regexp.last_match(1) || 'index' @assigns = send(@action) if respond_to?(@action) @response['Content-Type'] = "text/html" - @response.status = 200 - @response.body = Liquid::Template.parse(read_template).render(@assigns, filters: [ProductsFilter]) + @response.status = 200 + @response.body = Liquid::Template.parse(read_template).render(@assigns, filters: [ProductsFilter]) end def read_template(filename = @action) diff --git a/lib/liquid.rb b/lib/liquid.rb index ee7a4ef..7b4f098 100644 --- a/lib/liquid.rb +++ b/lib/liquid.rb @@ -24,8 +24,8 @@ module Liquid FILTER_SEPARATOR = /\|/ ARGUMENT_SEPARATOR = ',' - FILTER_ARGUMENT_SEPARATOR = ':' - VARIABLE_ATTRIBUTE_SEPARATOR = '.' + FILTER_ARGUMENT_SEPARATOR = ':' + VARIABLE_ATTRIBUTE_SEPARATOR = '.' WHITESPACE_CONTROL = '-' TAG_START = /\{\%/ TAG_END = /\%\}/ @@ -33,12 +33,12 @@ module Liquid VARIABLE_SEGMENT = /[\w\-]/ VARIABLE_START = /\{\{/ VARIABLE_END = /\}\}/ - VARIABLE_INCOMPLETE_END = /\}\}?/ + VARIABLE_INCOMPLETE_END = /\}\}?/ QUOTED_STRING = /"[^"]*"|'[^']*'/ QUOTED_FRAGMENT = /#{QUOTED_STRING}|(?:[^\s,\|'"]|#{QUOTED_STRING})+/o TAG_ATTRIBUTES = /(\w+)\s*\:\s*(#{QUOTED_FRAGMENT})/o - ANY_STARTING_TAG = /#{TAG_START}|#{VARIABLE_START}/o - PARTIAL_TEMPLATE_PARSER = /#{TAG_START}.*?#{TAG_END}|#{VARIABLE_START}.*?#{VARIABLE_INCOMPLETE_END}/om + ANY_STARTING_TAG = /#{TAG_START}|#{VARIABLE_START}/o + PARTIAL_TEMPLATE_PARSER = /#{TAG_START}.*?#{TAG_END}|#{VARIABLE_START}.*?#{VARIABLE_INCOMPLETE_END}/om TEMPLATE_PARSER = /(#{PARTIAL_TEMPLATE_PARSER}|#{ANY_STARTING_TAG})/om VARIABLE_PARSER = /\[[^\]]+\]|#{VARIABLE_SEGMENT}+\??/o diff --git a/lib/liquid/block_body.rb b/lib/liquid/block_body.rb index 0ede865..2f3433e 100644 --- a/lib/liquid/block_body.rb +++ b/lib/liquid/block_body.rb @@ -2,18 +2,18 @@ module Liquid class BlockBody - LIQUID_TAG_TOKEN = /\A\s*(\w+)\s*(.*?)\z/o - FULL_TOKEN = /\A#{TAG_START}#{WHITESPACE_CONTROL}?(\s*)(\w+)(\s*)(.*?)#{WHITESPACE_CONTROL}?#{TAG_END}\z/om - CONTENT_OF_VARIABLE = /\A#{VARIABLE_START}#{WHITESPACE_CONTROL}?(.*?)#{WHITESPACE_CONTROL}?#{VARIABLE_END}\z/om + LIQUID_TAG_TOKEN = /\A\s*(\w+)\s*(.*?)\z/o + FULL_TOKEN = /\A#{TAG_START}#{WHITESPACE_CONTROL}?(\s*)(\w+)(\s*)(.*?)#{WHITESPACE_CONTROL}?#{TAG_END}\z/om + CONTENT_OF_VARIABLE = /\A#{VARIABLE_START}#{WHITESPACE_CONTROL}?(.*?)#{WHITESPACE_CONTROL}?#{VARIABLE_END}\z/om WHITESPACE_OR_NOTHING = /\A\s*\z/ - TAG_START_STRING = "{%" - VAR_START_STRING = "{{" + TAG_START_STRING = "{%" + VAR_START_STRING = "{{" attr_reader :nodelist def initialize @nodelist = [] - @blank = true + @blank = true end def parse(tokenizer, parse_context, &block) @@ -34,15 +34,15 @@ module Liquid # caller raise a syntax error return yield token, token end - tag_name = Regexp.last_match(1) - markup = Regexp.last_match(2) + tag_name = Regexp.last_match(1) + markup = Regexp.last_match(2) unless (tag = registered_tags[tag_name]) # end parsing if we reach an unknown tag and let the caller decide # determine how to proceed return yield tag_name, markup end - new_tag = tag.parse(tag_name, markup, tokenizer, parse_context) - @blank &&= new_tag.blank? + new_tag = tag.parse(tag_name, markup, tokenizer, parse_context) + @blank &&= new_tag.blank? @nodelist << new_tag end parse_context.line_number = tokenizer.line_number @@ -61,7 +61,7 @@ module Liquid raise_missing_tag_terminator(token, parse_context) end tag_name = Regexp.last_match(2) - markup = Regexp.last_match(4) + markup = Regexp.last_match(4) if parse_context.line_number # newlines inside the tag should increase the line number, @@ -79,8 +79,8 @@ module Liquid # determine how to proceed return yield tag_name, markup end - new_tag = tag.parse(tag_name, markup, tokenizer, parse_context) - @blank &&= new_tag.blank? + new_tag = tag.parse(tag_name, markup, tokenizer, parse_context) + @blank &&= new_tag.blank? @nodelist << new_tag when token.start_with?(VAR_START_STRING) whitespace_handler(token, parse_context) @@ -92,7 +92,7 @@ module Liquid end parse_context.trim_whitespace = false @nodelist << token - @blank &&= !!(token =~ WHITESPACE_OR_NOTHING) + @blank &&= !!(token =~ WHITESPACE_OR_NOTHING) end parse_context.line_number = tokenizer.line_number end @@ -121,7 +121,7 @@ module Liquid def render_to_output_buffer(context, output) context.resource_limits.render_score += @nodelist.length - idx = 0 + idx = 0 while (node = @nodelist[idx]) previous_output_size = output.bytesize diff --git a/lib/liquid/condition.rb b/lib/liquid/condition.rb index fab74d7..93ec68b 100644 --- a/lib/liquid/condition.rb +++ b/lib/liquid/condition.rb @@ -35,16 +35,16 @@ module Liquid attr_accessor :left, :operator, :right def initialize(left = nil, operator = nil, right = nil) - @left = left - @operator = operator - @right = right - @child_relation = nil + @left = left + @operator = operator + @right = right + @child_relation = nil @child_condition = nil end def evaluate(context = Context.new) condition = self - result = nil + result = nil loop do result = interpret_condition(condition.left, condition.right, condition.operator, context) @@ -62,12 +62,12 @@ module Liquid end def or(condition) - @child_relation = :or + @child_relation = :or @child_condition = condition end def and(condition) - @child_relation = :and + @child_relation = :and @child_condition = condition end @@ -115,7 +115,7 @@ module Liquid # return this as the result. return context.evaluate(left) if op.nil? - left = context.evaluate(left) + left = context.evaluate(left) right = context.evaluate(right) operation = self.class.operators[op] || raise(Liquid::ArgumentError, "Unknown operator #{op}") diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb index 397ae0f..88e4671 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -41,8 +41,8 @@ module Liquid self.exception_renderer = ->(_e) { raise } end - @interrupts = [] - @filters = [] + @interrupts = [] + @filters = [] @global_filter = nil end # rubocop:enable Metrics/ParameterLists @@ -60,7 +60,7 @@ module Liquid # Note that this does not register the filters with the main Template object. see Template.register_filter # for that def add_filters(filters) - filters = [filters].flatten.compact + filters = [filters].flatten.compact @filters += filters @strainer = nil end @@ -85,9 +85,9 @@ module Liquid end def handle_error(e, line_number = nil) - e = internal_error unless e.is_a?(Liquid::Error) + e = internal_error unless e.is_a?(Liquid::Error) e.template_name ||= template_name - e.line_number ||= line_number + e.line_number ||= line_number errors.push(e) exception_renderer.call(e).to_s end @@ -138,12 +138,12 @@ module Liquid static_environments: static_environments, registers: StaticRegisters.new(registers) ).tap do |subcontext| - subcontext.base_scope_depth = base_scope_depth + 1 + subcontext.base_scope_depth = base_scope_depth + 1 subcontext.exception_renderer = exception_renderer - subcontext.filters = @filters - subcontext.strainer = nil - subcontext.errors = errors - subcontext.warnings = warnings + subcontext.filters = @filters + subcontext.strainer = nil + subcontext.errors = errors + subcontext.warnings = warnings end end @@ -188,7 +188,7 @@ module Liquid try_variable_find_in_environments(key, raise_on_not_found: raise_on_not_found) end - variable = variable.to_liquid + variable = variable.to_liquid variable.context = self if variable.respond_to?(:context=) variable diff --git a/lib/liquid/errors.rb b/lib/liquid/errors.rb index 4937da3..eda0bd2 100644 --- a/lib/liquid/errors.rb +++ b/lib/liquid/errors.rb @@ -40,19 +40,19 @@ module Liquid end end - ArgumentError = Class.new(Error) - ContextError = Class.new(Error) - FileSystemError = Class.new(Error) - StandardError = Class.new(Error) - SyntaxError = Class.new(Error) - StackLevelError = Class.new(Error) - TaintedError = Class.new(Error) - MemoryError = Class.new(Error) - ZeroDivisionError = Class.new(Error) - FloatDomainError = Class.new(Error) - UndefinedVariable = Class.new(Error) + ArgumentError = Class.new(Error) + ContextError = Class.new(Error) + FileSystemError = Class.new(Error) + StandardError = Class.new(Error) + SyntaxError = Class.new(Error) + StackLevelError = Class.new(Error) + TaintedError = Class.new(Error) + MemoryError = Class.new(Error) + ZeroDivisionError = Class.new(Error) + FloatDomainError = Class.new(Error) + UndefinedVariable = Class.new(Error) UndefinedDropMethod = Class.new(Error) - UndefinedFilter = Class.new(Error) + UndefinedFilter = Class.new(Error) MethodOverrideError = Class.new(Error) - InternalError = Class.new(Error) + InternalError = Class.new(Error) end diff --git a/lib/liquid/expression.rb b/lib/liquid/expression.rb index 58633e1..9670906 100644 --- a/lib/liquid/expression.rb +++ b/lib/liquid/expression.rb @@ -7,7 +7,7 @@ module Liquid def initialize(method_name, to_s) @method_name = method_name - @to_s = to_s + @to_s = to_s end def to_liquid diff --git a/lib/liquid/file_system.rb b/lib/liquid/file_system.rb index 67ba47c..27ab632 100644 --- a/lib/liquid/file_system.rb +++ b/lib/liquid/file_system.rb @@ -47,7 +47,7 @@ module Liquid attr_accessor :root def initialize(root, pattern = "_%s.liquid") - @root = root + @root = root @pattern = pattern end diff --git a/lib/liquid/forloop_drop.rb b/lib/liquid/forloop_drop.rb index 4685166..0ffa255 100644 --- a/lib/liquid/forloop_drop.rb +++ b/lib/liquid/forloop_drop.rb @@ -3,10 +3,10 @@ module Liquid class ForloopDrop < Drop def initialize(name, length, parentloop) - @name = name - @length = length + @name = name + @length = length @parentloop = parentloop - @index = 0 + @index = 0 end attr_reader :name, :length, :parentloop diff --git a/lib/liquid/legacy.rb b/lib/liquid/legacy.rb index 70fb186..5cd66bc 100644 --- a/lib/liquid/legacy.rb +++ b/lib/liquid/legacy.rb @@ -1,32 +1,32 @@ # frozen_string_literal: true module Liquid - FilterSeparator = FILTER_SEPARATOR - ArgumentSeparator = ARGUMENT_SEPARATOR - FilterArgumentSeparator = FILTER_ARGUMENT_SEPARATOR + FilterSeparator = FILTER_SEPARATOR + ArgumentSeparator = ARGUMENT_SEPARATOR + FilterArgumentSeparator = FILTER_ARGUMENT_SEPARATOR VariableAttributeSeparator = VARIABLE_ATTRIBUTE_SEPARATOR - WhitespaceControl = WHITESPACE_CONTROL - TagStart = TAG_START - TagEnd = TAG_END - VariableSignature = VARIABLE_SIGNATURE - VariableSegment = VARIABLE_SEGMENT - VariableStart = VARIABLE_START - VariableEnd = VARIABLE_END - VariableIncompleteEnd = VARIABLE_INCOMPLETE_END - QuotedString = QUOTED_STRING - QuotedFragment = QUOTED_FRAGMENT - TagAttributes = TAG_ATTRIBUTES - AnyStartingTag = ANY_STARTING_TAG - PartialTemplateParser = PARTIAL_TEMPLATE_PARSER - TemplateParser = TEMPLATE_PARSER - VariableParser = VARIABLE_PARSER + WhitespaceControl = WHITESPACE_CONTROL + TagStart = TAG_START + TagEnd = TAG_END + VariableSignature = VARIABLE_SIGNATURE + VariableSegment = VARIABLE_SEGMENT + VariableStart = VARIABLE_START + VariableEnd = VARIABLE_END + VariableIncompleteEnd = VARIABLE_INCOMPLETE_END + QuotedString = QUOTED_STRING + QuotedFragment = QUOTED_FRAGMENT + TagAttributes = TAG_ATTRIBUTES + AnyStartingTag = ANY_STARTING_TAG + PartialTemplateParser = PARTIAL_TEMPLATE_PARSER + TemplateParser = TEMPLATE_PARSER + VariableParser = VARIABLE_PARSER class BlockBody - FullToken = FULL_TOKEN - ContentOfVariable = CONTENT_OF_VARIABLE + FullToken = FULL_TOKEN + ContentOfVariable = CONTENT_OF_VARIABLE WhitespaceOrNothing = WHITESPACE_OR_NOTHING - TAGSTART = TAG_START_STRING - VARSTART = VAR_START_STRING + TAGSTART = TAG_START_STRING + VARSTART = VAR_START_STRING end class Assign < Tag @@ -52,7 +52,7 @@ module Liquid end class If < Block - Syntax = SYNTAX + Syntax = SYNTAX ExpressionsAndOperators = EXPRESSIONS_AND_OPERATORS end @@ -61,7 +61,7 @@ module Liquid end class Raw < Block - Syntax = SYNTAX + Syntax = SYNTAX FullTokenPossiblyInvalid = FULL_TOKEN_POSSIBLY_INVALID end @@ -70,10 +70,10 @@ module Liquid end class Variable - FilterMarkupRegex = FILTER_MARKUP_REGEX - FilterParser = FILTER_PARSER - FilterArgsRegex = FILTER_ARGS_REGEX - JustTagAttributes = JUST_TAG_ATTRIBUTES + FilterMarkupRegex = FILTER_MARKUP_REGEX + FilterParser = FILTER_PARSER + FilterArgsRegex = FILTER_ARGS_REGEX + JustTagAttributes = JUST_TAG_ATTRIBUTES MarkupWithQuotedFragment = MARKUP_WITH_QUOTED_FRAGMENT end end diff --git a/lib/liquid/lexer.rb b/lib/liquid/lexer.rb index 38cbe10..a251c3e 100644 --- a/lib/liquid/lexer.rb +++ b/lib/liquid/lexer.rb @@ -15,13 +15,12 @@ module Liquid '?' => :question, '-' => :dash, }.freeze - - IDENTIFIER = /[a-zA-Z_][\w-]*\??/ + IDENTIFIER = /[a-zA-Z_][\w-]*\??/ SINGLE_STRING_LITERAL = /'[^\']*'/ DOUBLE_STRING_LITERAL = /"[^\"]*"/ - NUMBER_LITERAL = /-?\d+(\.\d+)?/ - DOTDOT = /\.\./ - COMPARISON_OPERATOR = /==|!=|<>|<=?|>=?|contains(?=\s)/ + NUMBER_LITERAL = /-?\d+(\.\d+)?/ + DOTDOT = /\.\./ + COMPARISON_OPERATOR = /==|!=|<>|<=?|>=?|contains(?=\s)/ WHITESPACE_OR_NOTHING = /\s*/ def initialize(input) @@ -34,7 +33,7 @@ module Liquid until @ss.eos? @ss.skip(WHITESPACE_OR_NOTHING) break if @ss.eos? - tok = if (t = @ss.scan(COMPARISON_OPERATOR)) + tok = if (t = @ss.scan(COMPARISON_OPERATOR)) [:comparison, t] elsif (t = @ss.scan(SINGLE_STRING_LITERAL)) [:string, t] @@ -47,7 +46,7 @@ module Liquid elsif (t = @ss.scan(DOTDOT)) [:dotdot, t] else - c = @ss.getch + c = @ss.getch if (s = SPECIALS[c]) [s, c] else diff --git a/lib/liquid/parse_context.rb b/lib/liquid/parse_context.rb index cdf50f6..4afdbe5 100644 --- a/lib/liquid/parse_context.rb +++ b/lib/liquid/parse_context.rb @@ -7,10 +7,10 @@ module Liquid def initialize(options = {}) @template_options = options ? options.dup : {} - @locale = @template_options[:locale] ||= I18n.new - @warnings = [] - self.depth = 0 - self.partial = false + @locale = @template_options[:locale] ||= I18n.new + @warnings = [] + self.depth = 0 + self.partial = false end def [](option_key) @@ -18,8 +18,8 @@ module Liquid end def partial=(value) - @partial = value - @options = value ? partial_options : @template_options + @partial = value + @options = value ? partial_options : @template_options @error_mode = @options[:error_mode] || Template.error_mode end diff --git a/lib/liquid/parse_tree_visitor.rb b/lib/liquid/parse_tree_visitor.rb index 8f5d27f..d50943f 100644 --- a/lib/liquid/parse_tree_visitor.rb +++ b/lib/liquid/parse_tree_visitor.rb @@ -11,14 +11,14 @@ module Liquid end def initialize(node, callbacks) - @node = node + @node = node @callbacks = callbacks end def add_callback_for(*classes, &block) - callback = block - callback = ->(node, _) { yield node } if block.arity.abs == 1 - callback = ->(_, _) { yield } if block.arity.zero? + callback = block + callback = ->(node, _) { yield node } if block.arity.abs == 1 + callback = ->(_, _) { yield } if block.arity.zero? classes.each { |klass| @callbacks[klass] = callback } self end diff --git a/lib/liquid/parser.rb b/lib/liquid/parser.rb index b334231..6b9e837 100644 --- a/lib/liquid/parser.rb +++ b/lib/liquid/parser.rb @@ -3,9 +3,9 @@ module Liquid class Parser def initialize(input) - l = Lexer.new(input) + l = Lexer.new(input) @tokens = l.tokenize - @p = 0 # pointer to current location + @p = 0 # pointer to current location end def jump(point) @@ -14,7 +14,6 @@ module Liquid def consume(type = nil) token = @tokens[@p] - if type && token[0] != type raise SyntaxError, "Expected #{type} but found #{@tokens[@p].first}" end @@ -27,7 +26,6 @@ module Liquid # or false otherwise. def consume?(type) token = @tokens[@p] - return false unless token && token[0] == type @p += 1 token[1] @@ -36,7 +34,6 @@ module Liquid # Like consume? Except for an :id token of a certain name def id?(str) token = @tokens[@p] - return false unless token && token[0] == :id return false unless token[1] == str @p += 1 @@ -62,7 +59,7 @@ module Liquid consume first = expression consume(:dotdot) - last = expression + last = expression consume(:close_round) "(#{first}..#{last})" else diff --git a/lib/liquid/parser_switching.rb b/lib/liquid/parser_switching.rb index e2f8546..402b056 100644 --- a/lib/liquid/parser_switching.rb +++ b/lib/liquid/parser_switching.rb @@ -21,7 +21,7 @@ module Liquid def strict_parse_with_error_context(markup) strict_parse(markup) rescue SyntaxError => e - e.line_number = line_number + e.line_number = line_number e.markup_context = markup_context(markup) raise e end diff --git a/lib/liquid/partial_cache.rb b/lib/liquid/partial_cache.rb index bc9aeb3..43c2e39 100644 --- a/lib/liquid/partial_cache.rb +++ b/lib/liquid/partial_cache.rb @@ -4,14 +4,14 @@ module Liquid class PartialCache def self.load(template_name, context:, parse_context:) cached_partials = (context.registers[:cached_partials] ||= {}) - cached = cached_partials[template_name] + cached = cached_partials[template_name] return cached if cached - file_system = (context.registers[:file_system] ||= Liquid::Template.file_system) - source = file_system.read_template_file(template_name) + file_system = (context.registers[:file_system] ||= Liquid::Template.file_system) + source = file_system.read_template_file(template_name) parse_context.partial = true - partial = Liquid::Template.parse(source, parse_context) + partial = Liquid::Template.parse(source, parse_context) cached_partials[template_name] = partial ensure parse_context.partial = false diff --git a/lib/liquid/profiler.rb b/lib/liquid/profiler.rb index bec1842..dc3f1db 100644 --- a/lib/liquid/profiler.rb +++ b/lib/liquid/profiler.rb @@ -101,21 +101,21 @@ module Liquid def initialize @partial_stack = [""] - @root_timing = Timing.new("", current_partial) + @root_timing = Timing.new("", current_partial) @timing_stack = [@root_timing] @render_start_at = Time.now - @render_end_at = @render_start_at + @render_end_at = @render_start_at end def start Thread.current[:liquid_profiler] = self - @render_start_at = Time.now + @render_start_at = Time.now end def stop Thread.current[:liquid_profiler] = nil - @render_end_at = Time.now + @render_end_at = Time.now end def total_render_time diff --git a/lib/liquid/range_lookup.rb b/lib/liquid/range_lookup.rb index 57bccd0..8e4d765 100644 --- a/lib/liquid/range_lookup.rb +++ b/lib/liquid/range_lookup.rb @@ -4,7 +4,7 @@ module Liquid class RangeLookup def self.parse(start_markup, end_markup) start_obj = Expression.parse(start_markup) - end_obj = Expression.parse(end_markup) + end_obj = Expression.parse(end_markup) if start_obj.respond_to?(:evaluate) || end_obj.respond_to?(:evaluate) new(start_obj, end_obj) else @@ -14,12 +14,12 @@ module Liquid def initialize(start_obj, end_obj) @start_obj = start_obj - @end_obj = end_obj + @end_obj = end_obj end def evaluate(context) start_int = to_integer(context.evaluate(@start_obj)) - end_int = to_integer(context.evaluate(@end_obj)) + end_int = to_integer(context.evaluate(@end_obj)) start_int..end_int end diff --git a/lib/liquid/resource_limits.rb b/lib/liquid/resource_limits.rb index 9c898f0..5b7e8e4 100644 --- a/lib/liquid/resource_limits.rb +++ b/lib/liquid/resource_limits.rb @@ -7,8 +7,8 @@ module Liquid def initialize(limits) @render_length_limit = limits[:render_length_limit] - @render_score_limit = limits[:render_score_limit] - @assign_score_limit = limits[:assign_score_limit] + @render_score_limit = limits[:render_score_limit] + @assign_score_limit = limits[:assign_score_limit] reset end diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index e245f97..6855cd2 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -12,14 +12,13 @@ module Liquid '"' => '"', "'" => ''', }.freeze - HTML_ESCAPE_ONCE_REGEXP = /["><']|&(?!([a-zA-Z]+|(#\d+));)/ - STRIP_HTML_TAGS = /<.*?>/m - STRIP_HTML_BLOCKS = Regexp.union( + STRIP_HTML_BLOCKS = Regexp.union( %r{}m, //m, %r{}m ) + STRIP_HTML_TAGS = /<.*?>/m # Return the size of an array or of an string def size(input) @@ -77,20 +76,20 @@ module Liquid # Truncate a string down to x characters def truncate(input, length = 50, truncate_string = "...") return if input.nil? - input_str = input.to_s - length = Utils.to_integer(length) + input_str = input.to_s + length = Utils.to_integer(length) truncate_string_str = truncate_string.to_s - l = length - truncate_string_str.length - l = 0 if l < 0 + l = length - truncate_string_str.length + l = 0 if l < 0 input_str.length > length ? input_str[0...l].concat(truncate_string_str) : input_str end def truncatewords(input, words = 15, truncate_string = "...") return if input.nil? wordlist = input.to_s.split - words = Utils.to_integer(words) - l = words - 1 - l = 0 if l < 0 + words = Utils.to_integer(words) + l = words - 1 + l = 0 if l < 0 wordlist.length > l ? wordlist[0..l].join(" ").concat(truncate_string.to_s) : input end @@ -116,7 +115,7 @@ module Liquid end def strip_html(input) - empty = '' + empty = '' result = input.to_s.gsub(STRIP_HTML_BLOCKS, empty) result.gsub!(STRIP_HTML_TAGS, empty) result diff --git a/lib/liquid/static_registers.rb b/lib/liquid/static_registers.rb index da2c2c3..06c52ab 100644 --- a/lib/liquid/static_registers.rb +++ b/lib/liquid/static_registers.rb @@ -5,7 +5,7 @@ module Liquid attr_reader :static, :registers def initialize(registers = {}) - @static = registers.is_a?(StaticRegisters) ? registers.static : registers + @static = registers.is_a?(StaticRegisters) ? registers.static : registers @registers = {} end diff --git a/lib/liquid/strainer.rb b/lib/liquid/strainer.rb index d3c7433..3f3417e 100644 --- a/lib/liquid/strainer.rb +++ b/lib/liquid/strainer.rb @@ -9,7 +9,7 @@ module Liquid # The Strainer only allows method calls defined in filters given to it via Strainer.global_filter, # Context#add_filters or Template.register_filter class Strainer #:nodoc: - @@global_strainer = Class.new(Strainer) do + @@global_strainer = Class.new(Strainer) do @filter_methods = Set.new end @@strainer_class_cache = Hash.new do |hash, filters| diff --git a/lib/liquid/tablerowloop_drop.rb b/lib/liquid/tablerowloop_drop.rb index 6287052..0d00b6f 100644 --- a/lib/liquid/tablerowloop_drop.rb +++ b/lib/liquid/tablerowloop_drop.rb @@ -4,10 +4,10 @@ module Liquid class TablerowloopDrop < Drop def initialize(length, cols) @length = length - @row = 1 - @col = 1 - @cols = cols - @index = 0 + @row = 1 + @col = 1 + @cols = cols + @index = 0 end attr_reader :length, :col, :row @@ -54,7 +54,7 @@ module Liquid @index += 1 if @col == @cols - @col = 1 + @col = 1 @row += 1 else @col += 1 diff --git a/lib/liquid/tag.rb b/lib/liquid/tag.rb index 562472b..1460639 100644 --- a/lib/liquid/tag.rb +++ b/lib/liquid/tag.rb @@ -17,10 +17,10 @@ module Liquid end def initialize(tag_name, markup, parse_context) - @tag_name = tag_name - @markup = markup + @tag_name = tag_name + @markup = markup @parse_context = parse_context - @line_number = parse_context.line_number + @line_number = parse_context.line_number end def parse(_tokens) diff --git a/lib/liquid/tags/assign.rb b/lib/liquid/tags/assign.rb index e0d5123..332c605 100644 --- a/lib/liquid/tags/assign.rb +++ b/lib/liquid/tags/assign.rb @@ -21,7 +21,7 @@ module Liquid def initialize(tag_name, markup, options) super if markup =~ SYNTAX - @to = Regexp.last_match(1) + @to = Regexp.last_match(1) @from = Variable.new(Regexp.last_match(2), options) else raise SyntaxError, options[:locale].t(self.class.syntax_error_translation_key) @@ -29,8 +29,8 @@ module Liquid end def render_to_output_buffer(context, output) - val = @from.render(context) - context.scopes.last[@to] = val + val = @from.render(context) + context.scopes.last[@to] = val context.resource_limits.assign_score += assign_score_of(val) output end @@ -45,7 +45,7 @@ module Liquid if val.instance_of?(String) val.bytesize elsif val.instance_of?(Array) || val.instance_of?(Hash) - sum = 1 + sum = 1 # Uses #each to avoid extra allocations. val.each { |child| sum += assign_score_of(child) } sum diff --git a/lib/liquid/tags/capture.rb b/lib/liquid/tags/capture.rb index ddfe094..ee6e6d0 100644 --- a/lib/liquid/tags/capture.rb +++ b/lib/liquid/tags/capture.rb @@ -25,9 +25,9 @@ module Liquid end def render_to_output_buffer(context, output) - previous_output_size = output.bytesize + previous_output_size = output.bytesize super - context.scopes.last[@to] = output + context.scopes.last[@to] = output context.resource_limits.assign_score += (output.bytesize - previous_output_size) output end diff --git a/lib/liquid/tags/case.rb b/lib/liquid/tags/case.rb index c97a067..1f5196a 100644 --- a/lib/liquid/tags/case.rb +++ b/lib/liquid/tags/case.rb @@ -2,7 +2,7 @@ module Liquid class Case < Block - SYNTAX = /(#{QUOTED_FRAGMENT})/o + SYNTAX = /(#{QUOTED_FRAGMENT})/o WHEN_SYNTAX = /(#{QUOTED_FRAGMENT})(?:(?:\s+or\s+|\s*\,\s*)(#{QUOTED_FRAGMENT}.*))?/om attr_reader :blocks, :left diff --git a/lib/liquid/tags/cycle.rb b/lib/liquid/tags/cycle.rb index 9467f72..d6c490d 100644 --- a/lib/liquid/tags/cycle.rb +++ b/lib/liquid/tags/cycle.rb @@ -24,10 +24,10 @@ module Liquid case markup when NAMED_SYNTAX @variables = variables_from_string(Regexp.last_match(2)) - @name = Expression.parse(Regexp.last_match(1)) + @name = Expression.parse(Regexp.last_match(1)) when SIMPLE_SYNTAX @variables = variables_from_string(markup) - @name = @variables.to_s + @name = @variables.to_s else raise SyntaxError, options[:locale].t("errors.syntax.cycle") end @@ -36,7 +36,7 @@ module Liquid def render_to_output_buffer(context, output) context.registers[:cycle] ||= {} - key = context.evaluate(@name) + key = context.evaluate(@name) iteration = context.registers[:cycle][key].to_i val = context.evaluate(@variables[iteration]) @@ -49,8 +49,8 @@ module Liquid output << val - iteration += 1 - iteration = 0 if iteration >= @variables.size + iteration += 1 + iteration = 0 if iteration >= @variables.size context.registers[:cycle][key] = iteration output diff --git a/lib/liquid/tags/decrement.rb b/lib/liquid/tags/decrement.rb index 3ab7e42..d761a0c 100644 --- a/lib/liquid/tags/decrement.rb +++ b/lib/liquid/tags/decrement.rb @@ -26,8 +26,8 @@ module Liquid end def render_to_output_buffer(context, output) - value = context.environments.first[@variable] ||= 0 - value -= 1 + value = context.environments.first[@variable] ||= 0 + value -= 1 context.environments.first[@variable] = value output << value.to_s output diff --git a/lib/liquid/tags/for.rb b/lib/liquid/tags/for.rb index 18c7e30..b63b9e1 100644 --- a/lib/liquid/tags/for.rb +++ b/lib/liquid/tags/for.rb @@ -52,9 +52,9 @@ module Liquid def initialize(tag_name, markup, options) super - @from = @limit = nil + @from = @limit = nil parse_with_selected_parser(markup) - @for_block = BlockBody.new + @for_block = BlockBody.new @else_block = nil end @@ -88,10 +88,10 @@ module Liquid def lax_parse(markup) if markup =~ SYNTAX - @variable_name = Regexp.last_match(1) - collection_name = Regexp.last_match(2) - @reversed = !!Regexp.last_match(3) - @name = "#{@variable_name}-#{collection_name}" + @variable_name = Regexp.last_match(1) + collection_name = Regexp.last_match(2) + @reversed = !!Regexp.last_match(3) + @name = "#{@variable_name}-#{collection_name}" @collection_name = Expression.parse(collection_name) markup.scan(TAG_ATTRIBUTES) do |key, value| set_attribute(key, value) @@ -102,13 +102,13 @@ module Liquid end def strict_parse(markup) - p = Parser.new(markup) - @variable_name = p.consume(:id) + p = Parser.new(markup) + @variable_name = p.consume(:id) raise SyntaxError, options[:locale].t("errors.syntax.for_invalid_in") unless p.id?('in') - collection_name = p.expression - @name = "#{@variable_name}-#{collection_name}" + collection_name = p.expression + @name = "#{@variable_name}-#{collection_name}" @collection_name = Expression.parse(collection_name) - @reversed = p.id?('reversed') + @reversed = p.id?('reversed') while p.look(:id) && p.look(:colon, 1) unless (attribute = p.id?('limit') || p.id?('offset')) @@ -140,7 +140,7 @@ module Liquid collection = collection.to_a if collection.is_a?(Range) limit_value = context.evaluate(@limit) - to = if limit_value.nil? + to = if limit_value.nil? nil else Utils.to_integer(limit_value) + from @@ -156,7 +156,7 @@ module Liquid def render_segment(context, output, segment) for_stack = context.registers[:for_stack] ||= [] - length = segment.length + length = segment.length context.stack do loop_vars = Liquid::ForloopDrop.new(@name, length, for_stack[-1]) diff --git a/lib/liquid/tags/if.rb b/lib/liquid/tags/if.rb index a54a18d..50cb334 100644 --- a/lib/liquid/tags/if.rb +++ b/lib/liquid/tags/if.rb @@ -12,9 +12,9 @@ module Liquid # There are {% if count < 5 %} less {% else %} more {% endif %} items than you need. # class If < Block - SYNTAX = /(#{QUOTED_FRAGMENT})\s*([=!<>a-z_]+)?\s*(#{QUOTED_FRAGMENT})?/o + SYNTAX = /(#{QUOTED_FRAGMENT})\s*([=!<>a-z_]+)?\s*(#{QUOTED_FRAGMENT})?/o EXPRESSIONS_AND_OPERATORS = /(?:\b(?:\s?and\s?|\s?or\s?)\b|(?:\s*(?!\b(?:\s?and\s?|\s?or\s?)\b)(?:#{QUOTED_FRAGMENT}|\S+)\s*)+)/o - BOOLEAN_OPERATORS = %w(and or).freeze + BOOLEAN_OPERATORS = %w(and or).freeze attr_reader :blocks @@ -78,32 +78,32 @@ module Liquid new_condition = Condition.new(Expression.parse(Regexp.last_match(1)), Regexp.last_match(2), Expression.parse(Regexp.last_match(3))) raise SyntaxError, options[:locale].t("errors.syntax.if") unless BOOLEAN_OPERATORS.include?(operator) new_condition.send(operator, condition) - condition = new_condition + condition = new_condition end condition end def strict_parse(markup) - p = Parser.new(markup) + p = Parser.new(markup) condition = parse_binary_comparisons(p) p.consume(:end_of_string) condition end def parse_binary_comparisons(p) - condition = parse_comparison(p) + condition = parse_comparison(p) first_condition = condition - while (op = (p.id?('and') || p.id?('or'))) + while (op = (p.id?('and') || p.id?('or'))) child_condition = parse_comparison(p) condition.send(op, child_condition) - condition = child_condition + condition = child_condition end first_condition end def parse_comparison(p) - a = Expression.parse(p.expression) + a = Expression.parse(p.expression) if (op = p.consume?(:comparison)) b = Expression.parse(p.expression) Condition.new(a, op, b) diff --git a/lib/liquid/tags/include.rb b/lib/liquid/tags/include.rb index e2a3ff3..379c6c1 100644 --- a/lib/liquid/tags/include.rb +++ b/lib/liquid/tags/include.rb @@ -30,7 +30,7 @@ module Liquid @variable_name_expr = variable_name ? Expression.parse(variable_name) : nil @template_name_expr = Expression.parse(template_name) - @attributes = {} + @attributes = {} markup.scan(TAG_ATTRIBUTES) do |key, value| @attributes[key] = Expression.parse(value) @@ -63,10 +63,10 @@ module Liquid end old_template_name = context.template_name - old_partial = context.partial + old_partial = context.partial begin context.template_name = template_name - context.partial = true + context.partial = true context.stack do @attributes.each do |key, value| context[key] = context.evaluate(value) @@ -84,7 +84,7 @@ module Liquid end ensure context.template_name = old_template_name - context.partial = old_partial + context.partial = old_partial end output diff --git a/lib/liquid/tags/increment.rb b/lib/liquid/tags/increment.rb index 0290f69..241b316 100644 --- a/lib/liquid/tags/increment.rb +++ b/lib/liquid/tags/increment.rb @@ -23,7 +23,7 @@ module Liquid end def render_to_output_buffer(context, output) - value = context.environments.first[@variable] ||= 0 + value = context.environments.first[@variable] ||= 0 context.environments.first[@variable] = value + 1 output << value.to_s diff --git a/lib/liquid/tags/raw.rb b/lib/liquid/tags/raw.rb index 5ba752c..e4b2a6a 100644 --- a/lib/liquid/tags/raw.rb +++ b/lib/liquid/tags/raw.rb @@ -2,7 +2,7 @@ module Liquid class Raw < Block - SYNTAX = /\A\s*\z/ + SYNTAX = /\A\s*\z/ FULL_TOKEN_POSSIBLY_INVALID = /\A(.*)#{TAG_START}\s*(\w+)\s*(.*)?#{TAG_END}\z/om def initialize(tag_name, markup, parse_context) @@ -12,7 +12,7 @@ module Liquid end def parse(tokens) - @body = +'' + @body = +'' while (token = tokens.shift) if token =~ FULL_TOKEN_POSSIBLY_INVALID @body << Regexp.last_match(1) if Regexp.last_match(1) != "" diff --git a/lib/liquid/tags/render.rb b/lib/liquid/tags/render.rb index 179084f..0516d7d 100644 --- a/lib/liquid/tags/render.rb +++ b/lib/liquid/tags/render.rb @@ -32,9 +32,9 @@ module Liquid parse_context: parse_context ) - inner_context = context.new_isolated_subcontext + inner_context = context.new_isolated_subcontext inner_context.template_name = template_name - inner_context.partial = true + inner_context.partial = true @attributes.each do |key, value| inner_context[key] = context.evaluate(value) end diff --git a/lib/liquid/tags/table_row.rb b/lib/liquid/tags/table_row.rb index f98bee5..ec5f9db 100644 --- a/lib/liquid/tags/table_row.rb +++ b/lib/liquid/tags/table_row.rb @@ -9,9 +9,9 @@ module Liquid def initialize(tag_name, markup, options) super if markup =~ SYNTAX - @variable_name = Regexp.last_match(1) + @variable_name = Regexp.last_match(1) @collection_name = Expression.parse(Regexp.last_match(2)) - @attributes = {} + @attributes = {} markup.scan(TAG_ATTRIBUTES) do |key, value| @attributes[key] = Expression.parse(value) end @@ -24,7 +24,7 @@ module Liquid (collection = context.evaluate(@collection_name)) || (return '') from = @attributes.key?('offset') ? context.evaluate(@attributes['offset']).to_i : 0 - to = @attributes.key?('limit') ? from + context.evaluate(@attributes['limit']).to_i : nil + to = @attributes.key?('limit') ? from + context.evaluate(@attributes['limit']).to_i : nil collection = Utils.slice_collection(collection, from, to) @@ -34,7 +34,7 @@ module Liquid output << "\n" context.stack do - tablerowloop = Liquid::TablerowloopDrop.new(length, cols) + tablerowloop = Liquid::TablerowloopDrop.new(length, cols) context['tablerowloop'] = tablerowloop collection.each do |item| diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 0df70d0..e77ba8a 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -24,7 +24,7 @@ module Liquid include Enumerable def initialize - @tags = {} + @tags = {} @cache = {} end @@ -120,19 +120,19 @@ module Liquid end def initialize - @rethrow_errors = false + @rethrow_errors = false @resource_limits = ResourceLimits.new(self.class.default_resource_limits) end # Parse source code. # Returns self for easy chaining def parse(source, options = {}) - @options = options - @profiling = options[:profile] + @options = options + @profiling = options[:profile] @line_numbers = options[:line_numbers] || @profiling parse_context = options.is_a?(ParseContext) ? options : ParseContext.new(options) - @root = Document.parse(tokenize(source), parse_context) - @warnings = parse_context.warnings + @root = Document.parse(tokenize(source), parse_context) + @warnings = parse_context.warnings self end @@ -179,7 +179,7 @@ module Liquid c when Liquid::Drop - drop = args.shift + drop = args.shift drop.context = Context.new([drop, assigns], instance_assigns, registers, @rethrow_errors, @resource_limits) when Hash Context.new([args.shift, assigns], instance_assigns, registers, @rethrow_errors, @resource_limits) @@ -194,7 +194,7 @@ module Liquid case args.last when Hash options = args.pop - output = options[:output] if options[:output] + output = options[:output] if options[:output] registers.merge!(options[:registers]) if options[:registers].is_a?(Hash) @@ -253,10 +253,10 @@ module Liquid def apply_options_to_context(context, options) context.add_filters(options[:filters]) if options[:filters] - context.global_filter = options[:global_filter] if options[:global_filter] + context.global_filter = options[:global_filter] if options[:global_filter] context.exception_renderer = options[:exception_renderer] if options[:exception_renderer] - context.strict_variables = options[:strict_variables] if options[:strict_variables] - context.strict_filters = options[:strict_filters] if options[:strict_filters] + context.strict_variables = options[:strict_variables] if options[:strict_variables] + context.strict_filters = options[:strict_filters] if options[:strict_filters] end end end diff --git a/lib/liquid/tokenizer.rb b/lib/liquid/tokenizer.rb index 93edd18..5bffb9a 100644 --- a/lib/liquid/tokenizer.rb +++ b/lib/liquid/tokenizer.rb @@ -5,10 +5,10 @@ module Liquid attr_reader :line_number, :for_liquid_tag def initialize(source, line_numbers = false, line_number: nil, for_liquid_tag: false) - @source = source - @line_number = line_number || (line_numbers ? 1 : nil) + @source = source + @line_number = line_number || (line_numbers ? 1 : nil) @for_liquid_tag = for_liquid_tag - @tokens = tokenize + @tokens = tokenize end def shift diff --git a/lib/liquid/utils.rb b/lib/liquid/utils.rb index 15a513f..709fb00 100644 --- a/lib/liquid/utils.rb +++ b/lib/liquid/utils.rb @@ -12,7 +12,7 @@ module Liquid def self.slice_collection_using_each(collection, from, to) segments = [] - index = 0 + index = 0 # Maintains Ruby 1.8.7 String#each behaviour on 1.9 if collection.is_a?(String) diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb index 7bcd724..2ede9e8 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -12,10 +12,10 @@ module Liquid # {{ user | link }} # class Variable - FILTER_MARKUP_REGEX = /#{FILTER_SEPARATOR}\s*(.*)/om - FILTER_PARSER = /(?:\s+|#{QUOTED_FRAGMENT}|#{ARGUMENT_SEPARATOR})+/o - FILTER_ARGS_REGEX = /(?:#{FILTER_ARGUMENT_SEPARATOR}|#{ARGUMENT_SEPARATOR})\s*((?:\w+\s*\:\s*)?#{QUOTED_FRAGMENT})/o - JUST_TAG_ATTRIBUTES = /\A#{TAG_ATTRIBUTES}\z/o + FILTER_MARKUP_REGEX = /#{FILTER_SEPARATOR}\s*(.*)/om + FILTER_PARSER = /(?:\s+|#{QUOTED_FRAGMENT}|#{ARGUMENT_SEPARATOR})+/o + FILTER_ARGS_REGEX = /(?:#{FILTER_ARGUMENT_SEPARATOR}|#{ARGUMENT_SEPARATOR})\s*((?:\w+\s*\:\s*)?#{QUOTED_FRAGMENT})/o + JUST_TAG_ATTRIBUTES = /\A#{TAG_ATTRIBUTES}\z/o MARKUP_WITH_QUOTED_FRAGMENT = /(#{QUOTED_FRAGMENT})(.*)/om attr_accessor :filters, :name, :line_number @@ -25,10 +25,10 @@ module Liquid include ParserSwitching def initialize(markup, parse_context) - @markup = markup - @name = nil + @markup = markup + @name = nil @parse_context = parse_context - @line_number = parse_context.line_number + @line_number = parse_context.line_number parse_with_selected_parser(markup) end @@ -45,9 +45,9 @@ module Liquid @filters = [] return unless markup =~ MARKUP_WITH_QUOTED_FRAGMENT - name_markup = Regexp.last_match(1) + name_markup = Regexp.last_match(1) filter_markup = Regexp.last_match(2) - @name = Expression.parse(name_markup) + @name = Expression.parse(name_markup) if filter_markup =~ FILTER_MARKUP_REGEX filters = Regexp.last_match(1).scan(FILTER_PARSER) filters.each do |f| @@ -61,7 +61,7 @@ module Liquid def strict_parse(markup) @filters = [] - p = Parser.new(markup) + p = Parser.new(markup) @name = Expression.parse(p.expression) while p.consume?(:pipe) @@ -107,17 +107,17 @@ module Liquid private def parse_filter_expressions(filter_name, unparsed_args) - filter_args = [] + filter_args = [] keyword_args = nil unparsed_args.each do |a| if (matches = a.match(JUST_TAG_ATTRIBUTES)) - keyword_args ||= {} + keyword_args ||= {} keyword_args[matches[1]] = Expression.parse(matches[2]) else filter_args << Expression.parse(a) end end - result = [filter_name, filter_args] + result = [filter_name, filter_args] result << keyword_args if keyword_args result end @@ -141,8 +141,8 @@ module Liquid @markup =~ QUOTED_FRAGMENT name = Regexp.last_match(0) - error = TaintedError.new("variable '#{name}' is tainted and was not escaped") - error.line_number = line_number + error = TaintedError.new("variable '#{name}' is tainted and was not escaped") + error.line_number = line_number error.template_name = context.template_name case Template.taint_mode diff --git a/lib/liquid/variable_lookup.rb b/lib/liquid/variable_lookup.rb index fb2acc6..c96a523 100644 --- a/lib/liquid/variable_lookup.rb +++ b/lib/liquid/variable_lookup.rb @@ -3,7 +3,7 @@ module Liquid class VariableLookup SQUARE_BRACKETED = /\A\[(.*)\]\z/m - COMMAND_METHODS = ['size', 'first', 'last'].freeze + COMMAND_METHODS = ['size', 'first', 'last'].freeze attr_reader :name, :lookups @@ -14,13 +14,13 @@ module Liquid def initialize(markup) lookups = markup.scan(VARIABLE_PARSER) - name = lookups.shift + name = lookups.shift if name =~ SQUARE_BRACKETED name = Expression.parse(Regexp.last_match(1)) end @name = name - @lookups = lookups + @lookups = lookups @command_flags = 0 @lookups.each_index do |i| @@ -34,7 +34,7 @@ module Liquid end def evaluate(context) - name = context.evaluate(@name) + name = context.evaluate(@name) object = context.find_variable(name) @lookups.each_index do |i| @@ -47,7 +47,7 @@ module Liquid (object.respond_to?(:fetch) && key.is_a?(Integer))) # if its a proc we will replace the entry with the proc - res = context.lookup_and_evaluate(object, key) + res = context.lookup_and_evaluate(object, key) object = res.to_liquid # Some special cases. If the part wasn't in square brackets and diff --git a/performance/benchmark.rb b/performance/benchmark.rb index 993cc93..4d28b9a 100644 --- a/performance/benchmark.rb +++ b/performance/benchmark.rb @@ -4,10 +4,10 @@ require 'benchmark/ips' require_relative 'theme_runner' Liquid::Template.error_mode = ARGV.first.to_sym if ARGV.first -profiler = ThemeRunner.new +profiler = ThemeRunner.new Benchmark.ips do |x| - x.time = 10 + x.time = 10 x.warmup = 5 puts diff --git a/performance/profile.rb b/performance/profile.rb index de4ee2a..7074077 100644 --- a/performance/profile.rb +++ b/performance/profile.rb @@ -4,7 +4,7 @@ require 'stackprof' require_relative 'theme_runner' Liquid::Template.error_mode = ARGV.first.to_sym if ARGV.first -profiler = ThemeRunner.new +profiler = ThemeRunner.new profiler.run [:cpu, :object].each do |profile_type| diff --git a/performance/shopify/comment_form.rb b/performance/shopify/comment_form.rb index cb09d0e..0dabc4b 100644 --- a/performance/shopify/comment_form.rb +++ b/performance/shopify/comment_form.rb @@ -8,7 +8,7 @@ class CommentForm < Liquid::Block if markup =~ SYNTAX @variable_name = Regexp.last_match(1) - @attributes = {} + @attributes = {} else raise SyntaxError, "Syntax Error in 'comment_form' - Valid syntax: comment_form [article]" end diff --git a/performance/shopify/database.rb b/performance/shopify/database.rb index 35a4038..2db6d30 100644 --- a/performance/shopify/database.rb +++ b/performance/shopify/database.rb @@ -11,7 +11,7 @@ module Database # From vision source db['products'].each do |product| - collections = db['collections'].find_all do |collection| + collections = db['collections'].find_all do |collection| collection['products'].any? { |p| p['id'].to_i == product['id'].to_i } end product['collections'] = collections diff --git a/performance/shopify/paginate.rb b/performance/shopify/paginate.rb index acd7036..07f3cfc 100644 --- a/performance/shopify/paginate.rb +++ b/performance/shopify/paginate.rb @@ -8,7 +8,7 @@ class Paginate < Liquid::Block if markup =~ SYNTAX @collection_name = Regexp.last_match(1) - @page_size = if Regexp.last_match(2) + @page_size = if Regexp.last_match(2) Regexp.last_match(3).to_i else 20 diff --git a/performance/theme_runner.rb b/performance/theme_runner.rb index d8d0936..5ad01c5 100644 --- a/performance/theme_runner.rb +++ b/performance/theme_runner.rb @@ -58,9 +58,9 @@ class ThemeRunner # `render` is called to benchmark just the render portion of liquid def render @compiled_tests.each do |test| - tmpl = test[:tmpl] + tmpl = test[:tmpl] assigns = test[:assigns] - layout = test[:layout] + layout = test[:layout] if layout assigns['content_for_layout'] = tmpl.render!(assigns) @@ -74,7 +74,7 @@ class ThemeRunner private def compile_and_render(template, layout, assigns, page_template, template_file) - compiled_test = compile_test(template, layout, assigns, page_template, template_file) + compiled_test = compile_test(template, layout, assigns, page_template, template_file) assigns['content_for_layout'] = compiled_test[:tmpl].render!(assigns) compiled_test[:layout].render!(assigns) if layout end @@ -88,7 +88,7 @@ class ThemeRunner end def compile_test(template, layout, assigns, page_template, template_file) - tmpl = init_template(page_template, template_file) + tmpl = init_template(page_template, template_file) parsed_template = tmpl.parse(template).dup if layout @@ -113,9 +113,9 @@ class ThemeRunner # set up a new Liquid::Template object for use in `compile_and_render` and `compile_test` def init_template(page_template, template_file) - tmpl = Liquid::Template.new - tmpl.assigns['page_title'] = 'Page title' - tmpl.assigns['template'] = page_template + tmpl = Liquid::Template.new + tmpl.assigns['page_title'] = 'Page title' + tmpl.assigns['template'] = page_template tmpl.registers[:file_system] = ThemeRunner::FileSystem.new(File.dirname(template_file)) tmpl end diff --git a/test/integration/assign_test.rb b/test/integration/assign_test.rb index ce86c7a..ffcb8a3 100644 --- a/test/integration/assign_test.rb +++ b/test/integration/assign_test.rb @@ -10,8 +10,8 @@ class AssignTest < Minitest::Test {% assign this-thing = 'Print this-thing' %} {{ this-thing }} END_TEMPLATE - template = Template.parse(template_source) - rendered = template.render! + template = Template.parse(template_source) + rendered = template.render! assert_equal "Print this-thing", rendered.strip end diff --git a/test/integration/capture_test.rb b/test/integration/capture_test.rb index 6743cd8..f28e1b1 100644 --- a/test/integration/capture_test.rb +++ b/test/integration/capture_test.rb @@ -14,8 +14,8 @@ class CaptureTest < Minitest::Test {% capture this-thing %}Print this-thing{% endcapture %} {{ this-thing }} END_TEMPLATE - template = Template.parse(template_source) - rendered = template.render! + template = Template.parse(template_source) + rendered = template.render! assert_equal "Print this-thing", rendered.strip end @@ -30,8 +30,8 @@ class CaptureTest < Minitest::Test {% endif %} {{var}} END_TEMPLATE - template = Template.parse(template_source) - rendered = template.render! + template = Template.parse(template_source) + rendered = template.render! assert_equal "test-string", rendered.gsub(/\s/, '') end @@ -45,8 +45,8 @@ class CaptureTest < Minitest::Test {% endfor %} {{ first }}-{{ second }} END_TEMPLATE - template = Template.parse(template_source) - rendered = template.render! + template = Template.parse(template_source) + rendered = template.render! assert_equal "3-3", rendered.gsub(/\s/, '') end end # CaptureTest diff --git a/test/integration/drop_test.rb b/test/integration/drop_test.rb index 34702d4..3fe6175 100644 --- a/test/integration/drop_test.rb +++ b/test/integration/drop_test.rb @@ -125,7 +125,7 @@ class DropsTest < Minitest::Test def test_rendering_warns_on_tainted_attr with_taint_mode(:warn) do - tpl = Liquid::Template.parse('{{ product.user_input }}') + tpl = Liquid::Template.parse('{{ product.user_input }}') context = Context.new('product' => ProductDrop.new) tpl.render!(context) assert_equal [Liquid::TaintedError], context.warnings.map(&:class) diff --git a/test/integration/error_handling_test.rb b/test/integration/error_handling_test.rb index 9f7d920..7abaec0 100644 --- a/test/integration/error_handling_test.rb +++ b/test/integration/error_handling_test.rb @@ -209,13 +209,13 @@ class ErrorHandlingTest < Minitest::Test end def test_setting_default_exception_renderer - old_exception_renderer = Liquid::Template.default_exception_renderer - exceptions = [] + old_exception_renderer = Liquid::Template.default_exception_renderer + exceptions = [] Liquid::Template.default_exception_renderer = ->(e) { exceptions << e '' } - template = Liquid::Template.parse('This is a runtime error: {{ errors.argument_error }}') + template = Liquid::Template.parse('This is a runtime error: {{ errors.argument_error }}') output = template.render('errors' => ErrorDrop.new) @@ -226,9 +226,9 @@ class ErrorHandlingTest < Minitest::Test end def test_exception_renderer_exposing_non_liquid_error - template = Liquid::Template.parse('This is a runtime error: {{ errors.runtime_error }}', line_numbers: true) + template = Liquid::Template.parse('This is a runtime error: {{ errors.runtime_error }}', line_numbers: true) exceptions = [] - handler = ->(e) { + handler = ->(e) { exceptions << e e.cause } @@ -252,8 +252,8 @@ class ErrorHandlingTest < Minitest::Test begin Liquid::Template.file_system = TestFileSystem.new - template = Liquid::Template.parse("Argument error:\n{% include 'product' %}", line_numbers: true) - page = template.render('errors' => ErrorDrop.new) + template = Liquid::Template.parse("Argument error:\n{% include 'product' %}", line_numbers: true) + page = template.render('errors' => ErrorDrop.new) ensure Liquid::Template.file_system = old_file_system end diff --git a/test/integration/filter_test.rb b/test/integration/filter_test.rb index 976c34b..270477e 100644 --- a/test/integration/filter_test.rb +++ b/test/integration/filter_test.rb @@ -72,10 +72,10 @@ class FiltersTest < Minitest::Test end def test_sort - @context['value'] = 3 - @context['numbers'] = [2, 1, 4, 3] - @context['words'] = ['expected', 'as', 'alphabetic'] - @context['arrays'] = ['flower', 'are'] + @context['value'] = 3 + @context['numbers'] = [2, 1, 4, 3] + @context['words'] = ['expected', 'as', 'alphabetic'] + @context['arrays'] = ['flower', 'are'] @context['case_sensitive'] = ['sensitive', 'Expected', 'case'] assert_equal '1 2 3 4', Template.parse("{{numbers | sort | join}}").render(@context) @@ -86,8 +86,8 @@ class FiltersTest < Minitest::Test end def test_sort_natural - @context['words'] = ['case', 'Assert', 'Insensitive'] - @context['hashes'] = [{ 'a' => 'A' }, { 'a' => 'b' }, { 'a' => 'C' }] + @context['words'] = ['case', 'Assert', 'Insensitive'] + @context['hashes'] = [{ 'a' => 'A' }, { 'a' => 'b' }, { 'a' => 'C' }] @context['objects'] = [TestObject.new('A'), TestObject.new('b'), TestObject.new('C')] # Test strings @@ -101,8 +101,8 @@ class FiltersTest < Minitest::Test end def test_compact - @context['words'] = ['a', nil, 'b', nil, 'c'] - @context['hashes'] = [{ 'a' => 'A' }, { 'a' => nil }, { 'a' => 'C' }] + @context['words'] = ['a', nil, 'b', nil, 'c'] + @context['hashes'] = [{ 'a' => 'A' }, { 'a' => nil }, { 'a' => 'C' }] @context['objects'] = [TestObject.new('A'), TestObject.new(nil), TestObject.new('C')] # Test strings @@ -141,9 +141,9 @@ class FiltersTest < Minitest::Test def test_filter_with_keyword_arguments @context['surname'] = 'john' - @context['input'] = 'hello %{first_name}, %{last_name}' + @context['input'] = 'hello %{first_name}, %{last_name}' @context.add_filters(SubstituteFilter) - output = Template.parse(%({{ input | substitute: first_name: surname, last_name: 'doe' }})).render(@context) + output = Template.parse(%({{ input | substitute: first_name: surname, last_name: 'doe' }})).render(@context) assert_equal 'hello john, doe', output end diff --git a/test/integration/output_test.rb b/test/integration/output_test.rb index 05f9bb1..687cad8 100644 --- a/test/integration/output_test.rb +++ b/test/integration/output_test.rb @@ -61,63 +61,63 @@ class OutputTest < Minitest::Test end def test_variable_piping - text = %( {{ car.gm | make_funny }} ) + text = %( {{ car.gm | make_funny }} ) expected = %( LOL ) assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_variable_piping_with_input - text = %( {{ car.gm | cite_funny }} ) + text = %( {{ car.gm | cite_funny }} ) expected = %( LOL: bad ) assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_variable_piping_with_args - text = %! {{ car.gm | add_smiley : ':-(' }} ! + text = %! {{ car.gm | add_smiley : ':-(' }} ! expected = %| bad :-( | assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_variable_piping_with_no_args - text = %( {{ car.gm | add_smiley }} ) + text = %( {{ car.gm | add_smiley }} ) expected = %| bad :-) | assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_multiple_variable_piping_with_args - text = %! {{ car.gm | add_smiley : ':-(' | add_smiley : ':-('}} ! + text = %! {{ car.gm | add_smiley : ':-(' | add_smiley : ':-('}} ! expected = %| bad :-( :-( | assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_variable_piping_with_multiple_args - text = %( {{ car.gm | add_tag : 'span', 'bar'}} ) + text = %( {{ car.gm | add_tag : 'span', 'bar'}} ) expected = %( bad ) assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_variable_piping_with_variable_args - text = %( {{ car.gm | add_tag : 'span', car.bmw}} ) + text = %( {{ car.gm | add_tag : 'span', car.bmw}} ) expected = %( bad ) assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_multiple_pipings - text = %( {{ best_cars | cite_funny | paragraph }} ) + text = %( {{ best_cars | cite_funny | paragraph }} ) expected = %(

LOL: bmw

) assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) end def test_link_to - text = %( {{ 'Typo' | link_to: 'http://typo.leetsoft.com' }} ) + text = %( {{ 'Typo' | link_to: 'http://typo.leetsoft.com' }} ) expected = %( Typo ) assert_equal expected, Template.parse(text).render!(@assigns, filters: [FunnyFilter]) diff --git a/test/integration/parsing_quirks_test.rb b/test/integration/parsing_quirks_test.rb index 58ca3f3..c210b48 100644 --- a/test/integration/parsing_quirks_test.rb +++ b/test/integration/parsing_quirks_test.rb @@ -72,7 +72,7 @@ class ParsingQuirksTest < Minitest::Test def test_meaningless_parens_lax with_error_mode(:lax) do assigns = { 'b' => 'bar', 'c' => 'baz' } - markup = "a == 'foo' or (b == 'bar' and c == 'baz') or false" + markup = "a == 'foo' or (b == 'bar' and c == 'baz') or false" assert_template_result(' YES ', "{% if #{markup} %} YES {% endif %}", assigns) end end diff --git a/test/integration/security_test.rb b/test/integration/security_test.rb index dec33df..28e9d39 100644 --- a/test/integration/security_test.rb +++ b/test/integration/security_test.rb @@ -16,28 +16,28 @@ class SecurityTest < Minitest::Test end def test_no_instance_eval - text = %( {{ '1+1' | instance_eval }} ) + text = %( {{ '1+1' | instance_eval }} ) expected = %( 1+1 ) assert_equal expected, Template.parse(text).render!(@assigns) end def test_no_existing_instance_eval - text = %( {{ '1+1' | __instance_eval__ }} ) + text = %( {{ '1+1' | __instance_eval__ }} ) expected = %( 1+1 ) assert_equal expected, Template.parse(text).render!(@assigns) end def test_no_instance_eval_after_mixing_in_new_filter - text = %( {{ '1+1' | instance_eval }} ) + text = %( {{ '1+1' | instance_eval }} ) expected = %( 1+1 ) assert_equal expected, Template.parse(text).render!(@assigns) end def test_no_instance_eval_later_in_chain - text = %( {{ '1+1' | add_one | instance_eval }} ) + text = %( {{ '1+1' | add_one | instance_eval }} ) expected = %( 1+1 + 1 ) assert_equal expected, Template.parse(text).render!(@assigns, filters: SecurityFilter) @@ -68,13 +68,13 @@ class SecurityTest < Minitest::Test def test_max_depth_nested_blocks_does_not_raise_exception depth = Liquid::Block::MAX_DEPTH - code = "{% if true %}" * depth + "rendered" + "{% endif %}" * depth + code = "{% if true %}" * depth + "rendered" + "{% endif %}" * depth assert_equal "rendered", Template.parse(code).render! end def test_more_than_max_depth_nested_blocks_raises_exception depth = Liquid::Block::MAX_DEPTH + 1 - code = "{% if true %}" * depth + "rendered" + "{% endif %}" * depth + code = "{% if true %}" * depth + "rendered" + "{% endif %}" * depth assert_raises(Liquid::StackLevelError) do Template.parse(code).render! end diff --git a/test/integration/standard_filter_test.rb b/test/integration/standard_filter_test.rb index 7a4bf83..bf28539 100644 --- a/test/integration/standard_filter_test.rb +++ b/test/integration/standard_filter_test.rb @@ -204,7 +204,7 @@ class StandardFiltersTest < Minitest::Test end def test_sort_when_property_is_sometimes_missing_puts_nils_last - input = [ + input = [ { "price" => 4, "handle" => "alpha" }, { "handle" => "beta" }, { "price" => 1, "handle" => "gamma" }, @@ -232,7 +232,7 @@ class StandardFiltersTest < Minitest::Test end def test_sort_natural_when_property_is_sometimes_missing_puts_nils_last - input = [ + input = [ { "price" => "4", "handle" => "alpha" }, { "handle" => "beta" }, { "price" => "1", "handle" => "gamma" }, @@ -250,7 +250,7 @@ class StandardFiltersTest < Minitest::Test end def test_sort_natural_case_check - input = [ + input = [ { "key" => "X" }, { "key" => "Y" }, { "key" => "Z" }, @@ -386,7 +386,7 @@ class StandardFiltersTest < Minitest::Test def test_legacy_map_on_hashes_with_dynamic_key template = "{% assign key = 'foo' %}{{ thing | map: key | map: 'bar' }}" - hash = { "foo" => { "bar" => 42 } } + hash = { "foo" => { "bar" => 42 } } assert_template_result "42", template, "thing" => hash end @@ -397,8 +397,8 @@ class StandardFiltersTest < Minitest::Test end def test_map_over_proc - drop = TestDrop.new - p = proc { drop } + drop = TestDrop.new + p = proc { drop } templ = '{{ procs | map: "test" }}' assert_template_result "testfoo", templ, "procs" => [p] end @@ -768,7 +768,7 @@ class StandardFiltersTest < Minitest::Test private def with_timezone(tz) - old_tz = ENV['TZ'] + old_tz = ENV['TZ'] ENV['TZ'] = tz yield ensure diff --git a/test/integration/tags/break_tag_test.rb b/test/integration/tags/break_tag_test.rb index a67a8b5..c3a4679 100644 --- a/test/integration/tags/break_tag_test.rb +++ b/test/integration/tags/break_tag_test.rb @@ -8,8 +8,8 @@ class BreakTagTest < Minitest::Test # tests that no weird errors are raised if break is called outside of a # block def test_break_with_no_block - assigns = { 'i' => 1 } - markup = '{% break %}' + assigns = { 'i' => 1 } + markup = '{% break %}' expected = '' assert_template_result(expected, markup, assigns) diff --git a/test/integration/tags/continue_tag_test.rb b/test/integration/tags/continue_tag_test.rb index 0530a71..00cca17 100644 --- a/test/integration/tags/continue_tag_test.rb +++ b/test/integration/tags/continue_tag_test.rb @@ -8,8 +8,8 @@ class ContinueTagTest < Minitest::Test # tests that no weird errors are raised if continue is called outside of a # block def test_continue_with_no_block - assigns = {} - markup = '{% continue %}' + assigns = {} + markup = '{% continue %}' expected = '' assert_template_result(expected, markup, assigns) diff --git a/test/integration/tags/for_tag_test.rb b/test/integration/tags/for_tag_test.rb index 0377fcf..667efac 100644 --- a/test/integration/tags/for_tag_test.rb +++ b/test/integration/tags/for_tag_test.rb @@ -106,7 +106,7 @@ HERE end def test_limiting_with_invalid_limit - assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } + assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } template = <<-MKUP {% for i in array limit: true offset: 1 %} {{ i }} @@ -120,7 +120,7 @@ HERE end def test_limiting_with_invalid_offset - assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } + assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } template = <<-MKUP {% for i in array limit: 1 offset: true %} {{ i }} @@ -134,8 +134,8 @@ HERE end def test_dynamic_variable_limiting - assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } - assigns['limit'] = 2 + assigns = { 'array' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } + assigns['limit'] = 2 assigns['offset'] = 2 assert_template_result('34', '{%for i in array limit: limit offset: offset %}{{ i }}{%endfor%}', assigns) @@ -152,8 +152,8 @@ HERE end def test_pause_resume - assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } - markup = <<-MKUP + assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } + markup = <<-MKUP {%for i in array.items limit: 3 %}{{i}}{%endfor%} next {%for i in array.items offset:continue limit: 3 %}{{i}}{%endfor%} @@ -171,8 +171,8 @@ HERE end def test_pause_resume_limit - assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } - markup = <<-MKUP + assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } + markup = <<-MKUP {%for i in array.items limit:3 %}{{i}}{%endfor%} next {%for i in array.items offset:continue limit:3 %}{{i}}{%endfor%} @@ -190,8 +190,8 @@ HERE end def test_pause_resume_big_limit - assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } - markup = <<-MKUP + assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } + markup = <<-MKUP {%for i in array.items limit:3 %}{{i}}{%endfor%} next {%for i in array.items offset:continue limit:3 %}{{i}}{%endfor%} @@ -209,8 +209,8 @@ HERE end def test_pause_resume_big_offset - assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } - markup = '{%for i in array.items limit:3 %}{{i}}{%endfor%} + assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] } } + markup = '{%for i in array.items limit:3 %}{{i}}{%endfor%} next {%for i in array.items offset:continue limit:3 %}{{i}}{%endfor%} next @@ -226,26 +226,26 @@ HERE def test_for_with_break assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] } } - markup = '{% for i in array.items %}{% break %}{% endfor %}' + markup = '{% for i in array.items %}{% break %}{% endfor %}' expected = "" assert_template_result(expected, markup, assigns) - markup = '{% for i in array.items %}{{ i }}{% break %}{% endfor %}' + markup = '{% for i in array.items %}{{ i }}{% break %}{% endfor %}' expected = "1" assert_template_result(expected, markup, assigns) - markup = '{% for i in array.items %}{% break %}{{ i }}{% endfor %}' + markup = '{% for i in array.items %}{% break %}{{ i }}{% endfor %}' expected = "" assert_template_result(expected, markup, assigns) - markup = '{% for i in array.items %}{{ i }}{% if i > 3 %}{% break %}{% endif %}{% endfor %}' + markup = '{% for i in array.items %}{{ i }}{% if i > 3 %}{% break %}{% endif %}{% endfor %}' expected = "1234" assert_template_result(expected, markup, assigns) # tests to ensure it only breaks out of the local for loop # and not all of them. - assigns = { 'array' => [[1, 2], [3, 4], [5, 6]] } - markup = '{% for item in array %}' \ + assigns = { 'array' => [[1, 2], [3, 4], [5, 6]] } + markup = '{% for item in array %}' \ '{% for i in item %}' \ '{% if i == 1 %}' \ '{% break %}' \ @@ -257,8 +257,8 @@ HERE assert_template_result(expected, markup, assigns) # test break does nothing when unreached - assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } } - markup = '{% for i in array.items %}{% if i == 9999 %}{% break %}{% endif %}{{ i }}{% endfor %}' + assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } } + markup = '{% for i in array.items %}{% if i == 9999 %}{% break %}{% endif %}{{ i }}{% endfor %}' expected = '12345' assert_template_result(expected, markup, assigns) end @@ -266,29 +266,29 @@ HERE def test_for_with_continue assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } } - markup = '{% for i in array.items %}{% continue %}{% endfor %}' + markup = '{% for i in array.items %}{% continue %}{% endfor %}' expected = "" assert_template_result(expected, markup, assigns) - markup = '{% for i in array.items %}{{ i }}{% continue %}{% endfor %}' + markup = '{% for i in array.items %}{{ i }}{% continue %}{% endfor %}' expected = "12345" assert_template_result(expected, markup, assigns) - markup = '{% for i in array.items %}{% continue %}{{ i }}{% endfor %}' + markup = '{% for i in array.items %}{% continue %}{{ i }}{% endfor %}' expected = "" assert_template_result(expected, markup, assigns) - markup = '{% for i in array.items %}{% if i > 3 %}{% continue %}{% endif %}{{ i }}{% endfor %}' + markup = '{% for i in array.items %}{% if i > 3 %}{% continue %}{% endif %}{{ i }}{% endfor %}' expected = "123" assert_template_result(expected, markup, assigns) - markup = '{% for i in array.items %}{% if i == 3 %}{% continue %}{% else %}{{ i }}{% endif %}{% endfor %}' + markup = '{% for i in array.items %}{% if i == 3 %}{% continue %}{% else %}{{ i }}{% endif %}{% endfor %}' expected = "1245" assert_template_result(expected, markup, assigns) # tests to ensure it only continues the local for loop and not all of them. - assigns = { 'array' => [[1, 2], [3, 4], [5, 6]] } - markup = '{% for item in array %}' \ + assigns = { 'array' => [[1, 2], [3, 4], [5, 6]] } + markup = '{% for item in array %}' \ '{% for i in item %}' \ '{% if i == 1 %}' \ '{% continue %}' \ @@ -300,8 +300,8 @@ HERE assert_template_result(expected, markup, assigns) # test continue does nothing when unreached - assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } } - markup = '{% for i in array.items %}{% if i == 9999 %}{% continue %}{% endif %}{{ i }}{% endfor %}' + assigns = { 'array' => { 'items' => [1, 2, 3, 4, 5] } } + markup = '{% for i in array.items %}{% if i == 9999 %}{% continue %}{% endif %}{{ i }}{% endfor %}' expected = '12345' assert_template_result(expected, markup, assigns) end @@ -389,8 +389,8 @@ HERE end def test_iterate_with_each_when_no_limit_applied - loader = LoaderDrop.new([1, 2, 3, 4, 5]) - assigns = { 'items' => loader } + loader = LoaderDrop.new([1, 2, 3, 4, 5]) + assigns = { 'items' => loader } expected = '12345' template = '{% for item in items %}{{item}}{% endfor %}' assert_template_result(expected, template, assigns) @@ -399,8 +399,8 @@ HERE end def test_iterate_with_load_slice_when_limit_applied - loader = LoaderDrop.new([1, 2, 3, 4, 5]) - assigns = { 'items' => loader } + loader = LoaderDrop.new([1, 2, 3, 4, 5]) + assigns = { 'items' => loader } expected = '1' template = '{% for item in items limit:1 %}{{item}}{% endfor %}' assert_template_result(expected, template, assigns) @@ -409,8 +409,8 @@ HERE end def test_iterate_with_load_slice_when_limit_and_offset_applied - loader = LoaderDrop.new([1, 2, 3, 4, 5]) - assigns = { 'items' => loader } + loader = LoaderDrop.new([1, 2, 3, 4, 5]) + assigns = { 'items' => loader } expected = '34' template = '{% for item in items offset:2 limit:2 %}{{item}}{% endfor %}' assert_template_result(expected, template, assigns) @@ -419,11 +419,11 @@ HERE end def test_iterate_with_load_slice_returns_same_results_as_without - loader = LoaderDrop.new([1, 2, 3, 4, 5]) + loader = LoaderDrop.new([1, 2, 3, 4, 5]) loader_assigns = { 'items' => loader } - array_assigns = { 'items' => [1, 2, 3, 4, 5] } - expected = '34' - template = '{% for item in items offset:2 limit:2 %}{{item}}{% endfor %}' + array_assigns = { 'items' => [1, 2, 3, 4, 5] } + expected = '34' + template = '{% for item in items offset:2 limit:2 %}{{item}}{% endfor %}' assert_template_result(expected, template, loader_assigns) assert_template_result(expected, template, array_assigns) end diff --git a/test/integration/tags/if_else_tag_test.rb b/test/integration/tags/if_else_tag_test.rb index dfbc537..d54b2fb 100644 --- a/test/integration/tags/if_else_tag_test.rb +++ b/test/integration/tags/if_else_tag_test.rb @@ -45,7 +45,7 @@ class IfElseTagTest < Minitest::Test def test_comparison_of_strings_containing_and_or_or awful_markup = "a == 'and' and b == 'or' and c == 'foo and bar' and d == 'bar or baz' and e == 'foo' and foo and bar" - assigns = { 'a' => 'and', 'b' => 'or', 'c' => 'foo and bar', 'd' => 'bar or baz', 'e' => 'foo', 'foo' => true, 'bar' => true } + assigns = { 'a' => 'and', 'b' => 'or', 'c' => 'foo and bar', 'd' => 'bar or baz', 'e' => 'foo', 'foo' => true, 'bar' => true } assert_template_result(' YES ', "{% if #{awful_markup} %} YES {% endif %}", assigns) end @@ -142,7 +142,7 @@ class IfElseTagTest < Minitest::Test end def test_if_with_custom_condition - original_op = Condition.operators['contains'] + original_op = Condition.operators['contains'] Condition.operators['contains'] = :[] assert_template_result('yes', %({% if 'bob' contains 'o' %}yes{% endif %})) @@ -152,7 +152,7 @@ class IfElseTagTest < Minitest::Test end def test_operators_are_ignored_unless_isolated - original_op = Condition.operators['contains'] + original_op = Condition.operators['contains'] Condition.operators['contains'] = :[] assert_template_result('yes', diff --git a/test/integration/tags/include_tag_test.rb b/test/integration/tags/include_tag_test.rb index ef96081..686d482 100644 --- a/test/integration/tags/include_tag_test.rb +++ b/test/integration/tags/include_tag_test.rb @@ -51,7 +51,7 @@ class CountingFileSystem attr_reader :count def read_template_file(_template_path) @count ||= 0 - @count += 1 + @count += 1 'from CountingFileSystem' end end @@ -179,7 +179,7 @@ class IncludeTagTest < Minitest::Test end def test_custom_include_tag - original_tag = Liquid::Template.tags['include'] + original_tag = Liquid::Template.tags['include'] Liquid::Template.tags['include'] = CustomInclude begin assert_equal "custom_foo", @@ -190,7 +190,7 @@ class IncludeTagTest < Minitest::Test end def test_custom_include_tag_within_if_statement - original_tag = Liquid::Template.tags['include'] + original_tag = Liquid::Template.tags['include'] Liquid::Template.tags['include'] = CustomInclude begin assert_equal "custom_foo_if_true", diff --git a/test/integration/tags/render_tag_test.rb b/test/integration/tags/render_tag_test.rb index 656ec8e..154783a 100644 --- a/test/integration/tags/render_tag_test.rb +++ b/test/integration/tags/render_tag_test.rb @@ -47,7 +47,7 @@ class RenderTagTest < Minitest::Test with_taint_mode :error do template = Liquid::Template.parse('{% render "snippet", unsafe: unsafe %}') - context = Context.new('unsafe' => (+'unsafe').tap(&:taint)) + context = Context.new('unsafe' => (+'unsafe').tap(&:taint)) template.render(context) assert_equal [Liquid::TaintedError], template.errors.map(&:class) @@ -60,7 +60,7 @@ class RenderTagTest < Minitest::Test with_taint_mode :warn do template = Liquid::Template.parse('{% render "snippet", unsafe: unsafe %}') - context = Context.new('unsafe' => (+'unsafe').tap(&:taint)) + context = Context.new('unsafe' => (+'unsafe').tap(&:taint)) template.render(context) assert_equal [Liquid::TaintedError], context.warnings.map(&:class) diff --git a/test/integration/tags/standard_tag_test.rb b/test/integration/tags/standard_tag_test.rb index 72b5a37..7939cd3 100644 --- a/test/integration/tags/standard_tag_test.rb +++ b/test/integration/tags/standard_tag_test.rb @@ -174,7 +174,7 @@ class StandardTagTest < Minitest::Test def test_assign_from_case # Example from the shopify forums - code = "{% case collection.handle %}{% when 'menswear-jackets' %}{% assign ptitle = 'menswear' %}{% when 'menswear-t-shirts' %}{% assign ptitle = 'menswear' %}{% else %}{% assign ptitle = 'womenswear' %}{% endcase %}{{ ptitle }}" + code = "{% case collection.handle %}{% when 'menswear-jackets' %}{% assign ptitle = 'menswear' %}{% when 'menswear-t-shirts' %}{% assign ptitle = 'menswear' %}{% else %}{% assign ptitle = 'womenswear' %}{% endcase %}{{ ptitle }}" template = Liquid::Template.parse(code) assert_equal "menswear", template.render!("collection" => { 'handle' => 'menswear-jackets' }) assert_equal "menswear", template.render!("collection" => { 'handle' => 'menswear-t-shirts' }) diff --git a/test/integration/template_test.rb b/test/integration/template_test.rb index 9f21d39..48549f5 100644 --- a/test/integration/template_test.rb +++ b/test/integration/template_test.rb @@ -73,29 +73,29 @@ class TemplateTest < Minitest::Test end def test_persistent_assigns_squash_instance_assigns - t = Template.new + t = Template.new assert_equal 'from instance assigns', t.parse("{% assign foo = 'from instance assigns' %}{{ foo }}").render! t.assigns['foo'] = 'from persistent assigns' assert_equal 'from persistent assigns', t.parse("{{ foo }}").render! end def test_lambda_is_called_once_from_persistent_assigns_over_multiple_parses_and_renders - t = Template.new + t = Template.new t.assigns['number'] = -> { @global ||= 0 - @global += 1 + @global += 1 } assert_equal '1', t.parse("{{number}}").render! assert_equal '1', t.parse("{{number}}").render! assert_equal '1', t.render! - @global = nil + @global = nil end def test_lambda_is_called_once_from_custom_assigns_over_multiple_parses_and_renders - t = Template.new + t = Template.new assigns = { 'number' => -> { @global ||= 0 - @global += 1 + @global += 1 } } assert_equal '1', t.parse("{{number}}").render!(assigns) assert_equal '1', t.parse("{{number}}").render!(assigns) @@ -104,13 +104,13 @@ class TemplateTest < Minitest::Test end def test_resource_limits_works_with_custom_length_method - t = Template.parse("{% assign foo = bar %}") + t = Template.parse("{% assign foo = bar %}") t.resource_limits.render_length_limit = 42 assert_equal "", t.render!("bar" => SomethingWithLength.new) end def test_resource_limits_render_length - t = Template.parse("0123456789") + t = Template.parse("0123456789") t.resource_limits.render_length_limit = 5 assert_equal "Liquid error: Memory limits exceeded", t.render assert t.resource_limits.reached? @@ -121,12 +121,12 @@ class TemplateTest < Minitest::Test end def test_resource_limits_render_score - t = Template.parse("{% for a in (1..10) %} {% for a in (1..10) %} foo {% endfor %} {% endfor %}") + t = Template.parse("{% for a in (1..10) %} {% for a in (1..10) %} foo {% endfor %} {% endfor %}") t.resource_limits.render_score_limit = 50 assert_equal "Liquid error: Memory limits exceeded", t.render assert t.resource_limits.reached? - t = Template.parse("{% for a in (1..100) %} foo {% endfor %}") + t = Template.parse("{% for a in (1..100) %} foo {% endfor %}") t.resource_limits.render_score_limit = 50 assert_equal "Liquid error: Memory limits exceeded", t.render assert t.resource_limits.reached? @@ -137,7 +137,7 @@ class TemplateTest < Minitest::Test end def test_resource_limits_assign_score - t = Template.parse("{% assign foo = 42 %}{% assign bar = 23 %}") + t = Template.parse("{% assign foo = 42 %}{% assign bar = 23 %}") t.resource_limits.assign_score_limit = 1 assert_equal "Liquid error: Memory limits exceeded", t.render assert t.resource_limits.reached? @@ -169,7 +169,7 @@ class TemplateTest < Minitest::Test end def test_resource_limits_aborts_rendering_after_first_error - t = Template.parse("{% for a in (1..100) %} foo1 {% endfor %} bar {% for a in (1..100) %} foo2 {% endfor %}") + t = Template.parse("{% for a in (1..100) %} foo1 {% endfor %} bar {% for a in (1..100) %} foo2 {% endfor %}") t.resource_limits.render_score_limit = 50 assert_equal "Liquid error: Memory limits exceeded", t.render assert t.resource_limits.reached? @@ -184,19 +184,19 @@ class TemplateTest < Minitest::Test end def test_render_length_persists_between_blocks - t = Template.parse("{% if true %}aaaa{% endif %}") + t = Template.parse("{% if true %}aaaa{% endif %}") t.resource_limits.render_length_limit = 7 assert_equal "Liquid error: Memory limits exceeded", t.render t.resource_limits.render_length_limit = 8 assert_equal "aaaa", t.render - t = Template.parse("{% if true %}aaaa{% endif %}{% if true %}bbb{% endif %}") + t = Template.parse("{% if true %}aaaa{% endif %}{% if true %}bbb{% endif %}") t.resource_limits.render_length_limit = 13 assert_equal "Liquid error: Memory limits exceeded", t.render t.resource_limits.render_length_limit = 14 assert_equal "aaaabbb", t.render - t = Template.parse("{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}") + t = Template.parse("{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}{% if true %}a{% endif %}{% if true %}b{% endif %}") t.resource_limits.render_length_limit = 5 assert_equal "Liquid error: Memory limits exceeded", t.render t.resource_limits.render_length_limit = 11 @@ -206,7 +206,7 @@ class TemplateTest < Minitest::Test end def test_render_length_uses_number_of_bytes_not_characters - t = Template.parse("{% if true %}すごい{% endif %}") + t = Template.parse("{% if true %}すごい{% endif %}") t.resource_limits.render_length_limit = 10 assert_equal "Liquid error: Memory limits exceeded", t.render t.resource_limits.render_length_limit = 18 @@ -215,7 +215,7 @@ class TemplateTest < Minitest::Test def test_default_resource_limits_unaffected_by_render_with_context context = Context.new - t = Template.parse("{% for a in (1..100) %} {% assign foo = 1 %} {% endfor %}") + t = Template.parse("{% for a in (1..100) %} {% assign foo = 1 %} {% endfor %}") t.render!(context) assert context.resource_limits.assign_score > 0 assert context.resource_limits.render_score > 0 @@ -223,9 +223,9 @@ class TemplateTest < Minitest::Test end def test_can_use_drop_as_context - t = Template.new + t = Template.new t.registers['lulz'] = 'haha' - drop = TemplateContextDrop.new + drop = TemplateContextDrop.new assert_equal 'fizzbuzz', t.parse('{{foo}}').render!(drop) assert_equal 'bar', t.parse('{{bar}}').render!(drop) assert_equal 'haha', t.parse("{{baz}}").render!(drop) @@ -233,7 +233,7 @@ class TemplateTest < Minitest::Test def test_render_bang_force_rethrow_errors_on_passed_context context = Context.new('drop' => ErroneousDrop.new) - t = Template.new.parse('{{ drop.bad_method }}') + t = Template.new.parse('{{ drop.bad_method }}') e = assert_raises RuntimeError do t.render!(context) @@ -243,7 +243,7 @@ class TemplateTest < Minitest::Test def test_exception_renderer_that_returns_string exception = nil - handler = ->(e) { + handler = ->(e) { exception = e '' } @@ -267,20 +267,20 @@ class TemplateTest < Minitest::Test def test_global_filter_option_on_render global_filter_proc = ->(output) { "#{output} filtered" } - rendered_template = Template.parse("{{name}}").render({ "name" => "bob" }, global_filter: global_filter_proc) + rendered_template = Template.parse("{{name}}").render({ "name" => "bob" }, global_filter: global_filter_proc) assert_equal 'bob filtered', rendered_template end def test_global_filter_option_when_native_filters_exist global_filter_proc = ->(output) { "#{output} filtered" } - rendered_template = Template.parse("{{name | upcase}}").render({ "name" => "bob" }, global_filter: global_filter_proc) + rendered_template = Template.parse("{{name | upcase}}").render({ "name" => "bob" }, global_filter: global_filter_proc) assert_equal 'BOB filtered', rendered_template end def test_undefined_variables - t = Template.parse("{{x}} {{y}} {{z.a}} {{z.b}} {{z.c.d}}") + t = Template.parse("{{x}} {{y}} {{z.a}} {{z.b}} {{z.c.d}}") result = t.render({ 'x' => 33, 'z' => { 'a' => 32, 'c' => { 'e' => 31 } } }, strict_variables: true) assert_equal '33 32 ', result @@ -295,8 +295,8 @@ class TemplateTest < Minitest::Test def test_nil_value_does_not_raise Liquid::Template.error_mode = :strict - t = Template.parse("some{{x}}thing") - result = t.render!({ 'x' => nil }, strict_variables: true) + t = Template.parse("some{{x}}thing") + result = t.render!({ 'x' => nil }, strict_variables: true) assert_equal 0, t.errors.count assert_equal 'something', result @@ -311,8 +311,8 @@ class TemplateTest < Minitest::Test end def test_undefined_drop_methods - d = DropWithUndefinedMethod.new - t = Template.new.parse('{{ foo }} {{ woot }}') + d = DropWithUndefinedMethod.new + t = Template.new.parse('{{ foo }} {{ woot }}') result = t.render(d, strict_variables: true) assert_equal 'foo ', result @@ -330,13 +330,13 @@ class TemplateTest < Minitest::Test end def test_undefined_filters - t = Template.parse("{{a}} {{x | upcase | somefilter1 | somefilter2 | somefilter3}}") + t = Template.parse("{{a}} {{x | upcase | somefilter1 | somefilter2 | somefilter3}}") filters = Module.new do def somefilter3(v) "-#{v}-" end end - result = t.render({ 'a' => 123, 'x' => 'foo' }, filters: [filters], strict_filters: true) + result = t.render({ 'a' => 123, 'x' => 'foo' }, filters: [filters], strict_filters: true) assert_equal '123 ', result assert_equal 1, t.errors.count @@ -353,11 +353,11 @@ class TemplateTest < Minitest::Test end def test_using_range_literal_works_as_expected - t = Template.parse("{% assign foo = (x..y) %}{{ foo }}") + t = Template.parse("{% assign foo = (x..y) %}{{ foo }}") result = t.render('x' => 1, 'y' => 5) assert_equal '1..5', result - t = Template.parse("{% assign nums = (x..y) %}{% for num in nums %}{{ num }}{% endfor %}") + t = Template.parse("{% assign nums = (x..y) %}{% for num in nums %}{{ num }}{% endfor %}") result = t.render('x' => 1, 'y' => 5) assert_equal '12345', result end diff --git a/test/integration/trim_mode_test.rb b/test/integration/trim_mode_test.rb index 4c4d4c8..438f86b 100644 --- a/test/integration/trim_mode_test.rb +++ b/test/integration/trim_mode_test.rb @@ -7,7 +7,7 @@ class TrimModeTest < Minitest::Test # Make sure the trim isn't applied to standard output def test_standard_output - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{{ 'John' }} @@ -25,7 +25,7 @@ class TrimModeTest < Minitest::Test end def test_variable_output_with_multiple_blank_lines - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

@@ -45,7 +45,7 @@ class TrimModeTest < Minitest::Test end def test_tag_output_with_multiple_blank_lines - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

@@ -69,7 +69,7 @@ class TrimModeTest < Minitest::Test # Make sure the trim isn't applied to standard tags def test_standard_tags whitespace = ' ' - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if true %} @@ -78,7 +78,7 @@ class TrimModeTest < Minitest::Test

END_TEMPLATE - expected = <<~END_EXPECTED + expected = <<~END_EXPECTED

#{whitespace} @@ -89,7 +89,7 @@ class TrimModeTest < Minitest::Test END_EXPECTED assert_template_result(expected, text) - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if false %} @@ -110,64 +110,64 @@ class TrimModeTest < Minitest::Test # Make sure the trim isn't too agressive def test_no_trim_output - text = '

{{- \'John\' -}}

' + text = '

{{- \'John\' -}}

' expected = '

John

' assert_template_result(expected, text) end # Make sure the trim isn't too agressive def test_no_trim_tags - text = '

{%- if true -%}yes{%- endif -%}

' + text = '

{%- if true -%}yes{%- endif -%}

' expected = '

yes

' assert_template_result(expected, text) - text = '

{%- if false -%}no{%- endif -%}

' + text = '

{%- if false -%}no{%- endif -%}

' expected = '

' assert_template_result(expected, text) end def test_single_line_outer_tag - text = '

{%- if true %} yes {% endif -%}

' + text = '

{%- if true %} yes {% endif -%}

' expected = '

yes

' assert_template_result(expected, text) - text = '

{%- if false %} no {% endif -%}

' + text = '

{%- if false %} no {% endif -%}

' expected = '

' assert_template_result(expected, text) end def test_single_line_inner_tag - text = '

{% if true -%} yes {%- endif %}

' + text = '

{% if true -%} yes {%- endif %}

' expected = '

yes

' assert_template_result(expected, text) - text = '

{% if false -%} no {%- endif %}

' + text = '

{% if false -%} no {%- endif %}

' expected = '

' assert_template_result(expected, text) end def test_single_line_post_tag - text = '

{% if true -%} yes {% endif -%}

' + text = '

{% if true -%} yes {% endif -%}

' expected = '

yes

' assert_template_result(expected, text) - text = '

{% if false -%} no {% endif -%}

' + text = '

{% if false -%} no {% endif -%}

' expected = '

' assert_template_result(expected, text) end def test_single_line_pre_tag - text = '

{%- if true %} yes {%- endif %}

' + text = '

{%- if true %} yes {%- endif %}

' expected = '

yes

' assert_template_result(expected, text) - text = '

{%- if false %} no {%- endif %}

' + text = '

{%- if false %} no {%- endif %}

' expected = '

' assert_template_result(expected, text) end def test_pre_trim_output - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{{- 'John' }} @@ -184,7 +184,7 @@ class TrimModeTest < Minitest::Test end def test_pre_trim_tags - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if true %} @@ -202,7 +202,7 @@ class TrimModeTest < Minitest::Test END_EXPECTED assert_template_result(expected, text) - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if false %} @@ -221,7 +221,7 @@ class TrimModeTest < Minitest::Test end def test_post_trim_output - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{{ 'John' -}} @@ -238,7 +238,7 @@ class TrimModeTest < Minitest::Test end def test_post_trim_tags - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if true -%} @@ -256,7 +256,7 @@ class TrimModeTest < Minitest::Test END_EXPECTED assert_template_result(expected, text) - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if false -%} @@ -275,7 +275,7 @@ class TrimModeTest < Minitest::Test end def test_pre_and_post_trim_tags - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if true %} @@ -293,7 +293,7 @@ class TrimModeTest < Minitest::Test END_EXPECTED assert_template_result(expected, text) - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if false %} @@ -311,7 +311,7 @@ class TrimModeTest < Minitest::Test end def test_post_and_pre_trim_tags - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if true -%} @@ -330,7 +330,7 @@ class TrimModeTest < Minitest::Test assert_template_result(expected, text) whitespace = ' ' - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if false -%} @@ -339,7 +339,7 @@ class TrimModeTest < Minitest::Test

END_TEMPLATE - expected = <<~END_EXPECTED + expected = <<~END_EXPECTED

#{whitespace} @@ -350,7 +350,7 @@ class TrimModeTest < Minitest::Test end def test_trim_output - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{{- 'John' -}} @@ -366,7 +366,7 @@ class TrimModeTest < Minitest::Test end def test_trim_tags - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if true -%} @@ -382,7 +382,7 @@ class TrimModeTest < Minitest::Test END_EXPECTED assert_template_result(expected, text) - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if false -%} @@ -400,7 +400,7 @@ class TrimModeTest < Minitest::Test end def test_whitespace_trim_output - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{{- 'John' -}}, @@ -417,7 +417,7 @@ class TrimModeTest < Minitest::Test end def test_whitespace_trim_tags - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if true -%} @@ -433,7 +433,7 @@ class TrimModeTest < Minitest::Test END_EXPECTED assert_template_result(expected, text) - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if false -%} @@ -451,7 +451,7 @@ class TrimModeTest < Minitest::Test end def test_complex_trim_output - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{{- 'John' -}} @@ -481,7 +481,7 @@ class TrimModeTest < Minitest::Test end def test_complex_trim - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{%- if true -%} {%- if true -%} @@ -504,7 +504,7 @@ class TrimModeTest < Minitest::Test def test_raw_output whitespace = ' ' - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE
{% raw %} {%- if true -%} @@ -515,7 +515,7 @@ class TrimModeTest < Minitest::Test {% endraw %}
END_TEMPLATE - expected = <<~END_EXPECTED + expected = <<~END_EXPECTED
#{whitespace} {%- if true -%} diff --git a/test/integration/variable_test.rb b/test/integration/variable_test.rb index af8a4cc..94ed1ec 100644 --- a/test/integration/variable_test.rb +++ b/test/integration/variable_test.rb @@ -52,13 +52,13 @@ class VariableTest < Minitest::Test end def test_preset_assigns - template = Template.parse(%({{ test }})) + template = Template.parse(%({{ test }})) template.assigns['test'] = 'worked' assert_equal 'worked', template.render! end def test_reuse_parsed_template - template = Template.parse(%({{ greeting }} {{ name }})) + template = Template.parse(%({{ greeting }} {{ name }})) template.assigns['greeting'] = 'Goodbye' assert_equal 'Hello Tobi', template.render!('greeting' => 'Hello', 'name' => 'Tobi') assert_equal 'Hello ', template.render!('greeting' => 'Hello', 'unknown' => 'Tobi') @@ -68,7 +68,7 @@ class VariableTest < Minitest::Test end def test_assigns_not_polluted_from_template - template = Template.parse(%({{ test }}{% assign test = 'bar' %}{{ test }})) + template = Template.parse(%({{ test }}{% assign test = 'bar' %}{{ test }})) template.assigns['test'] = 'baz' assert_equal 'bazbar', template.render! assert_equal 'bazbar', template.render! @@ -77,12 +77,12 @@ class VariableTest < Minitest::Test end def test_hash_with_default_proc - template = Template.parse(%(Hello {{ test }})) - assigns = Hash.new { |_h, k| raise "Unknown variable '#{k}'" } + template = Template.parse(%(Hello {{ test }})) + assigns = Hash.new { |_h, k| raise "Unknown variable '#{k}'" } assigns['test'] = 'Tobi' assert_equal 'Hello Tobi', template.render!(assigns) assigns.delete('test') - e = assert_raises(RuntimeError) do + e = assert_raises(RuntimeError) do template.render!(assigns) end assert_equal "Unknown variable 'test'", e.message diff --git a/test/test_helper.rb b/test/test_helper.rb index 0f00eff..9606ef8 100755 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -8,8 +8,8 @@ $LOAD_PATH.unshift(File.join(File.expand_path(__dir__), '..', 'lib')) require 'liquid.rb' require 'liquid/profiler' -mode = :strict -if (env_mode = ENV['LIQUID_PARSER_MODE']) +mode = :strict +if (env_mode = ENV['LIQUID_PARSER_MODE']) puts "-- #{env_mode.upcase} ERROR MODE" mode = env_mode.to_sym end @@ -71,7 +71,7 @@ module Minitest end def with_taint_mode(mode) - old_mode = Liquid::Template.taint_mode + old_mode = Liquid::Template.taint_mode Liquid::Template.taint_mode = mode yield ensure @@ -79,7 +79,7 @@ module Minitest end def with_error_mode(mode) - old_mode = Liquid::Template.error_mode + old_mode = Liquid::Template.error_mode Liquid::Template.error_mode = mode yield ensure @@ -128,7 +128,7 @@ class StubFileSystem def initialize(values) @file_read_count = 0 - @values = values + @values = values end def read_template_file(template_path) diff --git a/test/unit/block_unit_test.rb b/test/unit/block_unit_test.rb index 0f79a51..fa06a87 100644 --- a/test/unit/block_unit_test.rb +++ b/test/unit/block_unit_test.rb @@ -63,7 +63,7 @@ class BlockUnitTest < Minitest::Test assert_equal 'hello', template.render - buf = +'' + buf = +'' output = template.render({}, output: buf) assert_equal 'hello', output assert_equal 'hello', buf @@ -81,7 +81,7 @@ class BlockUnitTest < Minitest::Test assert_equal 'foohellobar', template.render - buf = +'' + buf = +'' output = template.render({}, output: buf) assert_equal 'foohellobar', output assert_equal 'foohellobar', buf diff --git a/test/unit/condition_unit_test.rb b/test/unit/condition_unit_test.rb index e79c863..8d4e02f 100644 --- a/test/unit/condition_unit_test.rb +++ b/test/unit/condition_unit_test.rb @@ -75,9 +75,9 @@ class ConditionUnitTest < Minitest::Test end def test_contains_works_on_arrays - @context = Liquid::Context.new + @context = Liquid::Context.new @context['array'] = [1, 2, 3, 4, 5] - array_expr = VariableLookup.new("array") + array_expr = VariableLookup.new("array") assert_evaluates_false array_expr, 'contains', 0 assert_evaluates_true array_expr, 'contains', 1 @@ -142,7 +142,7 @@ class ConditionUnitTest < Minitest::Test end def test_left_or_right_may_contain_operators - @context = Liquid::Context.new + @context = Liquid::Context.new @context['one'] = @context['another'] = "gnomeslab-and-or-liquid" assert_evaluates_true VariableLookup.new("one"), '==', VariableLookup.new("another") diff --git a/test/unit/context_unit_test.rb b/test/unit/context_unit_test.rb index 8b132a1..3b460d7 100644 --- a/test/unit/context_unit_test.rb +++ b/test/unit/context_unit_test.rb @@ -46,7 +46,7 @@ end class CounterDrop < Liquid::Drop def count @count ||= 0 - @count += 1 + @count += 1 end end @@ -55,9 +55,9 @@ class ArrayLike end def [](index) - @counts ||= [] + @counts ||= [] @counts[index] ||= 0 - @counts[index] += 1 + @counts[index] += 1 end def to_liquid @@ -85,7 +85,7 @@ class ContextUnitTest < Minitest::Test @context['date'] = Date.today assert_equal Date.today, @context['date'] - now = Time.now + now = Time.now @context['datetime'] = now assert_equal now, @context['datetime'] @@ -265,7 +265,7 @@ class ContextUnitTest < Minitest::Test def test_access_hashes_with_hash_notation @context['products'] = { 'count' => 5, 'tags' => ['deepsnow', 'freestyle'] } - @context['product'] = { 'variants' => [{ 'title' => 'draft151cm' }, { 'title' => 'element151cm' }] } + @context['product'] = { 'variants' => [{ 'title' => 'draft151cm' }, { 'title' => 'element151cm' }] } assert_equal 5, @context['products["count"]'] assert_equal 'deepsnow', @context['products["tags"][0]'] @@ -285,8 +285,8 @@ class ContextUnitTest < Minitest::Test end def test_access_hashes_with_hash_access_variables - @context['var'] = 'tags' - @context['nested'] = { 'var' => 'tags' } + @context['var'] = 'tags' + @context['nested'] = { 'var' => 'tags' } @context['products'] = { 'count' => 5, 'tags' => ['deepsnow', 'freestyle'] } assert_equal 'deepsnow', @context['products[var].first'] @@ -295,7 +295,7 @@ class ContextUnitTest < Minitest::Test def test_hash_notation_only_for_hash_access @context['array'] = [1, 2, 3, 4, 5] - @context['hash'] = { 'first' => 'Hello' } + @context['hash'] = { 'first' => 'Hello' } assert_equal 1, @context['array.first'] assert_nil @context['array["first"]'] @@ -407,7 +407,7 @@ class ContextUnitTest < Minitest::Test def test_lambda_is_called_once @context['callcount'] = proc { @global ||= 0 - @global += 1 + @global += 1 @global.to_s } @@ -421,7 +421,7 @@ class ContextUnitTest < Minitest::Test def test_nested_lambda_is_called_once @context['callcount'] = { "lambda" => proc { @global ||= 0 - @global += 1 + @global += 1 @global.to_s } } @@ -435,7 +435,7 @@ class ContextUnitTest < Minitest::Test def test_lambda_in_array_is_called_once @context['callcount'] = [1, 2, proc { @global ||= 0 - @global += 1 + @global += 1 @global.to_s }, 4, 5] @@ -476,7 +476,7 @@ class ContextUnitTest < Minitest::Test def test_apply_global_filter global_filter_proc = ->(output) { "#{output} filtered" } - context = Context.new + context = Context.new context.global_filter = global_filter_proc assert_equal 'hi filtered', context.apply_global_filter('hi') @@ -498,53 +498,53 @@ class ContextUnitTest < Minitest::Test end def test_new_isolated_subcontext_does_not_inherit_variables - super_context = Context.new + super_context = Context.new super_context['my_variable'] = 'some value' - subcontext = super_context.new_isolated_subcontext + subcontext = super_context.new_isolated_subcontext assert_nil subcontext['my_variable'] end def test_new_isolated_subcontext_inherits_static_environment super_context = Context.build(static_environments: { 'my_environment_value' => 'my value' }) - subcontext = super_context.new_isolated_subcontext + subcontext = super_context.new_isolated_subcontext assert_equal 'my value', subcontext['my_environment_value'] end def test_new_isolated_subcontext_inherits_resource_limits resource_limits = ResourceLimits.new({}) - super_context = Context.new({}, {}, {}, false, resource_limits) - subcontext = super_context.new_isolated_subcontext + super_context = Context.new({}, {}, {}, false, resource_limits) + subcontext = super_context.new_isolated_subcontext assert_equal resource_limits, subcontext.resource_limits end def test_new_isolated_subcontext_inherits_exception_renderer - super_context = Context.new + super_context = Context.new super_context.exception_renderer = ->(_e) { 'my exception message' } - subcontext = super_context.new_isolated_subcontext + subcontext = super_context.new_isolated_subcontext assert_equal 'my exception message', subcontext.handle_error(Liquid::Error.new) end def test_new_isolated_subcontext_does_not_inherit_non_static_registers - registers = { + registers = { my_register: :my_value, } - super_context = Context.new({}, {}, StaticRegisters.new(registers)) + super_context = Context.new({}, {}, StaticRegisters.new(registers)) super_context.registers[:my_register] = :my_alt_value - subcontext = super_context.new_isolated_subcontext + subcontext = super_context.new_isolated_subcontext assert_equal :my_value, subcontext.registers[:my_register] end def test_new_isolated_subcontext_inherits_static_registers super_context = Context.build(registers: { my_register: :my_value }) - subcontext = super_context.new_isolated_subcontext + subcontext = super_context.new_isolated_subcontext assert_equal :my_value, subcontext.registers[:my_register] end def test_new_isolated_subcontext_registers_do_not_pollute_context - super_context = Context.build(registers: { my_register: :my_value }) - subcontext = super_context.new_isolated_subcontext + super_context = Context.build(registers: { my_register: :my_value }) + subcontext = super_context.new_isolated_subcontext subcontext.registers[:my_register] = :my_alt_value assert_equal :my_value, super_context.registers[:my_register] end @@ -558,8 +558,8 @@ class ContextUnitTest < Minitest::Test super_context = Context.new super_context.add_filters([my_filter]) - subcontext = super_context.new_isolated_subcontext - template = Template.parse('{{ 123 | my_filter }}') + subcontext = super_context.new_isolated_subcontext + template = Template.parse('{{ 123 | my_filter }}') assert_equal 'my filter result', template.render(subcontext) end diff --git a/test/unit/partial_cache_unit_test.rb b/test/unit/partial_cache_unit_test.rb index 145c27d..dd43185 100644 --- a/test/unit/partial_cache_unit_test.rb +++ b/test/unit/partial_cache_unit_test.rb @@ -21,7 +21,7 @@ class PartialCacheUnitTest < Minitest::Test def test_reads_from_the_file_system_only_once_per_file file_system = StubFileSystem.new('my_partial' => 'some partial body') - context = Liquid::Context.build( + context = Liquid::Context.build( registers: { file_system: file_system } ) @@ -37,16 +37,16 @@ class PartialCacheUnitTest < Minitest::Test end def test_cache_state_is_stored_per_context - parse_context = Liquid::ParseContext.new + parse_context = Liquid::ParseContext.new shared_file_system = StubFileSystem.new( 'my_partial' => 'my shared value' ) - context_one = Liquid::Context.build( + context_one = Liquid::Context.build( registers: { file_system: shared_file_system, } ) - context_two = Liquid::Context.build( + context_two = Liquid::Context.build( registers: { file_system: shared_file_system, } @@ -71,7 +71,7 @@ class PartialCacheUnitTest < Minitest::Test def test_cache_is_not_broken_when_a_different_parse_context_is_used file_system = StubFileSystem.new('my_partial' => 'some partial body') - context = Liquid::Context.build( + context = Liquid::Context.build( registers: { file_system: file_system } ) diff --git a/test/unit/static_registers_unit_test.rb b/test/unit/static_registers_unit_test.rb index 620375b..125440f 100644 --- a/test/unit/static_registers_unit_test.rb +++ b/test/unit/static_registers_unit_test.rb @@ -6,10 +6,10 @@ class StaticRegistersUnitTest < Minitest::Test include Liquid def set - static_register = StaticRegisters.new - static_register[nil] = true - static_register[1] = :one - static_register[:one] = "one" + static_register = StaticRegisters.new + static_register[nil] = true + static_register[1] = :one + static_register[:one] = "one" static_register["two"] = "three" static_register["two"] = 3 static_register[false] = nil @@ -77,10 +77,10 @@ class StaticRegistersUnitTest < Minitest::Test end def set_with_static - static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) - static_register[nil] = false + static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) + static_register[nil] = false static_register["two"] = 4 - static_register[true] = "foo" + static_register[true] = "foo" assert_equal({ nil => true, 1 => :one, :one => "one", "two" => 3, false => nil }, static_register.static) assert_equal({ nil => false, "two" => 4, true => "foo" }, static_register.registers) @@ -154,23 +154,23 @@ class StaticRegistersUnitTest < Minitest::Test end def test_new_static_retains_static - static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) - static_register["one"] = 1 - static_register["two"] = 2 + static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) + static_register["one"] = 1 + static_register["two"] = 2 static_register["three"] = 3 new_register = StaticRegisters.new(static_register) assert_equal({}, new_register.registers) - new_register["one"] = 4 - new_register["two"] = 5 + new_register["one"] = 4 + new_register["two"] = 5 new_register["three"] = 6 newest_register = StaticRegisters.new(new_register) assert_equal({}, newest_register.registers) - newest_register["one"] = 7 - newest_register["two"] = 8 + newest_register["one"] = 7 + newest_register["two"] = 8 newest_register["three"] = 9 assert_equal({ "one" => 1, "two" => 2, "three" => 3 }, static_register.registers) @@ -182,23 +182,23 @@ class StaticRegistersUnitTest < Minitest::Test end def test_multiple_instances_are_unique - static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) - static_register["one"] = 1 - static_register["two"] = 2 + static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) + static_register["one"] = 1 + static_register["two"] = 2 static_register["three"] = 3 new_register = StaticRegisters.new(foo: :bar) assert_equal({}, new_register.registers) - new_register["one"] = 4 - new_register["two"] = 5 + new_register["one"] = 4 + new_register["two"] = 5 new_register["three"] = 6 newest_register = StaticRegisters.new(bar: :foo) assert_equal({}, newest_register.registers) - newest_register["one"] = 7 - newest_register["two"] = 8 + newest_register["one"] = 7 + newest_register["two"] = 8 newest_register["three"] = 9 assert_equal({ "one" => 1, "two" => 2, "three" => 3 }, static_register.registers) @@ -210,9 +210,9 @@ class StaticRegistersUnitTest < Minitest::Test end def test_can_update_static_directly_and_updates_all_instances - static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) - static_register["one"] = 1 - static_register["two"] = 2 + static_register = StaticRegisters.new(nil => true, 1 => :one, :one => "one", "two" => 3, false => nil) + static_register["one"] = 1 + static_register["two"] = 2 static_register["three"] = 3 new_register = StaticRegisters.new(static_register) @@ -220,9 +220,9 @@ class StaticRegistersUnitTest < Minitest::Test assert_equal({ nil => true, 1 => :one, :one => "one", "two" => 3, false => nil }, static_register.static) - new_register["one"] = 4 - new_register["two"] = 5 - new_register["three"] = 6 + new_register["one"] = 4 + new_register["two"] = 5 + new_register["three"] = 6 new_register.static["four"] = 10 newest_register = StaticRegisters.new(new_register) @@ -230,9 +230,9 @@ class StaticRegistersUnitTest < Minitest::Test assert_equal({ nil => true, 1 => :one, :one => "one", "two" => 3, false => nil, "four" => 10 }, new_register.static) - newest_register["one"] = 7 - newest_register["two"] = 8 - newest_register["three"] = 9 + newest_register["one"] = 7 + newest_register["two"] = 8 + newest_register["three"] = 9 new_register.static["four"] = 5 new_register.static["five"] = 15 diff --git a/test/unit/strainer_unit_test.rb b/test/unit/strainer_unit_test.rb index b2d393a..2fb9ad4 100644 --- a/test/unit/strainer_unit_test.rb +++ b/test/unit/strainer_unit_test.rb @@ -72,8 +72,8 @@ class StrainerUnitTest < Minitest::Test end def test_strainer_uses_a_class_cache_to_avoid_method_cache_invalidation - a = Module.new - b = Module.new + a = Module.new + b = Module.new strainer = Strainer.create(nil, [a, b]) assert_kind_of Strainer, strainer assert_kind_of a, strainer @@ -82,8 +82,8 @@ class StrainerUnitTest < Minitest::Test end def test_add_filter_when_wrong_filter_class - c = Context.new - s = c.strainer + c = Context.new + s = c.strainer wrong_filter = ->(v) { v.reverse } assert_raises ArgumentError do @@ -150,7 +150,7 @@ class StrainerUnitTest < Minitest::Test end def test_add_filter_does_not_include_already_included_module - mod = Module.new do + mod = Module.new do class << self attr_accessor :include_count def included(_mod) diff --git a/test/unit/tag_unit_test.rb b/test/unit/tag_unit_test.rb index c5de4ad..c9543e9 100644 --- a/test/unit/tag_unit_test.rb +++ b/test/unit/tag_unit_test.rb @@ -33,7 +33,7 @@ class TagUnitTest < Minitest::Test assert_equal 'hello', template.render - buf = +'' + buf = +'' output = template.render({}, output: buf) assert_equal 'hello', output assert_equal 'hello', buf @@ -51,7 +51,7 @@ class TagUnitTest < Minitest::Test assert_equal 'foohellobar', template.render - buf = +'' + buf = +'' output = template.render({}, output: buf) assert_equal 'foohellobar', output assert_equal 'foohellobar', buf diff --git a/test/unit/template_unit_test.rb b/test/unit/template_unit_test.rb index deb4f25..bc02896 100644 --- a/test/unit/template_unit_test.rb +++ b/test/unit/template_unit_test.rb @@ -22,7 +22,7 @@ class TemplateUnitTest < Minitest::Test def test_with_cache_classes_tags_returns_the_same_class original_cache_setting = Liquid.cache_classes - Liquid.cache_classes = true + Liquid.cache_classes = true original_klass = Class.new Object.send(:const_set, :CustomTag, original_klass) @@ -42,7 +42,7 @@ class TemplateUnitTest < Minitest::Test def test_without_cache_classes_tags_reloads_the_class original_cache_setting = Liquid.cache_classes - Liquid.cache_classes = false + Liquid.cache_classes = false original_klass = Class.new Object.send(:const_set, :CustomTag, original_klass) diff --git a/test/unit/tokenizer_unit_test.rb b/test/unit/tokenizer_unit_test.rb index 092c743..44342d6 100644 --- a/test/unit/tokenizer_unit_test.rb +++ b/test/unit/tokenizer_unit_test.rb @@ -34,15 +34,15 @@ class TokenizerTest < Minitest::Test def tokenize(source) tokenizer = Liquid::Tokenizer.new(source) - tokens = [] - while (t = tokenizer.shift) + tokens = [] + while (t = tokenizer.shift) tokens << t end tokens end def tokenize_line_numbers(source) - tokenizer = Liquid::Tokenizer.new(source, true) + tokenizer = Liquid::Tokenizer.new(source, true) line_numbers = [] loop do line_number = tokenizer.line_number