Server IP : 66.29.132.122 / Your IP : 18.226.187.233 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/multi_json-1.15.0/lib/multi_json/adapters/ |
Upload File : |
require 'set' require 'oj' require 'multi_json/adapter' module MultiJson module Adapters # Use the Oj library to dump/load. class Oj < Adapter defaults :load, :mode => :strict, :symbolize_keys => false defaults :dump, :mode => :compat, :time_format => :ruby, :use_to_json => true # In certain cases OJ gem may throw JSON::ParserError exception instead # of its own class. Also, we can't expect ::JSON::ParserError and # ::Oj::ParseError to always be defined, since it's often not the case. # Because of this, we can't reference those classes directly and have to # do string comparison instead. This will not catch subclasses, but it # shouldn't be a problem since the library is not known to be using it # (at least for now). class ParseError < ::SyntaxError WRAPPED_CLASSES = %w[Oj::ParseError JSON::ParserError].to_set.freeze def self.===(exception) case exception when ::SyntaxError true else WRAPPED_CLASSES.include?(exception.class.to_s) end end end def load(string, options = {}) options[:symbol_keys] = options[:symbolize_keys] ::Oj.load(string, options) end case ::Oj::VERSION when /\A2\./ def dump(object, options = {}) options.merge!(:indent => 2) if options[:pretty] options[:indent] = options[:indent].to_i if options[:indent] ::Oj.dump(object, options) end when /\A3\./ PRETTY_STATE_PROTOTYPE = { :indent => " ", :space => " ", :space_before => "", :object_nl => "\n", :array_nl => "\n", :ascii_only => false, } def dump(object, options = {}) options.merge!(PRETTY_STATE_PROTOTYPE.dup) if options.delete(:pretty) ::Oj.dump(object, options) end else fail "Unsupported Oj version: #{::Oj::VERSION}" end end end end