Module: OnyxCord::Internal::JSON

Defined in:
lib/onyxcord/internal/json.rb

Overview

Fast Oj-backed JSON wrapper providing compatibility with stdlib JSON methods.

Constant Summary collapse

OJ_OPTIONS =

Default options for Oj. Kept local so that other libraries in the process are not affected by a global override.

{ mode: :compat, symbol_keys: false }.freeze

Class Method Summary collapse

Class Method Details

.decode(data, **args) ⇒ Hash, ...

Decode a JSON string into a Ruby object.

Parameters:

  • data (String)

    The JSON string to decode.

  • args (Hash)

    Additional Oj.load options (merged with defaults).

Returns:

  • (Hash, Array, String, Numeric, nil)


22
23
24
# File 'lib/onyxcord/internal/json.rb', line 22

def decode(data, **args)
  Oj.load(data, **OJ_OPTIONS, **args)
end

.dump(data, **args) ⇒ Object

Alias dump to encode (Oj/JSON compatibility)



50
51
52
# File 'lib/onyxcord/internal/json.rb', line 50

def dump(data, **args)
  encode(data, **args)
end

.encode(data, **args) ⇒ String

Encode a Ruby object as JSON.

Parameters:

  • data (Object)

    The object to encode as JSON.

  • args (Hash)

    Additional Oj.dump options (merged with defaults).

Returns:



30
31
32
# File 'lib/onyxcord/internal/json.rb', line 30

def encode(data, **args)
  Oj.dump(data, **OJ_OPTIONS, **args)
end

.generate(data, **args) ⇒ Object

Alias generate to encode



40
41
42
# File 'lib/onyxcord/internal/json.rb', line 40

def generate(data, **args)
  encode(data, **args)
end

.load(data, **args) ⇒ Object

Alias load to decode (Oj/JSON compatibility)



45
46
47
# File 'lib/onyxcord/internal/json.rb', line 45

def load(data, **args)
  decode(data, **args)
end

.parse(data, **args) ⇒ Object

Alias parse to decode



35
36
37
# File 'lib/onyxcord/internal/json.rb', line 35

def parse(data, **args)
  decode(data, **args)
end