Skip to content

Commit 41fee9f

Browse files
committed
Merge pull request #225 from mmacvicar/fix-space-before
JSON::State is not using the parameter space_before
2 parents b51273b + b3819dc commit 41fee9f

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

ext/json/ext/generator/generator.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,7 @@ static FBuffer *cState_prepare_buffer(VALUE self)
871871
} else {
872872
state->object_delim2 = fbuffer_alloc(16);
873873
}
874+
if (state->space_before) fbuffer_append(state->object_delim2, state->space_before, state->space_before_len);
874875
fbuffer_append_char(state->object_delim2, ':');
875876
if (state->space) fbuffer_append(state->object_delim2, state->space, state->space_len);
876877

tests/test_json_generate.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,19 @@ def test_generate_pretty
7373
assert_equal '666', pretty_generate(666, :quirks_mode => true)
7474
end
7575

76+
def test_generate_custom
77+
state = State.new(:space_before => " ", :space => " ", :indent => "<i>", :object_nl => "\n", :array_nl => "<a_nl>")
78+
json = generate({1=>{2=>3,4=>[5,6]}}, state)
79+
assert_equal(<<'EOT'.chomp, json)
80+
{
81+
<i>"1" : {
82+
<i><i>"2" : 3,
83+
<i><i>"4" : [<a_nl><i><i><i>5,<a_nl><i><i><i>6<a_nl><i><i>]
84+
<i>}
85+
}
86+
EOT
87+
end
88+
7689
def test_fast_generate
7790
json = fast_generate(@hash)
7891
assert_equal(JSON.parse(@json2), JSON.parse(json))

0 commit comments

Comments
 (0)