diff --git a/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml b/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml index 5f5212ca8..f5bbf72ae 100644 --- a/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +++ b/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml @@ -892,7 +892,7 @@ Lint/FormatParameterMismatch: Enabled: true Lint/HandleExceptions: - Enabled: true + AllowComments: true Lint/ImplicitStringConcatenation: Description: Checks for adjacent string literals on the same line, which could diff --git a/Rakefile b/Rakefile index 66ae0faee..780ec3535 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 55e21d215..f784bcaa9 100644 --- a/example/server/liquid_servlet.rb +++ b/example/server/liquid_servlet.rb @@ -12,16 +12,16 @@ def do_POST(req, res) 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.body = Liquid::Template.parse(read_template).render(@assigns, filters: [ProductsFilter]) end def read_template(filename = @action) diff --git a/lib/liquid/block_body.rb b/lib/liquid/block_body.rb index 45be8b8af..6a412d2c2 100644 --- a/lib/liquid/block_body.rb +++ b/lib/liquid/block_body.rb @@ -2,18 +2,18 @@ module Liquid class BlockBody - LiquidTagToken = /\A\s*(\w+)\s*(.*?)\z/o - FullToken = /\A#{TagStart}#{WhitespaceControl}?(\s*)(\w+)(\s*)(.*?)#{WhitespaceControl}?#{TagEnd}\z/om - ContentOfVariable = /\A#{VariableStart}#{WhitespaceControl}?(.*?)#{WhitespaceControl}?#{VariableEnd}\z/om + LiquidTagToken = /\A\s*(\w+)\s*(.*?)\z/o + FullToken = /\A#{TagStart}#{WhitespaceControl}?(\s*)(\w+)(\s*)(.*?)#{WhitespaceControl}?#{TagEnd}\z/om + ContentOfVariable = /\A#{VariableStart}#{WhitespaceControl}?(.*?)#{WhitespaceControl}?#{VariableEnd}\z/om WhitespaceOrNothing = /\A\s*\z/ - TAGSTART = "{%" - VARSTART = "{{" + TAGSTART = "{%" + VARSTART = "{{" attr_reader :nodelist def initialize @nodelist = [] - @blank = true + @blank = true end def parse(tokenizer, parse_context, &block) @@ -35,7 +35,7 @@ def parse(tokenizer, parse_context, &block) return yield token, token end tag_name = Regexp.last_match(1) - markup = Regexp.last_match(2) + 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 @@ -61,7 +61,7 @@ def parse(tokenizer, parse_context, &block) 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, diff --git a/lib/liquid/condition.rb b/lib/liquid/condition.rb index 93ec68b74..67582632a 100644 --- a/lib/liquid/condition.rb +++ b/lib/liquid/condition.rb @@ -35,10 +35,11 @@ def self.operators attr_accessor :left, :operator, :right def initialize(left = nil, operator = nil, right = nil) - @left = left + @left = left @operator = operator - @right = right - @child_relation = nil + @right = right + + @child_relation = nil @child_condition = nil end @@ -62,12 +63,12 @@ def evaluate(context = Context.new) 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 +116,7 @@ def interpret_condition(left, right, op, context) # 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 88e467134..81bd43d58 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -41,8 +41,8 @@ def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_erro self.exception_renderer = ->(_e) { raise } end - @interrupts = [] - @filters = [] + @interrupts = [] + @filters = [] @global_filter = nil end # rubocop:enable Metrics/ParameterLists @@ -87,7 +87,7 @@ def pop_interrupt def handle_error(e, line_number = nil) 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,11 +138,11 @@ def new_isolated_subcontext 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.filters = @filters subcontext.strainer = nil - subcontext.errors = errors + subcontext.errors = errors subcontext.warnings = warnings end end @@ -188,7 +188,7 @@ def find_variable(key, raise_on_not_found: true) 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 eda0bd2a4..4937da380 100644 --- a/lib/liquid/errors.rb +++ b/lib/liquid/errors.rb @@ -40,19 +40,19 @@ def message_prefix 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/file_system.rb b/lib/liquid/file_system.rb index 27ab63257..67ba47cb1 100644 --- a/lib/liquid/file_system.rb +++ b/lib/liquid/file_system.rb @@ -47,7 +47,7 @@ class LocalFileSystem 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 0ffa25590..4685166f8 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/lexer.rb b/lib/liquid/lexer.rb index a251c3e59..f62058196 100644 --- a/lib/liquid/lexer.rb +++ b/lib/liquid/lexer.rb @@ -15,12 +15,12 @@ class Lexer '?' => :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) @@ -33,7 +33,7 @@ def tokenize 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] @@ -46,7 +46,7 @@ def tokenize 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 4afdbe596..83d4e0ff4 100644 --- a/lib/liquid/parse_context.rb +++ b/lib/liquid/parse_context.rb @@ -7,9 +7,11 @@ class ParseContext def initialize(options = {}) @template_options = options ? options.dup : {} - @locale = @template_options[:locale] ||= I18n.new + + @locale = @template_options[:locale] ||= I18n.new @warnings = [] - self.depth = 0 + + self.depth = 0 self.partial = false end @@ -20,6 +22,7 @@ def [](option_key) def partial=(value) @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 d50943f30..c9c6646e1 100644 --- a/lib/liquid/parse_tree_visitor.rb +++ b/lib/liquid/parse_tree_visitor.rb @@ -11,7 +11,7 @@ def self.for(node, callbacks = Hash.new(proc {})) end def initialize(node, callbacks) - @node = node + @node = node @callbacks = callbacks end diff --git a/lib/liquid/parser.rb b/lib/liquid/parser.rb index 6b9e83748..e038037ab 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) diff --git a/lib/liquid/parser_switching.rb b/lib/liquid/parser_switching.rb index 402b05663..e2f8546df 100644 --- a/lib/liquid/parser_switching.rb +++ b/lib/liquid/parser_switching.rb @@ -21,7 +21,7 @@ def parse_with_selected_parser(markup) 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 43c2e39b7..8c2e5d214 100644 --- a/lib/liquid/partial_cache.rb +++ b/lib/liquid/partial_cache.rb @@ -8,7 +8,8 @@ def self.load(template_name, context:, parse_context:) return cached if cached file_system = (context.registers[:file_system] ||= Liquid::Template.file_system) - source = file_system.read_template_file(template_name) + source = file_system.read_template_file(template_name) + parse_context.partial = true partial = Liquid::Template.parse(source, parse_context) diff --git a/lib/liquid/profiler.rb b/lib/liquid/profiler.rb index 422c7161f..8ab267ab1 100644 --- a/lib/liquid/profiler.rb +++ b/lib/liquid/profiler.rb @@ -64,7 +64,7 @@ def start end def finish - @end_time = Time.now + @end_time = Time.now @total_time = @end_time - @start_time if @children.empty? @@ -112,11 +112,11 @@ def self.current_profile def initialize(partial_name = "") @partial_stack = [partial_name] - @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 diff --git a/lib/liquid/range_lookup.rb b/lib/liquid/range_lookup.rb index 8e4d76522..57bccd00b 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 @@ def self.parse(start_markup, end_markup) 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/registers/disabled_tags.rb b/lib/liquid/registers/disabled_tags.rb index b1cd3bda0..4499099e1 100644 --- a/lib/liquid/registers/disabled_tags.rb +++ b/lib/liquid/registers/disabled_tags.rb @@ -20,7 +20,7 @@ def disable(tags) def increment(tag) @disabled_tags[tag] ||= 0 - @disabled_tags[tag] += 1 + @disabled_tags[tag] += 1 end def decrement(tag) diff --git a/lib/liquid/resource_limits.rb b/lib/liquid/resource_limits.rb index 5b7e8e463..9c898f003 100644 --- a/lib/liquid/resource_limits.rb +++ b/lib/liquid/resource_limits.rb @@ -7,8 +7,8 @@ class ResourceLimits 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 50201e317..f746ef6f9 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -13,7 +13,7 @@ module StandardFilters "'" => ''', }.freeze HTML_ESCAPE_ONCE_REGEXP = /["><']|&(?!([a-zA-Z]+|(#\d+));)/ - STRIP_HTML_BLOCKS = Regexp.union( + STRIP_HTML_BLOCKS = Regexp.union( %r{}m, //m, %r{}m @@ -77,19 +77,24 @@ def slice(input, offset, length = nil) def truncate(input, length = 50, truncate_string = "...") return if input.nil? input_str = input.to_s - length = Utils.to_integer(length) + length = Utils.to_integer(length) + truncate_string_str = truncate_string.to_s + 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) + 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 @@ -115,7 +120,7 @@ def rstrip(input) end def strip_html(input) - empty = '' + empty = '' result = input.to_s.gsub(STRIP_HTML_BLOCKS, empty) result.gsub!(STRIP_HTML_TAGS, empty) result @@ -471,7 +476,7 @@ class InputIterator def initialize(input, context) @context = context - @input = if input.is_a?(Array) + @input = if input.is_a?(Array) input.flatten elsif input.is_a?(Hash) [input] diff --git a/lib/liquid/static_registers.rb b/lib/liquid/static_registers.rb index 06c52ab01..da2c2c398 100644 --- a/lib/liquid/static_registers.rb +++ b/lib/liquid/static_registers.rb @@ -5,7 +5,7 @@ class StaticRegisters 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/tablerowloop_drop.rb b/lib/liquid/tablerowloop_drop.rb index 0d00b6f1a..3284b1b72 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 diff --git a/lib/liquid/tag.rb b/lib/liquid/tag.rb index ffd22868d..937c8027f 100644 --- a/lib/liquid/tag.rb +++ b/lib/liquid/tag.rb @@ -25,10 +25,10 @@ def disabled_tags 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 aaad14cfd..e10b729d7 100644 --- a/lib/liquid/tags/assign.rb +++ b/lib/liquid/tags/assign.rb @@ -21,7 +21,7 @@ def self.syntax_error_translation_key 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) diff --git a/lib/liquid/tags/cycle.rb b/lib/liquid/tags/cycle.rb index b203c785f..6aee14c02 100644 --- a/lib/liquid/tags/cycle.rb +++ b/lib/liquid/tags/cycle.rb @@ -24,10 +24,10 @@ def initialize(tag_name, markup, options) case markup when NamedSyntax @variables = variables_from_string(Regexp.last_match(2)) - @name = Expression.parse(Regexp.last_match(1)) + @name = Expression.parse(Regexp.last_match(1)) when SimpleSyntax @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 @@ def initialize(tag_name, markup, options) 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]) @@ -50,9 +50,9 @@ def render_to_output_buffer(context, output) output << val iteration += 1 - iteration = 0 if iteration >= @variables.size - context.registers[:cycle][key] = iteration + iteration = 0 if iteration >= @variables.size + context.registers[:cycle][key] = iteration output end diff --git a/lib/liquid/tags/for.rb b/lib/liquid/tags/for.rb index 5c7b56012..44e0d379b 100644 --- a/lib/liquid/tags/for.rb +++ b/lib/liquid/tags/for.rb @@ -88,10 +88,10 @@ def render_to_output_buffer(context, output) 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(TagAttributes) do |key, value| set_attribute(key, value) @@ -105,9 +105,11 @@ def strict_parse(markup) 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 @collection_name = Expression.parse(collection_name) + + @name = "#{@variable_name}-#{collection_name}" @reversed = p.id?('reversed') while p.look(:id) && p.look(:colon, 1) @@ -156,7 +158,7 @@ def collection_segment(context) 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 b68e309a6..d0e64c985 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 = /(#{QuotedFragment})\s*([=!<>a-z_]+)?\s*(#{QuotedFragment})?/o + Syntax = /(#{QuotedFragment})\s*([=!<>a-z_]+)?\s*(#{QuotedFragment})?/o ExpressionsAndOperators = /(?:\b(?:\s?and\s?|\s?or\s?)\b|(?:\s*(?!\b(?:\s?and\s?|\s?or\s?)\b)(?:#{QuotedFragment}|\S+)\s*)+)/o - BOOLEAN_OPERATORS = %w(and or).freeze + BOOLEAN_OPERATORS = %w(and or).freeze attr_reader :blocks diff --git a/lib/liquid/tags/include.rb b/lib/liquid/tags/include.rb index d90c731b9..5b7bcc566 100644 --- a/lib/liquid/tags/include.rb +++ b/lib/liquid/tags/include.rb @@ -29,10 +29,10 @@ def initialize(tag_name, markup, options) template_name = Regexp.last_match(1) variable_name = Regexp.last_match(3) - @alias_name = Regexp.last_match(5) + @alias_name = Regexp.last_match(5) @variable_name_expr = variable_name ? Expression.parse(variable_name) : nil @template_name_expr = Expression.parse(template_name) - @attributes = {} + @attributes = {} markup.scan(TagAttributes) do |key, value| @attributes[key] = Expression.parse(value) @@ -65,10 +65,10 @@ def render_to_output_buffer(context, output) 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) @@ -86,7 +86,7 @@ def render_to_output_buffer(context, output) end ensure context.template_name = old_template_name - context.partial = old_partial + context.partial = old_partial end output diff --git a/lib/liquid/tags/render.rb b/lib/liquid/tags/render.rb index 73773ee0f..f880a16d5 100644 --- a/lib/liquid/tags/render.rb +++ b/lib/liquid/tags/render.rb @@ -44,10 +44,11 @@ def render_tag(context, output) context_variable_name = @alias_name || template_name.split('/').last render_partial_func = ->(var, forloop) { - inner_context = context.new_isolated_subcontext + inner_context = context.new_isolated_subcontext inner_context.template_name = template_name - inner_context.partial = true - inner_context['forloop'] = forloop if forloop + inner_context.partial = true + inner_context['forloop'] = forloop if forloop + @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 7c59bd323..353f9e388 100644 --- a/lib/liquid/tags/table_row.rb +++ b/lib/liquid/tags/table_row.rb @@ -9,9 +9,9 @@ class TableRow < Block 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(TagAttributes) do |key, value| @attributes[key] = Expression.parse(value) end @@ -24,11 +24,10 @@ def render_to_output_buffer(context, output) (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) - - length = collection.length + length = collection.length cols = context.evaluate(@attributes['cols']).to_i diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 8631baea1..228870cf7 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -24,7 +24,7 @@ class TagRegistry include Enumerable def initialize - @tags = {} + @tags = {} @cache = {} end @@ -128,19 +128,19 @@ def parse(source, options = {}) 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 @@ -187,7 +187,7 @@ def render(*args) 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) @@ -204,7 +204,7 @@ def render(*args) case args.last when Hash options = args.pop - output = options[:output] if options[:output] + output = options[:output] if options[:output] options[:registers]&.each do |key, register| context_register[key] = register @@ -269,10 +269,10 @@ def with_profiling(context) 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 a89c7899c..42745e02f 100644 --- a/lib/liquid/tokenizer.rb +++ b/lib/liquid/tokenizer.rb @@ -5,10 +5,10 @@ class Tokenizer 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 709fb0026..15a513ff7 100644 --- a/lib/liquid/utils.rb +++ b/lib/liquid/utils.rb @@ -12,7 +12,7 @@ def self.slice_collection(collection, from, to) 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 5b686e2d3..9566f94c8 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -12,10 +12,10 @@ module Liquid # {{ user | link }} # class Variable - FilterMarkupRegex = /#{FilterSeparator}\s*(.*)/om - FilterParser = /(?:\s+|#{QuotedFragment}|#{ArgumentSeparator})+/o - FilterArgsRegex = /(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o - JustTagAttributes = /\A#{TagAttributes}\z/o + FilterMarkupRegex = /#{FilterSeparator}\s*(.*)/om + FilterParser = /(?:\s+|#{QuotedFragment}|#{ArgumentSeparator})+/o + FilterArgsRegex = /(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o + JustTagAttributes = /\A#{TagAttributes}\z/o MarkupWithQuotedFragment = /(#{QuotedFragment})(.*)/om attr_accessor :filters, :name, :line_number @@ -25,10 +25,10 @@ class Variable 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 @@ def lax_parse(markup) @filters = [] return unless markup =~ MarkupWithQuotedFragment - 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 =~ FilterMarkupRegex filters = Regexp.last_match(1).scan(FilterParser) filters.each do |f| @@ -115,11 +115,11 @@ def disabled_tags 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(JustTagAttributes)) - keyword_args ||= {} + keyword_args ||= {} keyword_args[matches[1]] = Expression.parse(matches[2]) else filter_args << Expression.parse(a) @@ -149,8 +149,8 @@ def taint_check(context, obj) @markup =~ QuotedFragment 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 112373d5c..48c7d9892 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 @@ -20,7 +20,7 @@ def initialize(markup) end @name = name - @lookups = lookups + @lookups = lookups @command_flags = 0 @lookups.each_index do |i| @@ -34,7 +34,7 @@ def initialize(markup) 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 @@ def evaluate(context) (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 4d28b9acf..8bf231340 100644 --- a/performance/benchmark.rb +++ b/performance/benchmark.rb @@ -7,7 +7,7 @@ profiler = ThemeRunner.new Benchmark.ips do |x| - x.time = 10 + x.time = 10 x.warmup = 5 puts diff --git a/performance/shopify/comment_form.rb b/performance/shopify/comment_form.rb index 7648e1a4c..e60354510 100644 --- a/performance/shopify/comment_form.rb +++ b/performance/shopify/comment_form.rb @@ -8,7 +8,7 @@ def initialize(tag_name, markup, options) 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/paginate.rb b/performance/shopify/paginate.rb index f72382382..fb5033571 100644 --- a/performance/shopify/paginate.rb +++ b/performance/shopify/paginate.rb @@ -8,7 +8,7 @@ def initialize(tag_name, markup, options) 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 5ad01c554..d8d093661 100644 --- a/performance/theme_runner.rb +++ b/performance/theme_runner.rb @@ -58,9 +58,9 @@ def run # `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 @@ def render 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 @@ def compile_all_tests 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 @@ def each_test # 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 ee8bf5f04..99a32dcc2 100644 --- a/test/integration/assign_test.rb +++ b/test/integration/assign_test.rb @@ -10,8 +10,8 @@ def test_assign_with_hyphen_in_variable_name {% 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 2e579ad13..39098dde2 100644 --- a/test/integration/capture_test.rb +++ b/test/integration/capture_test.rb @@ -14,8 +14,8 @@ def test_capture_with_hyphen_in_variable_name {% 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 @@ def test_capture_to_variable_from_outer_scope_if_existing {% 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 @@ def test_assigning_from_capture {% 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 2c468aaed..eeb1238a3 100644 --- a/test/integration/drop_test.rb +++ b/test/integration/drop_test.rb @@ -125,7 +125,7 @@ def test_rendering_raises_on_tainted_attr 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 a5f1cfcf8..c6463cce7 100644 --- a/test/integration/error_handling_test.rb +++ b/test/integration/error_handling_test.rb @@ -226,9 +226,9 @@ def test_setting_default_exception_renderer 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,9 @@ def test_included_template_name_with_line_numbers 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) + 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 b147dcdcb..7a35f166b 100644 --- a/test/integration/filter_test.rb +++ b/test/integration/filter_test.rb @@ -72,10 +72,10 @@ def test_join end def test_sort - @context['value'] = 3 + @context['value'] = 3 @context['numbers'] = [2, 1, 4, 3] - @context['words'] = ['expected', 'as', 'alphabetic'] - @context['arrays'] = ['flower', 'are'] + @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 @@ def test_sort 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 @@ def test_sort_natural 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 @@ def test_nonexistent_filter_is_ignored 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 738c4c068..3e1cf2830 100644 --- a/test/integration/output_test.rb +++ b/test/integration/output_test.rb @@ -61,63 +61,63 @@ def test_variable_traversing 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 df562c984..d005b75fe 100644 --- a/test/integration/parsing_quirks_test.rb +++ b/test/integration/parsing_quirks_test.rb @@ -72,7 +72,7 @@ def test_no_error_on_lax_empty_filter 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 087655e8f..1e55dde6b 100644 --- a/test/integration/security_test.rb +++ b/test/integration/security_test.rb @@ -16,28 +16,28 @@ def setup 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 @@ def test_does_not_add_drop_methods_to_symbol_table 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 705746346..aaf303806 100644 --- a/test/integration/standard_filter_test.rb +++ b/test/integration/standard_filter_test.rb @@ -207,7 +207,7 @@ def test_sort_with_nils end def test_sort_when_property_is_sometimes_missing_puts_nils_last - input = [ + input = [ { "price" => 4, "handle" => "alpha" }, { "handle" => "beta" }, { "price" => 1, "handle" => "gamma" }, @@ -235,7 +235,7 @@ def test_sort_natural_with_nils 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" }, @@ -389,7 +389,7 @@ def test_map_on_hashes 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 @@ -400,8 +400,8 @@ def test_sort_calls_to_liquid 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 @@ -782,7 +782,7 @@ def test_where_no_target_value 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 c3a467918..a67a8b535 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 00cca17c1..0530a718f 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 903fcf902..48cce1f42 100644 --- a/test/integration/tags/for_tag_test.rb +++ b/test/integration/tags/for_tag_test.rb @@ -106,7 +106,7 @@ def test_limiting 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 @@ def test_limiting_with_invalid_limit 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 @@ def test_limiting_with_invalid_offset 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 @@ def test_offset_only 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 @@ def test_pause_resume 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 @@ def test_pause_resume_limit 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 @@ def test_pause_resume_big_limit 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 @@ def test_pause_resume_big_offset 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 @@ def test_for_with_break 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 @@ def test_for_with_break 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 @@ def test_for_with_continue 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 @@ def load_slice(from, to) 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 @@ def test_iterate_with_each_when_no_limit_applied 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 @@ def test_iterate_with_load_slice_when_limit_applied 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 @@ def test_iterate_with_load_slice_when_limit_and_offset_applied 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 d54b2fb8d..b8ef220b5 100644 --- a/test/integration/tags/if_else_tag_test.rb +++ b/test/integration/tags/if_else_tag_test.rb @@ -45,7 +45,7 @@ def test_if_or_with_operators 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 diff --git a/test/integration/tags/include_tag_test.rb b/test/integration/tags/include_tag_test.rb index c0400a0aa..bfe0a5b46 100644 --- a/test/integration/tags/include_tag_test.rb +++ b/test/integration/tags/include_tag_test.rb @@ -54,7 +54,7 @@ class CountingFileSystem attr_reader :count def read_template_file(_template_path) @count ||= 0 - @count += 1 + @count += 1 'from CountingFileSystem' end end diff --git a/test/integration/tags/render_tag_test.rb b/test/integration/tags/render_tag_test.rb index f2940c3e4..b73d29c52 100644 --- a/test/integration/tags/render_tag_test.rb +++ b/test/integration/tags/render_tag_test.rb @@ -47,7 +47,7 @@ def test_render_sets_the_correct_template_name_for_errors 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 @@ def test_render_sets_the_correct_template_name_for_warnings 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 cbef58632..08b2aa04c 100644 --- a/test/integration/tags/standard_tag_test.rb +++ b/test/integration/tags/standard_tag_test.rb @@ -174,7 +174,7 @@ def test_case_on_length_with_else 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 d3110d132..014f95162 100644 --- a/test/integration/template_test.rb +++ b/test/integration/template_test.rb @@ -83,7 +83,7 @@ def test_lambda_is_called_once_from_persistent_assigns_over_multiple_parses_and_ 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!) @@ -95,7 +95,7 @@ def test_lambda_is_called_once_from_custom_assigns_over_multiple_parses_and_rend 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)) @@ -243,7 +243,7 @@ def test_render_bang_force_rethrow_errors_on_passed_context def test_exception_renderer_that_returns_string exception = nil - handler = ->(e) { + handler = ->(e) { exception = e '' } @@ -267,20 +267,20 @@ def test_exception_renderer_that_raises 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 @@ def test_undefined_variables 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) diff --git a/test/integration/trim_mode_test.rb b/test/integration/trim_mode_test.rb index 438f86b5d..30b1ceb83 100644 --- a/test/integration/trim_mode_test.rb +++ b/test/integration/trim_mode_test.rb @@ -69,7 +69,7 @@ def test_tag_output_with_multiple_blank_lines # Make sure the trim isn't applied to standard tags def test_standard_tags whitespace = ' ' - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if true %} @@ -110,58 +110,58 @@ def test_standard_tags # 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 @@ -330,7 +330,7 @@ def test_post_and_pre_trim_tags assert_template_result(expected, text) whitespace = ' ' - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% if false -%} @@ -504,7 +504,7 @@ def test_right_trim_followed_by_tag def test_raw_output whitespace = ' ' - text = <<-END_TEMPLATE + text = <<-END_TEMPLATE

{% raw %} {%- if true -%} diff --git a/test/integration/variable_test.rb b/test/integration/variable_test.rb index 7be8b9912..45268bdd3 100644 --- a/test/integration/variable_test.rb +++ b/test/integration/variable_test.rb @@ -52,13 +52,13 @@ def test_nil_renders_as_empty_string 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 @@ def test_reuse_parsed_template 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,8 +77,8 @@ def test_assigns_not_polluted_from_template 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') diff --git a/test/test_helper.rb b/test/test_helper.rb index 8194e1cf4..7422129e3 100755 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -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 dd53e42cf..9b3103d3d 100644 --- a/test/unit/block_unit_test.rb +++ b/test/unit/block_unit_test.rb @@ -63,7 +63,7 @@ def render(*) assert_equal 'hello', template.render - buf = +'' + buf = +'' output = template.render({}, output: buf) assert_equal 'hello', output assert_equal 'hello', buf @@ -81,7 +81,7 @@ def render(*) 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 c41d89c40..67f916270 100644 --- a/test/unit/condition_unit_test.rb +++ b/test/unit/condition_unit_test.rb @@ -75,9 +75,9 @@ def test_hash_compare_backwards_compatibility 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 @@ def test_should_allow_custom_proc_operator 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 380c4ac70..c57bbca98 100644 --- a/test/unit/context_unit_test.rb +++ b/test/unit/context_unit_test.rb @@ -46,7 +46,7 @@ def initialize(category) class CounterDrop < Liquid::Drop def count @count ||= 0 - @count += 1 + @count += 1 end end @@ -55,9 +55,9 @@ def fetch(index) end def [](index) - @counts ||= [] + @counts ||= [] @counts[index] ||= 0 - @counts[index] += 1 + @counts[index] += 1 end def to_liquid @@ -265,7 +265,7 @@ def test_try_first 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 @@ def test_access_variable_with_hash_notation 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 @@ def test_access_hashes_with_hash_access_variables 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 @@ def test_array_containing_lambda_as_variable def test_lambda_is_called_once @context['callcount'] = proc { @global ||= 0 - @global += 1 + @global += 1 @global.to_s } @@ -421,7 +421,7 @@ def test_lambda_is_called_once def test_nested_lambda_is_called_once @context['callcount'] = { "lambda" => proc { @global ||= 0 - @global += 1 + @global += 1 @global.to_s } } @@ -435,7 +435,7 @@ def test_nested_lambda_is_called_once def test_lambda_in_array_is_called_once @context['callcount'] = [1, 2, proc { @global ||= 0 - @global += 1 + @global += 1 @global.to_s }, 4, 5] @@ -507,15 +507,15 @@ def test_new_isolated_subcontext_does_not_inherit_variables 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 @@ -532,19 +532,19 @@ def test_new_isolated_subcontext_does_not_inherit_non_static_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 @@ def my_filter(*) 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 7c73cfebd..2f6218a14 100644 --- a/test/unit/partial_cache_unit_test.rb +++ b/test/unit/partial_cache_unit_test.rb @@ -21,7 +21,7 @@ def test_uses_the_file_system_register_if_present 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,7 +37,7 @@ def test_reads_from_the_file_system_only_once_per_file 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' ) @@ -71,7 +71,7 @@ def test_cache_state_is_stored_per_context 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 b704eb886..37a2c28e0 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 @@ def test_key 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 @@ def test_static_register_can_be_frozen 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 @@ def test_new_static_retains_static 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 @@ def test_multiple_instances_are_unique 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 @@ def test_can_update_static_directly_and_updates_all_instances 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 @@ def test_can_update_static_directly_and_updates_all_instances 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/tag_unit_test.rb b/test/unit/tag_unit_test.rb index 616e9e8ca..d72d3b2f0 100644 --- a/test/unit/tag_unit_test.rb +++ b/test/unit/tag_unit_test.rb @@ -33,7 +33,7 @@ def render(*) assert_equal 'hello', template.render - buf = +'' + buf = +'' output = template.render({}, output: buf) assert_equal 'hello', output assert_equal 'hello', buf @@ -51,7 +51,7 @@ def render(*) 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 3e9e1c4d1..4e02c2d64 100644 --- a/test/unit/template_unit_test.rb +++ b/test/unit/template_unit_test.rb @@ -22,7 +22,7 @@ def test_sets_default_localization_in_context_with_quick_initialization 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 @@ def test_with_cache_classes_tags_returns_the_same_class 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 2424578c9..e555d3a36 100644 --- a/test/unit/tokenizer_unit_test.rb +++ b/test/unit/tokenizer_unit_test.rb @@ -34,7 +34,7 @@ def test_calculate_line_numbers_per_token_with_profiling def tokenize(source) tokenizer = Liquid::Tokenizer.new(source) - tokens = [] + tokens = [] while (t = tokenizer.shift) tokens << t end @@ -42,7 +42,7 @@ def tokenize(source) 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