Module: RubySkynet::Zookeeper::Json::Serializer
- Defined in:
- lib/ruby_skynet/zookeeper/json/serializer.rb
Overview
Serialize to JSON for storing in Registry
Class Method Summary collapse
-
.desymbolize(v) ⇒ Object
Returns the supplied value with symbols converted to a string prefixed with ‘:’.
-
.desymbolize_array(a) ⇒ Object
Returns a new Array with any symbols returned as symbol strings.
-
.desymbolize_hash(hash) ⇒ Object
Returns a new hash with all symbol keys and values as strings starting with ‘:’.
- .desymbolize_symbol(s) ⇒ Object
- .serialize(value) ⇒ Object
Class Method Details
.desymbolize(v) ⇒ Object
Returns the supplied value with symbols converted to a string prefixed with ‘:’
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ruby_skynet/zookeeper/json/serializer.rb', line 20 def self.desymbolize(v) if v.is_a?(Hash) desymbolize_hash(v) elsif v.is_a?(Array) desymbolize_array(v) elsif v.is_a?(Symbol) desymbolize_symbol(v) else v.to_s end end |
.desymbolize_array(a) ⇒ Object
Returns a new Array with any symbols returned as symbol strings
46 47 48 |
# File 'lib/ruby_skynet/zookeeper/json/serializer.rb', line 46 def self.desymbolize_array(a) a.collect {|v| desymbolize(v)} end |
.desymbolize_hash(hash) ⇒ Object
Returns a new hash with all symbol keys and values as strings starting with ‘:’
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/ruby_skynet/zookeeper/json/serializer.rb', line 33 def self.desymbolize_hash(hash) h = hash.dup hash.each_pair do |k, v| # Convert values in the hash h[k] = desymbolize(v) # Convert key to a string if it is a symbol h[desymbolize_symbol(k)] = h.delete(k) if k.is_a?(Symbol) end h end |
.desymbolize_symbol(s) ⇒ Object
50 51 52 |
# File 'lib/ruby_skynet/zookeeper/json/serializer.rb', line 50 def self.desymbolize_symbol(s) ":#{s}" end |
.serialize(value) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/ruby_skynet/zookeeper/json/serializer.rb', line 8 def self.serialize(value) if value.is_a?(Hash) || value.is_a?(Array) MultiJson.encode(desymbolize(value)) elsif value.is_a?(Symbol) desymbolize_symbol(value) else value.to_s end end |