class Sqrewdriver::Serdes::JSONSerde

Public Class Methods

new(backend: :json, serialize_options: {}, deserialize_options: {}) click to toggle source
# File lib/sqrewdriver/serdes/json_serde.rb, line 14
def initialize(backend: :json, serialize_options: {}, deserialize_options: {})
  @serialize_options = serialize_options
  @deserialize_options = deserialize_options
  @backend = lookup_json_backend(backend)
end

Public Instance Methods

dump(val) click to toggle source
# File lib/sqrewdriver/serdes/json_serde.rb, line 20
def dump(val)
  @backend.dump(val, **@serialize_options)
end
load(val) click to toggle source
# File lib/sqrewdriver/serdes/json_serde.rb, line 24
def load(val)
  @backend.load(val, **@deserialize_options)
end

Private Instance Methods

lookup_json_backend(name) click to toggle source
# File lib/sqrewdriver/serdes/json_serde.rb, line 30
def lookup_json_backend(name)
  case name
  when :json
    require "json"
    JSONWrapper.new
  when :oj
    require "oj"
    Oj
  end
end