lib/json/ext.rb in json_pure-2.7.2 vs lib/json/ext.rb in json_pure-2.7.3
- old
+ new
@@ -1,15 +1,28 @@
+# frozen_string_literal: true
+
require 'json/common'
module JSON
# This module holds all the modules/classes that implement JSON's
# functionality as C extensions.
module Ext
- require 'json/ext/parser'
- require 'json/ext/generator'
- $DEBUG and warn "Using Ext extension for JSON."
- JSON.parser = Parser
- JSON.generator = Generator
+ if RUBY_ENGINE == 'truffleruby'
+ require 'json/ext/parser'
+ require 'json/pure'
+ $DEBUG and warn "Using Ext extension for JSON parser and Pure library for JSON generator."
+ JSON.parser = Parser
+ JSON.generator = JSON::Pure::Generator
+ else
+ require 'json/ext/parser'
+ require 'json/ext/generator'
+ unless RUBY_ENGINE == 'jruby'
+ require 'json/ext/generator/state'
+ end
+ $DEBUG and warn "Using Ext extension for JSON."
+ JSON.parser = Parser
+ JSON.generator = Generator
+ end
end
JSON_LOADED = true unless defined?(::JSON::JSON_LOADED)
end