diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2013-10-24 09:00:06 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2013-10-24 09:00:06 -0700 |
commit | 23550795f3bd169ad5dc1470864bf88414355491 (patch) | |
tree | 8ec43d7b0d42b3f33fc211cd8fc973757f569645 /lib/ffi_yajl.rb | |
parent | b084a971f87ad20f4521634aee76d5189c1d9044 (diff) | |
download | ffi-yajl-23550795f3bd169ad5dc1470864bf88414355491.tar.gz |
fix tests
- pretty and indent work now
- strip trailing newline for generated JSON compat output
Diffstat (limited to 'lib/ffi_yajl.rb')
-rw-r--r-- | lib/ffi_yajl.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/ffi_yajl.rb b/lib/ffi_yajl.rb index 4b7bd61..696508d 100644 --- a/lib/ffi_yajl.rb +++ b/lib/ffi_yajl.rb @@ -77,7 +77,7 @@ module FFI_Yajl # attach_function :yajl_config, [:yajl_handle, :yajl_option, :int], :int - attach_function :yajl_gen_config, [:yajl_gen, :yajl_gen_option, :int], :int + attach_function :yajl_gen_config, [:yajl_gen, :yajl_gen_option, :varargs], :int # yajl_gen yajl_gen_alloc (const yajl_gen_config *config, const yajl_alloc_funcs *allocFuncs) attach_function :yajl_gen_alloc, [:pointer, :pointer], :yajl_gen @@ -220,8 +220,14 @@ module FFI_Yajl class Encoder def self.encode(obj, opts) yajl_gen = FFI_Yajl.yajl_gen_alloc(nil, nil) - FFI_Yajl.yajl_gen_config(yajl_gen, :yajl_gen_beautify, 1); - FFI_Yajl.yajl_gen_config(yajl_gen, :yajl_gen_validate_utf8, 1); + FFI_Yajl.yajl_gen_config(yajl_gen, :yajl_gen_beautify, :int, 1) if opts[:pretty] + FFI_Yajl.yajl_gen_config(yajl_gen, :yajl_gen_validate_utf8, :int, 1) + indent = if opts[:pretty] + opts[:indent] ? opts[:indent] : " " + else + " " + end + FFI_Yajl.yajl_gen_config(yajl_gen, :yajl_gen_indent_string, :string, indent) encode_part(obj, yajl_gen) string_ptr = FFI::MemoryPointer.new(:string) length_ptr = FFI::MemoryPointer.new(:int) |