VAGAScom/basquiat

View on GitHub
lib/basquiat/support/json.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Basquiat
  # A simple MultiJson wrapper to protect against eventual API changes.
  module Json
    # Serializes an Object into a JSON
    # @see MultiJson.dump
    # @param object [Object] object to be serialized
    # @return [String] JSON representation of the object
    def self.encode(object)
      MultiJson.dump(object)
    end

    # De-serializes a JSON into a Hash
    # @see MultiJson.load
    # @param object [Object] object to be de-serialized
    # @return [Hash] Hash representing the JSON. The keys are symbolized by default
    def self.decode(object)
      MultiJson.load(object, symbolize_keys: true)
    rescue MultiJson::ParseError
      {}
    end
  end
end