Merge pull request #575 from Shopify/zero-division-error

Raise Liquid::ZeroDivisionError instead of ZeroDivisionError.
This commit is contained in:
Dylan Thacker-Smith
2015-05-26 10:43:23 -04:00
3 changed files with 6 additions and 3 deletions
+1
View File
@@ -57,4 +57,5 @@ module Liquid
StackLevelError = Class.new(Error)
TaintedError = Class.new(Error)
MemoryError = Class.new(Error)
ZeroDivisionError = Class.new(Error)
end
+2
View File
@@ -279,6 +279,8 @@ module Liquid
# division
def divided_by(input, operand)
apply_operation(input, operand, :/)
rescue ::ZeroDivisionError => e
raise Liquid::ZeroDivisionError, e.message
end
def modulo(input, operand)
+3 -3
View File
@@ -201,14 +201,14 @@ class TemplateTest < Minitest::Test
def test_exception_handler_doesnt_reraise_if_it_returns_false
exception = nil
Template.parse("{{ 1 | divided_by: 0 }}").render({}, exception_handler: ->(e) { exception = e; false })
assert exception.is_a?(ZeroDivisionError)
assert exception.is_a?(Liquid::ZeroDivisionError)
end
def test_exception_handler_does_reraise_if_it_returns_true
exception = nil
assert_raises(ZeroDivisionError) do
assert_raises(Liquid::ZeroDivisionError) do
Template.parse("{{ 1 | divided_by: 0 }}").render({}, exception_handler: ->(e) { exception = e; true })
end
assert exception.is_a?(ZeroDivisionError)
assert exception.is_a?(Liquid::ZeroDivisionError)
end
end