summaryrefslogtreecommitdiff
path: root/spec/ffi_yajl/encoder_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ffi_yajl/encoder_spec.rb')
-rw-r--r--spec/ffi_yajl/encoder_spec.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/spec/ffi_yajl/encoder_spec.rb b/spec/ffi_yajl/encoder_spec.rb
index 809f5b5..5c9e6b7 100644
--- a/spec/ffi_yajl/encoder_spec.rb
+++ b/spec/ffi_yajl/encoder_spec.rb
@@ -47,6 +47,23 @@ describe "FFI_Yajl::Encoder" do
expect(encoder.encode(ruby)).to eq('{"12345678901234567890":2}')
end
+ it "encodes objects in keys as strings" do
+ o = Object.new
+ ruby = { o => 2 }
+ expect(encoder.encode(ruby)).to eq(%Q{{"#{o.to_s}":2}})
+ end
+
+ it "encodes an object in a key which has a #to_json method as strings" do
+ class Thing
+ def to_json(*a)
+ "{}"
+ end
+ end
+ o = Thing.new
+ ruby = { o => 2 }
+ expect(encoder.encode(ruby)).to eq(%Q{{"#{o.to_s}":2}})
+ end
+
# XXX: 127 == YAJL_MAX_DEPTH hardcodedness, zero control for us, it isn't even a twiddleable #define
it "raises an exception for deeply nested arrays" do
root = []