Merge pull request #3154 from afeld/jsonify-bool

This commit is contained in:
Parker Moore 2014-11-27 01:14:04 -08:00
commit 932cd3b575
2 changed files with 4 additions and 4 deletions

View File

@ -328,7 +328,7 @@ module Jekyll
def as_liquid(item) def as_liquid(item)
case item case item
when String, Numeric, nil when String, Numeric, true, false, nil
item.to_liquid item.to_liquid
when Hash when Hash
Hash[item.map { |k, v| [as_liquid(k), as_liquid(v)] }] Hash[item.map { |k, v| [as_liquid(k), as_liquid(v)] }]

View File

@ -155,18 +155,18 @@ class TestFilters < Test::Unit::TestCase
end end
class T < Struct.new(:name) class T < Struct.new(:name)
def to_liquid 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
end end
should "call #to_liquid " do 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")]) assert_equal expected, @filter.jsonify([T.new("Jeremiah"), T.new("Smathers")])
end end
should "handle hashes with all sorts of weird keys and values" do should "handle hashes with all sorts of weird keys and values" do
my_hash = { "posts" => Array.new(5) { |i| T.new(i) } } 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) assert_equal expected, @filter.jsonify(my_hash)
end end
end end