Module: Legion::JSON

Defined in:
lib/legion/json.rb,
lib/legion/json/helper.rb,
lib/legion/json/parse_error.rb

Defined Under Namespace

Modules: Helper Classes: ParseError

Class Method Summary collapse

Class Method Details

.dump(object = nil, pretty: false, **kwargs) ⇒ Object



24
25
26
27
28
# File 'lib/legion/json.rb', line 24

def dump(object = nil, pretty: false, **kwargs)
  data = object.nil? ? kwargs : object
  # Only pass pretty: when true — Oj/MultiJson treats any explicit pretty: (even false) as truthy
  pretty ? parser.dump(data, pretty: true) : parser.dump(data)
end

.fast_generate(object) ⇒ Object



48
49
50
# File 'lib/legion/json.rb', line 48

def fast_generate(object)
  ::JSON.fast_generate(object)
end

.generate(object) ⇒ Object



38
39
40
# File 'lib/legion/json.rb', line 38

def generate(object)
  ::JSON.generate(object)
end

.load(string, symbolize_keys: true) ⇒ Object



17
18
19
20
21
# File 'lib/legion/json.rb', line 17

def load(string, symbolize_keys: true)
  parser.load(string, symbolize_keys: symbolize_keys)
rescue StandardError => e
  raise Legion::JSON::ParseError.build(e, string)
end

.parse(string, symbolize_names: true) ⇒ Object



31
32
33
34
35
# File 'lib/legion/json.rb', line 31

def parse(string, symbolize_names: true)
  ::JSON.parse(string, symbolize_names: symbolize_names)
rescue StandardError => e
  raise Legion::JSON::ParseError.build(e, string)
end

.parserObject



12
13
14
# File 'lib/legion/json.rb', line 12

def parser
  @parser ||= MultiJson
end

.pretty_generate(object) ⇒ Object



43
44
45
# File 'lib/legion/json.rb', line 43

def pretty_generate(object)
  ::JSON.pretty_generate(object)
end