diff options
author | Florian Frank <flori@ping.de> | 2015-01-03 00:55:33 +0100 |
---|---|---|
committer | Florian Frank <flori@ping.de> | 2015-01-03 00:55:33 +0100 |
commit | 41fee9f1453b57e6f0cd46d16e07e329c16cd17c (patch) | |
tree | e6f157d60ec2a924c4b30f4a24d7e380dc344718 | |
parent | b51273b301db4f772e9e2e0d2b7cd0625c1c89b3 (diff) | |
parent | b3819dc971b700c58ecbbcded2450cd208a9400e (diff) | |
download | json-41fee9f1453b57e6f0cd46d16e07e329c16cd17c.tar.gz |
Merge pull request #225 from mmacvicar/fix-space-before
JSON::State is not using the parameter space_before
-rw-r--r-- | ext/json/ext/generator/generator.c | 1 | ||||
-rwxr-xr-x | tests/test_json_generate.rb | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/ext/json/ext/generator/generator.c b/ext/json/ext/generator/generator.c index 976afc5..22d8952 100644 --- a/ext/json/ext/generator/generator.c +++ b/ext/json/ext/generator/generator.c @@ -871,6 +871,7 @@ static FBuffer *cState_prepare_buffer(VALUE self) } else { state->object_delim2 = fbuffer_alloc(16); } + if (state->space_before) fbuffer_append(state->object_delim2, state->space_before, state->space_before_len); fbuffer_append_char(state->object_delim2, ':'); if (state->space) fbuffer_append(state->object_delim2, state->space, state->space_len); diff --git a/tests/test_json_generate.rb b/tests/test_json_generate.rb index 117a155..c47ae88 100755 --- a/tests/test_json_generate.rb +++ b/tests/test_json_generate.rb @@ -73,6 +73,19 @@ EOT assert_equal '666', pretty_generate(666, :quirks_mode => true) end + def test_generate_custom + state = State.new(:space_before => " ", :space => " ", :indent => "<i>", :object_nl => "\n", :array_nl => "<a_nl>") + json = generate({1=>{2=>3,4=>[5,6]}}, state) + assert_equal(<<'EOT'.chomp, json) +{ +<i>"1" : { +<i><i>"2" : 3, +<i><i>"4" : [<a_nl><i><i><i>5,<a_nl><i><i><i>6<a_nl><i><i>] +<i>} +} +EOT + end + def test_fast_generate json = fast_generate(@hash) assert_equal(JSON.parse(@json2), JSON.parse(json)) |