diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2014-11-22 15:20:17 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2014-11-22 15:20:17 -0800 |
commit | fd2e17e64d6eded4b96fe09bfe376c401f720682 (patch) | |
tree | 58ce17c6106e2b547e7106bd0099733d6d8c1b07 /spec | |
parent | 9ad03a7b89c9fad16f677879da9d91275e997cfb (diff) | |
download | ffi-yajl-fd2e17e64d6eded4b96fe09bfe376c401f720682.tar.gz |
support calling #to_s on all types for keys
compatibility with JSON gem and yajl-ruby
closes #14
Diffstat (limited to 'spec')
-rw-r--r-- | spec/ffi_yajl/encoder_spec.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/ffi_yajl/encoder_spec.rb b/spec/ffi_yajl/encoder_spec.rb index 02bc020..41587e2 100644 --- a/spec/ffi_yajl/encoder_spec.rb +++ b/spec/ffi_yajl/encoder_spec.rb @@ -7,6 +7,31 @@ describe "FFI_Yajl::Encoder" do let(:encoder) { FFI_Yajl::Encoder.new } + it "encodes hashes in keys as strings" do + ruby = { {'a' => 'b'} => 2 } + expect(encoder.encode(ruby)).to eq('{"{\"a\"=>\"b\"}":2}') + end + + it "encodes arrays in keys as strings" do + ruby = { [0,1] => 2 } + expect(encoder.encode(ruby)).to eq('{"[0, 1]":2}') + end + + it "encodes nil in keys as strings" do + ruby = { nil => 2 } + expect(encoder.encode(ruby)).to eq('{"":2}') + end + + it "encodes true in keys as strings" do + ruby = { true => 2 } + expect(encoder.encode(ruby)).to eq('{"true":2}') + end + + it "encodes false in keys as strings" do + ruby = { false => 2 } + expect(encoder.encode(ruby)).to eq('{"false":2}') + end + it "encodes fixnums in keys as strings" do ruby = { 1 => 2 } expect(encoder.encode(ruby)).to eq('{"1":2}') |