Module: Xon

Defined in:
lib/xon.rb

Defined Under Namespace

Classes: ParserError

Constant Summary collapse

VERSION =
'0.1.1'.freeze
PREAMBLE =
'!:'.freeze

Class Method Summary collapse

Class Method Details

.generate(data) ⇒ Object Also known as: dump



24
25
26
27
28
29
30
31
# File 'lib/xon.rb', line 24

def generate(data)
  init!
  if special?(data)
    PREAMBLE + JSON.generate(encode(data))
  else
    JSON.generate(data)
  end
end

.parse(str) ⇒ Object Also known as: load



13
14
15
16
17
18
19
20
21
22
# File 'lib/xon.rb', line 13

def parse(str)
  init!
  if str.is_a?(String) && str.start_with?(PREAMBLE)
    decode(JSON.parse(str[PREAMBLE.length..-1]))
  else
    JSON.parse(str)
  end
rescue JSON::ParserError => e
  raise ParserError.new(e.message)
end