diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 48056f3..48ef5c3 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -33,7 +33,7 @@ module Liquid end def escape(input) - CGI.escapeHTML(input).untaint unless input.nil? + CGI.escapeHTML(input.to_s).untaint unless input.nil? end alias_method :h, :escape @@ -42,11 +42,11 @@ module Liquid end def url_encode(input) - CGI.escape(input) unless input.nil? + CGI.escape(input.to_s) unless input.nil? end def url_decode(input) - CGI.unescape(input) unless input.nil? + CGI.unescape(input.to_s) unless input.nil? end def slice(input, offset, length = nil) diff --git a/test/integration/standard_filter_test.rb b/test/integration/standard_filter_test.rb index 0eb12f0..41ca06c 100644 --- a/test/integration/standard_filter_test.rb +++ b/test/integration/standard_filter_test.rb @@ -128,8 +128,16 @@ class StandardFiltersTest < Minitest::Test def test_escape assert_equal '<strong>', @filters.escape('') + assert_equal '1', @filters.escape(1) + assert_equal '2001-02-03', @filters.escape(Date.new(2001, 2, 3)) assert_nil @filters.escape(nil) + end + + def test_h assert_equal '<strong>', @filters.h('') + assert_equal '1', @filters.h(1) + assert_equal '2001-02-03', @filters.h(Date.new(2001, 2, 3)) + assert_nil @filters.h(nil) end def test_escape_once @@ -138,6 +146,8 @@ class StandardFiltersTest < Minitest::Test def test_url_encode assert_equal 'foo%2B1%40example.com', @filters.url_encode('foo+1@example.com') + assert_equal '1', @filters.url_encode(1) + assert_equal '2001-02-03', @filters.url_encode(Date.new(2001, 2, 3)) assert_nil @filters.url_encode(nil) end @@ -145,6 +155,8 @@ class StandardFiltersTest < Minitest::Test assert_equal 'foo bar', @filters.url_decode('foo+bar') assert_equal 'foo bar', @filters.url_decode('foo%20bar') assert_equal 'foo+1@example.com', @filters.url_decode('foo%2B1%40example.com') + assert_equal '1', @filters.url_decode(1) + assert_equal '2001-02-03', @filters.url_decode(Date.new(2001, 2, 3)) assert_nil @filters.url_decode(nil) end