summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurdette Lamar <BurdetteLamar@Yahoo.com>2020-08-14 00:03:12 -0500
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2020-09-25 17:28:42 +0900
commit71f64e15b9e23f08b8c31500efb971a61b8b2b18 (patch)
tree9594a5c90649874a5ece63f69131dbcd9edfc9ec
parent3d5e83399889dba537b7178e4811a94a6850ccb3 (diff)
[flori/json] Enhanced RDoc for JSON.dump (#443)
* Enhanced RDoc for JSON.dump https://github.com/flori/json/commit/03f1699ec4
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3581
-rw-r--r--ext/json/lib/json/common.rb34
1 files changed, 23 insertions, 11 deletions
diff --git a/ext/json/lib/json/common.rb b/ext/json/lib/json/common.rb
index f6230a7c2a..2f101e7edd 100644
--- a/ext/json/lib/json/common.rb
+++ b/ext/json/lib/json/common.rb
@@ -590,21 +590,33 @@ module JSON
:escape_slash => false,
}
- # Dumps _obj_ as a JSON string, i.e. calls generate on the object and returns
- # the result.
+ # :call-seq:
+ # JSON.dump(obj, io = nil, limit = nil)
+ #
+ # Dumps +obj+ as a \JSON string, i.e. calls generate on the object and returns the result.
+ #
+ # The default options can be changed via method JSON.dump_default_options.
#
- # If anIO (an IO-like object or an object that responds to the write method)
- # was given, the resulting JSON is written to it.
+ # - Argument +io+, if given, should respond to method +write+;
+ # the \JSON \String is written to +io+, and +io+ is returned.
+ # If +io+ is not given, the \JSON \String is returned.
+ # - Argument +limit+, if given, is passed to JSON.generate as option +max_nesting+.
#
- # If the number of nested arrays or objects exceeds _limit_, an ArgumentError
- # exception is raised. This argument is similar (but not exactly the
- # same!) to the _limit_ argument in Marshal.dump.
+ # ---
#
- # The default options for the generator can be changed via the
- # dump_default_options method.
+ # When argument +io+ is not given, returns the \JSON \String generated from +obj+:
+ # obj = {foo: [0, 1], bar: {baz: 2, bat: 3}, bam: :bad}
+ # json = JSON.dump(obj)
+ # json # => "{\"foo\":[0,1],\"bar\":{\"baz\":2,\"bat\":3},\"bam\":\"bad\"}"
#
- # This method is part of the implementation of the load/dump interface of
- # Marshal and YAML.
+ # When argument +io+ is given, writes the \JSON \String to +io+ and returns +io+:
+ # path = 't.json'
+ # File.open(path, 'w') do |file|
+ # JSON.dump(obj, file)
+ # end # => #<File:t.json (closed)>
+ # puts File.read(path)
+ # Output:
+ # {"foo":[0,1],"bar":{"baz":2,"bat":3},"bam":"bad"}
def dump(obj, anIO = nil, limit = nil)
if anIO and limit.nil?
anIO = anIO.to_io if anIO.respond_to?(:to_io)