Sha256: df5364823d9b36c43b7bb9b86c17d98bbefb398d898ec7c73d7edbee01182be2
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
require 'multi_json' require 'rollbar/json/oj' require 'rollbar/json/default' begin require 'oj' rescue LoadError end module Rollbar module JSON extend self attr_writer :options_module def dump(object) with_adapter { MultiJson.dump(object, adapter_options) } end def load(string) with_adapter { MultiJson.load(string, adapter_options) } end def with_adapter(&block) MultiJson.with_adapter(detect_multi_json_adapter, &block) end def detect_multi_json_adapter options = {} options[:adapter] = :oj if defined?(::Oj) MultiJson.current_adapter(options) end def adapter_options options_module.options end def options_module @options_module ||= find_options_module end def find_options_module module_name = multi_json_adapter_module_name begin const_get(module_name) rescue NameError Default end end # MultiJson adapters have this name structure: # "MultiJson::Adapters::{AdapterModule}" # # Ex: MultiJson::Adapters::Oj # Ex: MultiJson::Adapters::JsonGem # # In this method we just get the last module name. def multi_json_adapter_module_name MultiJson.current_adapter.name[/^MultiJson::Adapters::(.*)$/, 1] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rollbar-2.4.0 | lib/rollbar/json.rb |