Sha256: f5294bc46f6f6a77865183615bfa6e0f323c17fd73e8a2a1375466342990e0d3
Contents?: true
Size: 1.12 KB
Versions: 11
Compression:
Stored size: 1.12 KB
Contents
`var json_parse = JSON.parse, __hasOwn = Object.prototype.hasOwnProperty` module JSON def self.parse(source) `return to_opal(json_parse(source));` end # Raw js object => opal object def self.from_object(js_object) `return to_opal(js_object)` end %x{ function to_opal(value) { switch (typeof value) { case 'string': return value; case 'number': return value; case 'boolean': return !!value; case 'null': return nil; case 'object': if (!value) return nil; if (value._isArray) { var arr = []; for (var i = 0, ii = value.length; i < ii; i++) { arr.push(to_opal(value[i])); } return arr; } else { var hash = #{ {} }, v, map = hash.map, keys = hash.keys; for (var k in value) { if (__hasOwn.call(value, k)) { v = to_opal(value[k]); keys.push(k); map[k] = v; } } } return hash; } }; } end
Version data entries
11 entries across 11 versions & 1 rubygems