diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index f215e0b8..2e4a1174 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -328,7 +328,7 @@ module Jekyll def as_liquid(item) case item - when String, Numeric, nil + when String, Numeric, true, false, nil item.to_liquid when Hash Hash[item.map { |k, v| [as_liquid(k), as_liquid(v)] }] diff --git a/test/test_filters.rb b/test/test_filters.rb index 7325e90e..d46d9352 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -155,18 +155,18 @@ class TestFilters < Test::Unit::TestCase end class T < Struct.new(:name) def to_liquid - { "name" => name, :v => 1, :thing => M.new({:kay => "jewelers"}) } + { "name" => name, :v => 1, :thing => M.new({:kay => "jewelers"}), :stuff => true } end end should "call #to_liquid " do - expected = "[{\"name\":\"Jeremiah\",\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}]},{\"name\":\"Smathers\",\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}]}]" + expected = "[{\"name\":\"Jeremiah\",\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}],\"stuff\":true},{\"name\":\"Smathers\",\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}],\"stuff\":true}]" assert_equal expected, @filter.jsonify([T.new("Jeremiah"), T.new("Smathers")]) end should "handle hashes with all sorts of weird keys and values" do my_hash = { "posts" => Array.new(5) { |i| T.new(i) } } - expected = "{\"posts\":[{\"name\":0,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}]},{\"name\":1,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}]},{\"name\":2,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}]},{\"name\":3,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}]},{\"name\":4,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}]}]}" + expected = "{\"posts\":[{\"name\":0,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}],\"stuff\":true},{\"name\":1,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}],\"stuff\":true},{\"name\":2,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}],\"stuff\":true},{\"name\":3,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}],\"stuff\":true},{\"name\":4,\"v\":1,\"thing\":[{\"kay\":\"jewelers\"}],\"stuff\":true}]}" assert_equal expected, @filter.jsonify(my_hash) end end