summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2016-02-25 00:46:45 +0100
committerFlorian Frank <flori@ping.de>2016-02-25 00:46:45 +0100
commit4922d2ae6cf93d14f7d51d416f518b5945935b3a (patch)
treea112556a783db0b231d0328ca9538c8cf7884dca /lib
parent4dec168abb84a9175549e8d03a95a57df6a384e7 (diff)
downloadjson-4922d2ae6cf93d14f7d51d416f518b5945935b3a.tar.gz
Check for existence of #to_json method before call
Diffstat (limited to 'lib')
-rw-r--r--lib/json/pure/generator.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/json/pure/generator.rb b/lib/json/pure/generator.rb
index 9056a5d..1419074 100644
--- a/lib/json/pure/generator.rb
+++ b/lib/json/pure/generator.rb
@@ -363,7 +363,11 @@ module JSON
result << state.space_before
result << ':'
result << state.space
- result << value.to_json(state)
+ if value.respond_to?(:to_json)
+ result << value.to_json(state)
+ else
+ result << %{"#{String(value)}"}
+ end
first = false
}
depth = state.depth -= 1
@@ -398,7 +402,11 @@ module JSON
each { |value|
result << delim unless first
result << state.indent * depth if indent
- result << value.to_json(state)
+ if value.respond_to?(:to_json)
+ result << value.to_json(state)
+ else
+ result << %{"#{String(value)}"}
+ end
first = false
}
depth = state.depth -= 1