class
ActiveSupport::JSON::Encoding::JSONGemCoderEncoder
v8.1.1 -
Show latest stable
- Superclass: Object
No documentation available for this class.
Constants
CODER = ::JSON::Coder.new do |value, is_key|\njson_value = value.as_json\n# Keep compatibility by calling to_s on non-String keys\nnext json_value.to_s if is_key\n# Handle objects returning self from as_json\nif json_value.equal?(value)\nnext ::JSON::Fragment.new(::JSON.generate(json_value))\nend\n# Handle objects not returning JSON-native types from as_json\ncount = 5\nuntil JSON_NATIVE_TYPES.include?(json_value.class)\nraise SystemStackError if count == 0\njson_value = json_value.as_json\ncount -= 1\nend
JSON_NATIVE_TYPES = [Hash, Array, Float, String, Symbol, Integer, NilClass, TrueClass, FalseClass, ::JSON::Fragment].freeze
Files
- activesupport/lib/active_support/json/encoding.rb