Module: JSON

Defined in:
lib/json/repair.rb,
lib/json/repairer.rb,
lib/json/repair/cli.rb,
lib/json/repair/version.rb,
lib/json/repair/string_utils.rb

Defined Under Namespace

Modules: Repair Classes: JSONRepairError, Repairer

Class Method Summary collapse

Class Method Details

.repair(json, return_objects: false, skip_json_loads: false) ⇒ Object



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

def self.repair(json, return_objects: false, skip_json_loads: false)
  parsed = skip_json_loads ? repaired_parse(json) : tolerant_parse(json)
  return_objects ? parsed : JSON.generate(parsed)
end

.repair_file(path, return_objects: false, skip_json_loads: false) ⇒ Object



33
34
35
36
37
# File 'lib/json/repair.rb', line 33

def self.repair_file(path, return_objects: false, skip_json_loads: false)
  json = File.read(path.to_s)
  parsed = skip_json_loads ? repaired_parse(json) : tolerant_parse(json)
  return_objects ? parsed : JSON.generate(parsed)
end

.repair_io(io, return_objects: false, skip_json_loads: false) ⇒ Object

Inlined rather than calling ‘repair(…)` so the literal-bool overloads in sig/json/repair.rbs narrow correctly per caller — forwarding a `bool`-typed `return_objects` will not resolve against the literal- `true`/`false` overloads on `JSON.repair`.



27
28
29
30
31
# File 'lib/json/repair.rb', line 27

def self.repair_io(io, return_objects: false, skip_json_loads: false)
  json = io.read || ''
  parsed = skip_json_loads ? repaired_parse(json) : tolerant_parse(json)
  return_objects ? parsed : JSON.generate(parsed)
end