diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 46e949d9..99bfa336 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -218,6 +218,10 @@ module Liquid to_number(input) / to_number(operand) end + def modulo(input, operand) + to_number(input) % to_number(operand) + end + private def to_number(obj) diff --git a/test/liquid/standard_filter_test.rb b/test/liquid/standard_filter_test.rb index 89b43384..2ee7ae8d 100644 --- a/test/liquid/standard_filter_test.rb +++ b/test/liquid/standard_filter_test.rb @@ -173,6 +173,10 @@ class StandardFiltersTest < Test::Unit::TestCase assert_template_result "Liquid error: divided by 0", "{{ 5 | divided_by:0 }}" end + def test_modulo + assert_template_result "1", "{{ 3 | modulo:2 }}" + end + def test_append assigns = {'a' => 'bc', 'b' => 'd' } assert_template_result('bcd',"{{ a | append: 'd'}}",assigns)