Module: EJSONExt
- Defined in:
- lib/ejson_ext.rb,
lib/ejson_ext/version.rb,
lib/ejson_ext/decoders/node.rb,
lib/ejson_ext/key_val_parser.rb,
lib/ejson_ext/extensions/escape.rb,
lib/ejson_ext/decoders/null_node.rb,
lib/ejson_ext/encoders/time_type.rb,
lib/ejson_ext/extensions/default.rb,
lib/ejson_ext/decoders/start_node.rb,
lib/ejson_ext/extensions/time_ext.rb,
lib/ejson_ext/encoders/escape_type.rb,
lib/ejson_ext/encoders/default_type.rb,
lib/ejson_ext/encoders/recursive_type.rb
Defined Under Namespace
Modules: Decoders, Encoders, Extensions
Classes: KeyValParser
Constant Summary
collapse
- VERSION =
"0.1.1"
Class Method Summary
collapse
Class Method Details
.ejson_for_type(value) ⇒ Object
28
29
30
31
32
33
34
35
36
|
# File 'lib/ejson_ext.rb', line 28
def self.ejson_for_type(value)
if value.is_a?(Hash)
Hash[value.each.map { |key, val| KeyValParser.new(key, val).parse }]
elsif value.is_a?(Array)
value.map { |item| ejson_for_type(item) }
else
value
end
end
|
.parse(item) ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/ejson_ext.rb', line 16
def self.parse(item)
if item.is_a?(String)
Decoders::StartNode.new(JSON.parse item).compile
else
fail %(EJSONExt.parse argument should be a string "#{item.class}" given)
end
end
|
.stringify(value) ⇒ Object
24
25
26
|
# File 'lib/ejson_ext.rb', line 24
def self.stringify(value)
ejson_for_type(value).to_json
end
|