commit rubygem-liquid for openSUSE:Factory

Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rubygem-liquid for openSUSE:Factory checked in at 2022-04-30 22:52:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-liquid (Old) and /work/SRC/openSUSE:Factory/.rubygem-liquid.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "rubygem-liquid" Sat Apr 30 22:52:29 2022 rev:9 rq:974053 version:5.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-liquid/rubygem-liquid.changes 2022-03-04 20:20:49.152685089 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-liquid.new.1538/rubygem-liquid.changes 2022-04-30 22:52:38.508232692 +0200 @@ -1,0 +2,7 @@ +Thu Apr 28 05:34:44 UTC 2022 - Stephan Kulow <coolo@suse.com> + +updated to version 5.3.0 + see installed History.md + + +------------------------------------------------------------------- Old: ---- liquid-5.2.0.gem New: ---- liquid-5.3.0.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-liquid.spec ++++++ --- /var/tmp/diff_new_pack.EuZtUC/_old 2022-04-30 22:52:39.124233526 +0200 +++ /var/tmp/diff_new_pack.EuZtUC/_new 2022-04-30 22:52:39.128233531 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-liquid -Version: 5.2.0 +Version: 5.3.0 Release: 0 %define mod_name liquid %define mod_full_name %{mod_name}-%{version} ++++++ liquid-5.2.0.gem -> liquid-5.3.0.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/History.md new/History.md --- old/History.md 2022-03-01 16:20:24.000000000 +0100 +++ new/History.md 2022-03-22 19:51:32.000000000 +0100 @@ -1,6 +1,16 @@ # Liquid Change Log -## 5.2.0 2021-03-01 +## 5.3.0 2022-03-22 + +### Fixes +* StandardFilter: Fix missing @context on iterations (#1525) [Thierry Joyal] +* Test under Ruby 3.1 (#1533) [petergoldstein] +* Fix warning about block and default value in `static_registers.rb` (#1531) [Peter Zhu] + +### Deprecation +* Condition#evaluate to require mandatory context argument in Liquid 6.0.0 (#1527) [Thierry Joyal] + +## 5.2.0 2022-03-01 ### Features * Add `remove_last`, and `replace_last` filters (#1422) [Anders Hagbard] @@ -10,7 +20,6 @@ * Fix some internal errors in filters from invalid input (#1476) [Dylan Thacker-Smith] * Allow dash in filter kwarg name for consistency with Liquid::C (#1518) [CP Clermont] - ## 5.1.0 / 2021-09-09 ### Features Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/liquid/condition.rb new/lib/liquid/condition.rb --- old/lib/liquid/condition.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/lib/liquid/condition.rb 2022-03-22 19:51:32.000000000 +0100 @@ -61,7 +61,7 @@ @child_condition = nil end - def evaluate(context = Context.new) + def evaluate(context = deprecated_default_context) condition = self result = nil loop do @@ -150,6 +150,12 @@ end end + def deprecated_default_context + warn("DEPRECATION WARNING: Condition#evaluate without a context argument is deprecated" \ + " and will be removed from Liquid 6.0.0.") + Context.new + end + class ParseTreeVisitor < Liquid::ParseTreeVisitor def children [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/liquid/standardfilters.rb new/lib/liquid/standardfilters.rb --- old/lib/liquid/standardfilters.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/lib/liquid/standardfilters.rb 2022-03-22 19:51:32.000000000 +0100 @@ -582,8 +582,9 @@ def each @input.each do |e| + e = e.respond_to?(:to_liquid) ? e.to_liquid : e e.context = @context if e.respond_to?(:context=) - yield(e.respond_to?(:to_liquid) ? e.to_liquid : e) + yield(e) end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/liquid/static_registers.rb new/lib/liquid/static_registers.rb --- old/lib/liquid/static_registers.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/lib/liquid/static_registers.rb 2022-03-22 19:51:32.000000000 +0100 @@ -31,7 +31,11 @@ if @registers.key?(key) @registers.fetch(key) elsif default != UNDEFINED - @static.fetch(key, default, &block) + if block_given? + @static.fetch(key, &block) + else + @static.fetch(key, default) + end else @static.fetch(key, &block) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/liquid/version.rb new/lib/liquid/version.rb --- old/lib/liquid/version.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/lib/liquid/version.rb 2022-03-22 19:51:32.000000000 +0100 @@ -2,5 +2,5 @@ # frozen_string_literal: true module Liquid - VERSION = "5.2.0" + VERSION = "5.3.0" end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2022-03-01 16:20:24.000000000 +0100 +++ new/metadata 2022-03-22 19:51:32.000000000 +0100 @@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: liquid version: !ruby/object:Gem::Version - version: 5.2.0 + version: 5.3.0 platform: ruby authors: - Tobias L��tke autorequire: bindir: bin cert_chain: [] -date: 2022-03-01 00:00:00.000000000 Z +date: 2022-03-22 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rake @@ -193,61 +193,61 @@ specification_version: 4 summary: A secure, non-evaling end user template engine with aesthetic markup. test_files: -- test/integration/tag/disableable_test.rb -- test/integration/parsing_quirks_test.rb -- test/integration/context_test.rb +- test/unit/parser_unit_test.rb +- test/unit/static_registers_unit_test.rb +- test/unit/tag_unit_test.rb +- test/unit/strainer_factory_unit_test.rb +- test/unit/partial_cache_unit_test.rb +- test/unit/strainer_template_unit_test.rb +- test/unit/lexer_unit_test.rb +- test/unit/parse_tree_visitor_test.rb +- test/unit/i18n_unit_test.rb +- test/unit/tokenizer_unit_test.rb +- test/unit/template_factory_unit_test.rb +- test/unit/condition_unit_test.rb +- test/unit/block_unit_test.rb +- test/unit/file_system_unit_test.rb +- test/unit/variable_unit_test.rb +- test/unit/template_unit_test.rb +- test/unit/tags/if_tag_unit_test.rb +- test/unit/tags/case_tag_unit_test.rb +- test/unit/tags/for_tag_unit_test.rb +- test/unit/regexp_unit_test.rb +- test/test_helper.rb +- test/integration/document_test.rb +- test/integration/tag_test.rb - test/integration/filter_kwarg_test.rb -- test/integration/capture_test.rb - test/integration/trim_mode_test.rb +- test/integration/profiler_test.rb +- test/integration/security_test.rb +- test/integration/capture_test.rb +- test/integration/parsing_quirks_test.rb +- test/integration/blank_test.rb +- test/integration/template_test.rb +- test/integration/tag/disableable_test.rb +- test/integration/variable_test.rb - test/integration/output_test.rb -- test/integration/tags/raw_tag_test.rb -- test/integration/tags/continue_tag_test.rb -- test/integration/tags/increment_tag_test.rb -- test/integration/tags/if_else_tag_test.rb -- test/integration/tags/table_row_test.rb -- test/integration/tags/include_tag_test.rb +- test/integration/drop_test.rb +- test/integration/standard_filter_test.rb +- test/integration/expression_test.rb +- test/integration/block_test.rb +- test/integration/hash_ordering_test.rb +- test/integration/filter_test.rb - test/integration/tags/break_tag_test.rb -- test/integration/tags/unless_else_tag_test.rb - test/integration/tags/standard_tag_test.rb -- test/integration/tags/for_tag_test.rb -- test/integration/tags/statements_test.rb - test/integration/tags/liquid_tag_test.rb +- test/integration/tags/table_row_test.rb - test/integration/tags/render_tag_test.rb +- test/integration/tags/include_tag_test.rb +- test/integration/tags/increment_tag_test.rb +- test/integration/tags/if_else_tag_test.rb +- test/integration/tags/continue_tag_test.rb - test/integration/tags/echo_test.rb -- test/integration/drop_test.rb +- test/integration/tags/raw_tag_test.rb +- test/integration/tags/for_tag_test.rb +- test/integration/tags/statements_test.rb +- test/integration/tags/unless_else_tag_test.rb +- test/integration/context_test.rb - test/integration/error_handling_test.rb -- test/integration/template_test.rb -- test/integration/expression_test.rb -- test/integration/standard_filter_test.rb -- test/integration/tag_test.rb -- test/integration/hash_ordering_test.rb -- test/integration/security_test.rb -- test/integration/blank_test.rb -- test/integration/filter_test.rb -- test/integration/document_test.rb -- test/integration/block_test.rb -- test/integration/profiler_test.rb -- test/integration/variable_test.rb - test/integration/assign_test.rb -- test/unit/template_unit_test.rb -- test/unit/tag_unit_test.rb -- test/unit/condition_unit_test.rb -- test/unit/strainer_template_unit_test.rb -- test/unit/lexer_unit_test.rb -- test/unit/partial_cache_unit_test.rb -- test/unit/template_factory_unit_test.rb -- test/unit/tags/if_tag_unit_test.rb -- test/unit/tags/case_tag_unit_test.rb -- test/unit/tags/for_tag_unit_test.rb -- test/unit/static_registers_unit_test.rb -- test/unit/regexp_unit_test.rb -- test/unit/i18n_unit_test.rb -- test/unit/parse_tree_visitor_test.rb -- test/unit/variable_unit_test.rb -- test/unit/tokenizer_unit_test.rb -- test/unit/file_system_unit_test.rb -- test/unit/block_unit_test.rb -- test/unit/strainer_factory_unit_test.rb -- test/unit/parser_unit_test.rb -- test/test_helper.rb - test/fixtures/en_locale.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/integration/context_test.rb new/test/integration/context_test.rb --- old/test/integration/context_test.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/test/integration/context_test.rb 2022-03-22 19:51:32.000000000 +0100 @@ -24,7 +24,7 @@ end end -class Category < Liquid::Drop +class Category attr_accessor :name def initialize(name) @@ -36,8 +36,9 @@ end end -class CategoryDrop +class CategoryDrop < Liquid::Drop attr_accessor :category, :context + def initialize(category) @category = category end @@ -405,45 +406,42 @@ end def test_lambda_is_called_once + @global = 0 + @context['callcount'] = proc { - @global ||= 0 - @global += 1 + @global += 1 @global.to_s } assert_equal('1', @context['callcount']) assert_equal('1', @context['callcount']) assert_equal('1', @context['callcount']) - - @global = nil end def test_nested_lambda_is_called_once + @global = 0 + @context['callcount'] = { "lambda" => proc { - @global ||= 0 - @global += 1 + @global += 1 @global.to_s } } assert_equal('1', @context['callcount.lambda']) assert_equal('1', @context['callcount.lambda']) assert_equal('1', @context['callcount.lambda']) - - @global = nil end def test_lambda_in_array_is_called_once + @global = 0 + @context['callcount'] = [1, 2, proc { - @global ||= 0 - @global += 1 + @global += 1 @global.to_s }, 4, 5] assert_equal('1', @context['callcount[2]']) assert_equal('1', @context['callcount[2]']) assert_equal('1', @context['callcount[2]']) - - @global = nil end def test_access_to_context_from_proc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/integration/profiler_test.rb new/test/integration/profiler_test.rb --- old/test/integration/profiler_test.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/test/integration/profiler_test.rb 2022-03-22 19:51:32.000000000 +0100 @@ -3,6 +3,27 @@ require 'test_helper' class ProfilerTest < Minitest::Test + class TestDrop < Liquid::Drop + def initialize(value) + super() + @value = value + end + + def to_s + artificial_execution_time + + @value + end + + private + + # Monotonic clock precision fluctuate based on the operating system + # By introducing a small sleep we ensure ourselves to register a non zero unit of time + def artificial_execution_time + sleep(Process.clock_getres(Process::CLOCK_MONOTONIC)) + end + end + include Liquid class ProfilingFileSystem @@ -198,16 +219,22 @@ def test_profiling_supports_self_time t = Template.parse("{% for item in collection %} {{ item }} {% endfor %}", profile: true) - t.render!("collection" => ["one", "two"]) - leaf = t.profiler[0].children[0] + collection = [ + TestDrop.new("one"), + TestDrop.new("two"), + ] + output = t.render!("collection" => collection) + assert_equal(" one two ", output) - assert_operator(leaf.self_time, :>, 0) + leaf = t.profiler[0].children[0] + assert_operator(leaf.self_time, :>, 0.0) end def test_profiling_supports_total_time - t = Template.parse("{% if true %} {% increment test %} {{ test }} {% endif %}", profile: true) - t.render! + t = Template.parse("{% if true %} {{ test }} {% endif %}", profile: true) + output = t.render!("test" => TestDrop.new("one")) + assert_equal(" one ", output) - assert_operator(t.profiler[0].total_time, :>, 0) + assert_operator(t.profiler[0].total_time, :>, 0.0) end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/integration/standard_filter_test.rb new/test/integration/standard_filter_test.rb --- old/test/integration/standard_filter_test.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/test/integration/standard_filter_test.rb 2022-03-22 19:51:32.000000000 +0100 @@ -3,10 +3,6 @@ require 'test_helper' -class Filters - include Liquid::StandardFilters -end - class TestThing attr_reader :foo @@ -29,8 +25,24 @@ end class TestDrop < Liquid::Drop - def test - "testfoo" + def initialize(value:) + @value = value + end + + attr_reader :value + + def registers + @context.registers + end +end + +class TestModel + def initialize(value:) + @value = value + end + + def to_liquid + TestDrop.new(value: @value) end end @@ -53,10 +65,13 @@ end class StandardFiltersTest < Minitest::Test + Filters = Class.new(Liquid::StrainerTemplate) + Filters.add_filter(Liquid::StandardFilters) + include Liquid def setup - @filters = Filters.new + @filters = Filters.new(Context.new) end def test_size @@ -363,8 +378,9 @@ assert_equal(["foo"], @filters.uniq("foo")) assert_equal([1, 3, 2, 4], @filters.uniq([1, 1, 3, 2, 3, 1, 4, 3, 2, 1])) assert_equal([{ "a" => 1 }, { "a" => 3 }, { "a" => 2 }], @filters.uniq([{ "a" => 1 }, { "a" => 3 }, { "a" => 1 }, { "a" => 2 }], "a")) - testdrop = TestDrop.new - assert_equal([testdrop], @filters.uniq([testdrop, TestDrop.new], 'test')) + test_drop = TestDrop.new(value: "test") + test_drop_alternate = TestDrop.new(value: "test") + assert_equal([test_drop], @filters.uniq([test_drop, test_drop_alternate], 'value')) end def test_uniq_empty_array @@ -423,6 +439,16 @@ assert_template_result("woot: 1", '{{ foo | map: "whatever" }}', "foo" => [t]) end + def test_map_calls_context= + model = TestModel.new(value: "test") + + template = Template.parse('{{ foo | map: "registers" }}') + template.registers[:test] = 1234 + template.assigns['foo'] = [model] + + assert_template_result("{:test=>1234}", template.render!) + end + def test_map_on_hashes assert_template_result("4217", '{{ thing | map: "foo" | map: "bar" }}', "thing" => { "foo" => [{ "bar" => 42 }, { "bar" => 17 }] }) @@ -441,9 +467,9 @@ end def test_map_over_proc - drop = TestDrop.new + drop = TestDrop.new(value: "testfoo") p = proc { drop } - templ = '{{ procs | map: "test" }}' + templ = '{{ procs | map: "value" }}' assert_template_result("testfoo", templ, "procs" => [p]) end @@ -839,7 +865,7 @@ end def test_all_filters_never_raise_non_liquid_exception - test_drop = TestDrop.new + test_drop = TestDrop.new(value: "test") test_drop.context = Context.new test_enum = TestEnumerable.new test_enum.context = Context.new diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/unit/condition_unit_test.rb new/test/unit/condition_unit_test.rb --- old/test/unit/condition_unit_test.rb 2022-03-01 16:20:24.000000000 +0100 +++ new/test/unit/condition_unit_test.rb 2022-03-22 19:51:32.000000000 +0100 @@ -10,8 +10,8 @@ end def test_basic_condition - assert_equal(false, Condition.new(1, '==', 2).evaluate) - assert_equal(true, Condition.new(1, '==', 1).evaluate) + assert_equal(false, Condition.new(1, '==', 2).evaluate(Context.new)) + assert_equal(true, Condition.new(1, '==', 1).evaluate(Context.new)) end def test_default_operators_evalute_true @@ -67,11 +67,11 @@ end def test_hash_compare_backwards_compatibility - assert_nil(Condition.new({}, '>', 2).evaluate) - assert_nil(Condition.new(2, '>', {}).evaluate) - assert_equal(false, Condition.new({}, '==', 2).evaluate) - assert_equal(true, Condition.new({ 'a' => 1 }, '==', 'a' => 1).evaluate) - assert_equal(true, Condition.new({ 'a' => 2 }, 'contains', 'a').evaluate) + assert_nil(Condition.new({}, '>', 2).evaluate(Context.new)) + assert_nil(Condition.new(2, '>', {}).evaluate(Context.new)) + assert_equal(false, Condition.new({}, '==', 2).evaluate(Context.new)) + assert_equal(true, Condition.new({ 'a' => 1 }, '==', 'a' => 1).evaluate(Context.new)) + assert_equal(true, Condition.new({ 'a' => 2 }, 'contains', 'a').evaluate(Context.new)) end def test_contains_works_on_arrays @@ -106,30 +106,29 @@ def test_or_condition condition = Condition.new(1, '==', 2) - - assert_equal(false, condition.evaluate) + assert_equal(false, condition.evaluate(Context.new)) condition.or(Condition.new(2, '==', 1)) - assert_equal(false, condition.evaluate) + assert_equal(false, condition.evaluate(Context.new)) condition.or(Condition.new(1, '==', 1)) - assert_equal(true, condition.evaluate) + assert_equal(true, condition.evaluate(Context.new)) end def test_and_condition condition = Condition.new(1, '==', 1) - assert_equal(true, condition.evaluate) + assert_equal(true, condition.evaluate(Context.new)) condition.and(Condition.new(2, '==', 2)) - assert_equal(true, condition.evaluate) + assert_equal(true, condition.evaluate(Context.new)) condition.and(Condition.new(2, '==', 1)) - assert_equal(false, condition.evaluate) + assert_equal(false, condition.evaluate(Context.new)) end def test_should_allow_custom_proc_operator @@ -148,6 +147,20 @@ assert_evaluates_true(VariableLookup.new("one"), '==', VariableLookup.new("another")) end + def test_default_context_is_deprecated + if Gem::Version.new(Liquid::VERSION) >= Gem::Version.new('6.0.0') + flunk("Condition#evaluate without a context argument is to be removed") + end + + _out, err = capture_io do + assert_equal(true, Condition.new(1, '==', 1).evaluate) + end + + expected = "DEPRECATION WARNING: Condition#evaluate without a context argument is deprecated" \ + " and will be removed from Liquid 6.0.0." + assert_includes(err.lines.map(&:strip), expected) + end + private def assert_evaluates_true(left, op, right)
participants (1)
-
Source-Sync