From 383a0d0aa79405605ffb4638e85249778f6232a7 Mon Sep 17 00:00:00 2001 From: Aidan Feldman Date: Tue, 9 Dec 2014 07:42:00 -0500 Subject: [PATCH] modify as_liquid to use case statement --- lib/jekyll/filters.rb | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index e147c93e7..f92c02b11 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -327,21 +327,24 @@ module Jekyll end def as_liquid(item) - if item.class == Hash + case item + when Hash pairs = item.map { |k, v| as_liquid([k, v]) } Hash[pairs] - elsif item.class == Array + when Array item.map{ |i| as_liquid(i) } - elsif item.respond_to?(:to_liquid) - liquidated = item.to_liquid - # prevent infinite recursion for simple types (which return `self`) - if liquidated == item - item - else - as_liquid(liquidated) - end else - item + if item.respond_to?(:to_liquid) + liquidated = item.to_liquid + # prevent infinite recursion for simple types (which return `self`) + if liquidated == item + item + else + as_liquid(liquidated) + end + else + item + end end end end