diff options
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/json-2.12.2/lib/json/ext.rb')
| -rw-r--r-- | vendor/bundle/ruby/3.4.0/gems/json-2.12.2/lib/json/ext.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/json-2.12.2/lib/json/ext.rb b/vendor/bundle/ruby/3.4.0/gems/json-2.12.2/lib/json/ext.rb new file mode 100644 index 0000000..5bacc5e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/json-2.12.2/lib/json/ext.rb @@ -0,0 +1,45 @@ +# 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 + class Parser + class << self + def parse(...) + new(...).parse + end + alias_method :parse, :parse # Allow redefinition by extensions + end + + def initialize(source, opts = nil) + @source = source + @config = Config.new(opts) + end + + def source + @source.dup + end + + def parse + @config.parse(@source) + end + end + + require 'json/ext/parser' + Ext::Parser::Config = Ext::ParserConfig + JSON.parser = Ext::Parser + + if RUBY_ENGINE == 'truffleruby' + require 'json/truffle_ruby/generator' + JSON.generator = JSON::TruffleRuby::Generator + else + require 'json/ext/generator' + JSON.generator = Generator + end + end + + JSON_LOADED = true unless defined?(JSON::JSON_LOADED) +end |
