While trying to make small docs update PR I found out the next facts that probably should be addressed:
- The repo has no indication that it is the default Ruby's JSON implementation, it just states that "it is an implementation" (therefore I falsely believed that upstream for stdlib
json is ruby/ruby repo, and this one is just a pre-Ruby 2 standalonge gem);
- The
json gem and json stdlib share some, but not all, code and docs, which lead to the weird effects:
- the whole thing about two implementation (C and pure) has an effect on design and docs, but "pure" implementation is not imported into Ruby trunk, which, for example, renders documentation pieces like this:

(JSON::Pure::Generator is not a thing in stdlib);
- moreover, considering no need for two implementations, the library code and interface can be simplified significantly (no
.generator and .parser attributes, no need to have a separate Common module and so on);
- most of the detailed docs on gem usage and examples are in README, but not in
JSON module's RDoc, and are not accessible from the standard library docs
Is it possible to somehow "freezing" the fact that json gem for future Ruby versions should only be available through stdlib, and simplify the library accordingly?
While trying to make small docs update PR I found out the next facts that probably should be addressed:
jsonisruby/rubyrepo, and this one is just a pre-Ruby 2 standalonge gem);jsongem andjsonstdlib share some, but not all, code and docs, which lead to the weird effects:(
JSON::Pure::Generatoris not a thing in stdlib);.generatorand.parserattributes, no need to have a separateCommonmodule and so on);JSONmodule's RDoc, and are not accessible from the standard library docsIs it possible to somehow "freezing" the fact that
jsongem for future Ruby versions should only be available through stdlib, and simplify the library accordingly?