module Raven::OkJson
Constants
- Spc
- Uchar1max
- Uchar2max
- Uchar3max
- Ucharerr
- Umask2
- Umask3
- Umask4
- Umaskx
- Unesc
- Upstream
- Ustrerr
- Usurr1
- Usurr2
- Usurr3
- Usurrself
- Utag2
- Utag3
- Utag4
- Utag5
- Utagx
Public Instance Methods
decode(s)
click to toggle source
Decodes a json document in string s and returns the corresponding ruby value. String s must be valid UTF-8. If you have a string in some other encoding, convert it first.
String values in the resulting structure will be UTF-8.
# File lib/raven/okjson.rb, line 43 def decode(s) ts = lex(s) v, ts = textparse(ts) if ts.length > 0 raise Error, 'trailing garbage' end v end
encode(x)
click to toggle source
Encodes x into a json text. It may contain only Array, Hash, String, Numeric, true, false, nil. (Note, this list excludes Symbol.) X itself must be an Array or a Hash. No other value can be encoded, and an error will be raised if x contains any other value, such as Nan, Infinity, Symbol, and Proc, or if a Hash key is not a String. Strings contained in x must be valid UTF-8.
# File lib/raven/okjson.rb, line 62 def encode(x) case x when Hash then objenc(x) when Array then arrenc(x) else raise Error, 'root value must be an Array or a Hash' end end
valenc(x)
click to toggle source
# File lib/raven/okjson.rb, line 72 def valenc(x) case x when Hash then objenc(x) when Array then arrenc(x) when String then strenc(x) when Symbol then strenc(x.to_s) when Numeric then numenc(x) when true then "true" when false then "false" when nil then "null" else strenc((x.inspect rescue $!.to_s)) end end