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/decoders/null_node.rb,
lib/ejson_ext/encoders/time_type.rb,
lib/ejson_ext/decoders/start_node.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 Classes: KeyValParser

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.ejson_hash_from_hash(value) ⇒ Object



25
26
27
# File 'lib/ejson_ext.rb', line 25

def self.ejson_hash_from_hash(value)
  Hash[value.each.map { |key, val| KeyValParser.new(key, val).parse }]
end

.parse(item) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/ejson_ext.rb', line 13

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



21
22
23
# File 'lib/ejson_ext.rb', line 21

def self.stringify(value)
  ejson_hash_from_hash(value).to_json
end