summaryrefslogtreecommitdiff
path: root/ext/json/lib
AgeCommit message (Collapse)Author
2023-12-05[flori/json] Bump up 2.7.1Hiroshi SHIBATA
https://github.com/flori/json/commit/a1af7a308c
2023-12-05[flori/json] [DOC] RDoc for additionsBurdette Lamar
(https://github.com/flori/json/pull/557) * RDoc for additions * Update lib/json/add/time.rb Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org> --------- https://github.com/flori/json/commit/3f2efd60f7 Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2023-12-05[flori/json] Fix JSON.dump overload combinationtompng
https://github.com/flori/json/commit/41c2712a3b
2023-12-05[flori/json] Overload kwargs in JSON.dumpTakashi Kokubun
https://github.com/flori/json/commit/936f280f9f
2023-12-05[flori/json] JSON.dump: handle unenclosed hashes regressionJean Boussier
Fix: https://github.com/flori/json/issues/553 We can never add keyword arguments to `dump` otherwise existing code using unenclosed hash will break. https://github.com/flori/json/commit/8e0076a3f2
2023-12-01Manually merged from flori/jsonHiroshi SHIBATA
> https://github.com/flori/json/pull/525 > Rename escape_slash in script_safe and also escape E+2028 and E+2029 Co-authored-by: Jean Boussier <jean.boussier@gmail.com> > https://github.com/flori/json/pull/454 > Remove unnecessary initialization of create_id in JSON.parse() Co-authored-by: Watson <watson1978@gmail.com>
2023-12-01Rename escape_slash in script_safe and also escape E+2028 and E+2029Jean Boussier
It is rather common to directly interpolate JSON string inside <script> tags in HTML as to provide configuration or parameters to a script. However this may lead to XSS vulnerabilities, to prevent that 3 characters need to be escaped: - `/` (forward slash) - `U+2028` (LINE SEPARATOR) - `U+2029` (PARAGRAPH SEPARATOR) The forward slash need to be escaped to prevent closing the script tag early, and the other two are valid JSON but invalid Javascript and can be used to break JS parsing. Given that the intent of escaping forward slash is the same than escaping U+2028 and U+2029, I chos to rename and repurpose the existing `escape_slash` option.
2023-12-01[flori/json] Bump up 2.7.0Hiroshi SHIBATA
https://github.com/flori/json/commit/ca546128f2
2023-11-08[flori/json] Enhanced RDoc for Range extensionsBurdetteLamar
https://github.com/flori/json/commit/ec47749b53
2023-07-19[flori/json] Remove unnecessary codeNobuyoshi Nakada
In `JSON#generate` and `JSON#fast_generate`: - When the given `opts` is a `JSON::State` the variable is set to `nil`. - But it will be never used as the next `if` blocks will not be executed. - `JSON::State#configure` does the conversion to `Hash`, the conversions in the `if` block are just duplication. - `JSON::State.new` does the same thing with `configure` when an argument is given. https://github.com/flori/json/commit/5d9ab87f8e Notes: Merged: https://github.com/ruby/ruby/pull/8091
2023-07-18[flori/json] Skip BigDecimal tests when it's missing to loadHiroshi SHIBATA
https://github.com/flori/json/commit/3dd36c6077
2022-12-09Merge json-2.6.3Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6890
2022-05-20[flori/json] Bump version to 2.6.2Florian Frank
https://github.com/flori/json/commit/5de358f655
2021-10-24[flori/json] Bump version to v2.6.1Hiroshi SHIBATA
https://github.com/flori/json/commit/2db5894cfa
2021-10-24[flori/json] Bump JSON::VERSION to 2.6.0.Josef Šimánek
https://github.com/flori/json/commit/da94d9f059
2021-05-17[flori/json] Fix incorrect `#` position in API docMasafumi Koba
This change fixes an incorrect `#` position in the API documentation of the `JSON` module. https://github.com/flori/json/commit/dc4b62424f
2020-12-22Merge json-2.5.1Hiroshi SHIBATA
2020-12-22Prepare to release json-2.5.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3975
2020-12-21[json] Avoid method redefinitionKenta Murata
2020-12-21[json] Make JSON.create_id thread-safeKenta Murata
2020-12-21[json] Stop using prototype objectsKenta Murata
2020-12-17Bump version to json-2.4.1 and use VERSION file for json version same as ↵Hiroshi SHIBATA
upstream
2020-11-10Complex and Rational is embedded classes nowHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3753
2020-09-25[flori/json] Fix JSON.load_file docJean Boussier
https://github.com/flori/json/commit/cb61a00ba8 Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] Partial compliance with doc/method_documentation.rdocBurdetteLamar
https://github.com/flori/json/commit/6dfa885134 Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] Enhanced RDoc for JSON.dump (#443)Burdette Lamar
* Enhanced RDoc for JSON.dump https://github.com/flori/json/commit/03f1699ec4 Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] Nodoc for recurse_procBurdetteLamar
https://github.com/flori/json/commit/f8c0fe2408 Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] RDoc for JSON.load with procBurdetteLamar
https://github.com/flori/json/commit/a55c91934e Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] RDoc example for JSON.loadBurdetteLamar
https://github.com/flori/json/commit/e4eead665c Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] Enhance RDoc for JSON.parseBurdetteLamar
https://github.com/flori/json/commit/33e64ef255 Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] Move options from #generate and #parse to common areaBurdetteLamar
https://github.com/flori/json/commit/20d7be605a Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25[flori/json] Add `load_file` and `load_file!` methods, with tests. Fixes ↵Keith Bennett
issue #386. https://github.com/flori/json/commit/0be363c99b Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-09-25Add an option to escape forward slash characterJean Boussier
Squashed commit of the following: commit 26d181059989279a79c433cedcd893b4f52e42ee Author: Francois Chagnon <francois.chagnon@jadedpixel.com> Date: Tue Sep 15 21:17:34 2015 +0000 add config options for escape_slash commit fa282334051b16df91ca097dd7304b46f3bc7719 Author: Francois Chagnon <francois.chagnon@jadedpixel.com> Date: Mon Feb 9 21:09:33 2015 +0000 add forward slash to escape character Notes: Merged: https://github.com/ruby/ruby/pull/3581
2020-07-01Merge json-2.3.1 from flori/jsonHiroshi SHIBATA
2020-07-01[flori/json] Added :call-seq: to RDOc for some methodsBurdetteLamar
https://github.com/flori/json/commit/ee5b6a74e9
2020-07-01[flori/json] RDoc enhancementsBurdetteLamar
https://github.com/flori/json/commit/ada48f0236
2020-07-01[flori/json] RDoc enhancementsBurdetteLamar
https://github.com/flori/json/commit/470d909c0d
2020-07-01[flori/json] RDoc enhancementsBurdetteLamar
https://github.com/flori/json/commit/7bee2c7c13
2020-07-01[flori/json] Rdoc enhancementsBurdetteLamar
https://github.com/flori/json/commit/e7e3732130
2020-01-06[flori/json] Fix examples syntaxzverok
https://github.com/flori/json/commit/3845491d92
2020-01-06[flori/json] Enchance generic JSON and #generate docszverok
https://github.com/flori/json/commit/4ede0a7d19
2020-01-06[flori/json] Remove invalid JSON.generate description from JSON module rdocJeremy Evans
This text used to be true in older versions of json, but has not been true for a number of years (since json version 2 I think). https://github.com/flori/json/commit/373b633f38
2019-12-12Import json-2.3.0 from flori/jsonHiroshi SHIBATA
2019-10-14[flori/json] Pass args all #to_json in json/add/*.Sho Hashimoto
https://github.com/flori/json/commit/36a7ef6790
2019-09-25Make rb_scan_args handle keywords more similar to Ruby methods (#2460)Jeremy Evans
Cfuncs that use rb_scan_args with the : entry suffer similar keyword argument separation issues that Ruby methods suffer if the cfuncs accept optional or variable arguments. This makes the following changes to : handling. * Treats as **kw, prompting keyword argument separation warnings if called with a positional hash. * Do not look for an option hash if empty keywords are provided. For backwards compatibility, treat an empty keyword splat as a empty mandatory positional hash argument, but emit a a warning, as this behavior will be removed in Ruby 3. The argument number check needs to be moved lower so it can correctly handle an empty positional argument being added. * If the last argument is nil and it is necessary to treat it as an option hash in order to make sure all arguments are processed, continue to treat the last argument as the option hash. Emit a warning in this case, as this behavior will be removed in Ruby 3. * If splitting the keyword hash into two hashes, issue a warning, as we will not be splitting hashes in Ruby 3. * If the keyword argument is required to fill a mandatory positional argument, continue to do so, but emit a warning as this behavior will be going away in Ruby 3. * If keyword arguments are provided and the last argument is not a hash, that indicates something wrong. This can happen if a cfunc is calling rb_scan_args multiple times, and providing arguments that were not passed to it from Ruby. Callers need to switch to the new rb_scan_args_kw function, which allows passing of whether keywords were provided. This commit fixes all warnings caused by the changes above. It switches some function calls to *_kw versions with appropriate kw_splat flags. If delegating arguments, RB_PASS_CALLED_KEYWORDS is used. If creating new arguments, RB_PASS_KEYWORDS is used if the last argument is a hash to be treated as keywords. In open_key_args in io.c, use rb_scan_args_kw. In this case, the arguments provided come from another C function, not Ruby. The last argument may or may not be a hash, so we can't set keyword argument mode. However, if it is a hash, we don't want to warn when treating it as keywords. In Ruby files, make sure to appropriately use keyword splats or literal keywords when calling Cfuncs that now issue keyword argument separation warnings through rb_scan_args. Also, make sure not to pass nil in place of an option hash. Work around Kernel#warn warnings due to problems in the Rubygems override of the method. There is an open pull request to fix these issues in Rubygems, but part of the Rubygems tests for their override fail on ruby-head due to rb_scan_args not recognizing empty keyword splats, which this commit fixes. Implementation wise, adding rb_scan_args_kw is kind of a pain, because rb_scan_args takes a variable number of arguments. In order to not duplicate all the code, the function internals need to be split into two functions taking a va_list, and to avoid passing in a ton of arguments, a single struct argument is used to handle the variables previously local to the function. Notes: Merged-By: jeremyevans <code@jeremyevans.net>
2019-02-23Merge json-2.2.0 from flori/json.hsbt
https://github.com/flori/json/releases/tag/v2.2.0 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-16Merge json-2.1.0 from https://github.com/flori/jsonhsbt
https://github.com/flori/json/blob/master/CHANGES.md#2017-04-18-210 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-12Merge json-2.0.4.hsbt
* https://github.com/flori/json/releases/tag/v2.0.4 * https://github.com/flori/json/blob/09fabeb03e73ed88dc8ce8f19d76ac59e51dae20/CHANGES.md#2017-03-23-204 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-30Fix rdoc of OpenStruct.json_create [ci skip]nobu
* ext/json/lib/json/add/ostruct.rb (OpenStruct.json_create): Correct documentation, fix the name of values. [Fix GH-1421] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-01* ext/json/*, test/json/json_parser_test.rb: Update json-2.0.2.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e